RavEngine
Loading...
Searching...
No Matches
physx::PxMeshOverlapUtil Class Reference

Utility class to find mesh triangles touched by a specified geometry object. More...

#include <PxTriangleMeshExt.h>

Public Member Functions

PxU32 findOverlap (const PxGeometry &geom, const PxTransform &geomPose, const PxTriangleMeshGeometry &meshGeom, const PxTransform &meshPose)
 Find the mesh triangles which touch the specified geometry object.
 
PxU32 findOverlap (const PxGeometry &geom, const PxTransform &geomPose, const PxHeightFieldGeometry &hfGeom, const PxTransform &hfPose)
 Find the height field triangles which touch the specified geometry object.
 
PX_FORCE_INLINE const PxU32 * getResults () const
 Retrieves array of triangle indices after a findOverlap call.
 
PX_FORCE_INLINE PxU32 getNbResults () const
 Retrieves number of triangle indices after a findOverlap call.
 

Detailed Description

Utility class to find mesh triangles touched by a specified geometry object.

This class is a helper calling PxMeshQuery::findOverlapTriangleMesh or PxMeshQuery::findOverlapHeightField under the hood, while taking care of necessary memory management issues.

PxMeshQuery::findOverlapTriangleMesh and PxMeshQuery::findOverlapHeightField are the "raw" functions operating on user-provided fixed-size buffers. These functions abort with an error code in case of buffer overflow. PxMeshOverlapUtil is a convenient helper function checking this error code, and resizing buffers appropriately, until the desired call succeeds.

Returned triangle indices are stored within the class, and can be used with PxMeshQuery::getTriangle() to retrieve the triangle properties.

Member Function Documentation

◆ findOverlap() [1/2]

PxU32 PxMeshOverlapUtil::findOverlap ( const PxGeometry &  geom,
const PxTransform &  geomPose,
const PxHeightFieldGeometry &  hfGeom,
const PxTransform &  hfPose 
)

Find the height field triangles which touch the specified geometry object.

Parameters
[in]geomThe geometry object to test for height field overlaps. Supported geometries are #PxSphereGeometry, #PxCapsuleGeometry and #PxBoxGeometry. The sphere and capsule queries are currently conservative estimates.
[in]geomPosePose of the geometry object
[in]hfGeomThe height field geometry to check overlap against
[in]hfPosePose of the height field
Returns
Number of overlaps found. Triangle indices can then be accessed through the getResults() function.
See also
PxGeometry PxTransform PxHeightFieldGeometry PxMeshQuery::findOverlapHeightField

◆ findOverlap() [2/2]

PxU32 PxMeshOverlapUtil::findOverlap ( const PxGeometry &  geom,
const PxTransform &  geomPose,
const PxTriangleMeshGeometry &  meshGeom,
const PxTransform &  meshPose 
)

Find the mesh triangles which touch the specified geometry object.

Parameters
[in]geomThe geometry object to test for mesh triangle overlaps. Supported geometries are #PxSphereGeometry, #PxCapsuleGeometry and #PxBoxGeometry
[in]geomPosePose of the geometry object
[in]meshGeomThe triangle mesh geometry to check overlap against
[in]meshPosePose of the triangle mesh
Returns
Number of overlaps found. Triangle indices can then be accessed through the getResults() function.
See also
PxGeometry PxTransform PxTriangleMeshGeometry PxMeshQuery::findOverlapTriangleMesh

◆ getNbResults()

PX_FORCE_INLINE PxU32 physx::PxMeshOverlapUtil::getNbResults ( ) const
inline

Retrieves number of triangle indices after a findOverlap call.

Returns
Number of touched triangles

◆ getResults()

PX_FORCE_INLINE const PxU32 * physx::PxMeshOverlapUtil::getResults ( ) const
inline

Retrieves array of triangle indices after a findOverlap call.

Returns
Indices of touched triangles

The documentation for this class was generated from the following files: