PxMeshOverlapUtil

Defined in include/extensions/PxTriangleMeshExt.h

class PxMeshOverlapUtil

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.

Public Functions

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

Find the mesh triangles which touch the specified geometry object.

Parameters
  • geom[in] The geometry object to test for mesh triangle overlaps. Supported geometries are PxSphereGeometry, PxCapsuleGeometry and PxBoxGeometry

  • geomPose[in] Pose of the geometry object

  • meshGeom[in] The triangle mesh geometry to check overlap against

  • meshPose[in] Pose of the triangle mesh

Returns

Number of overlaps found. Triangle indices can then be accessed through the getResults() function.

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.

Parameters
  • geom[in] The geometry object to test for height field overlaps. Supported geometries are PxSphereGeometry, PxCapsuleGeometry and PxBoxGeometry. The sphere and capsule queries are currently conservative estimates.

  • geomPose[in] Pose of the geometry object

  • hfGeom[in] The height field geometry to check overlap against

  • hfPose[in] Pose of the height field

Returns

Number of overlaps found. Triangle indices can then be accessed through the getResults() function.

inline const PxU32 *getResults() const

Retrieves array of triangle indices after a findOverlap call.

Returns

Indices of touched triangles

inline PxU32 getNbResults() const

Retrieves number of triangle indices after a findOverlap call.

Returns

Number of touched triangles