PxMeshOverlapUtil Class Reference

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

#include <PxTriangleMeshExt.h>

Public Member 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. More...
 
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. More...
 
PX_FORCE_INLINE const PxU32getResults () const
 Retrieves array of triangle indices after a findOverlap call. More...
 
PX_FORCE_INLINE PxU32 getNbResults () const
 Retrieves number of triangle indices after a findOverlap call. More...
 

Private Attributes

PxU32mResultsMemory
 
PxU32 mResults [256]
 
PxU32 mNbResults
 
PxU32 mMaxNbResults
 

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.

Constructor & Destructor Documentation

◆ PxMeshOverlapUtil()

PxMeshOverlapUtil::PxMeshOverlapUtil ( )

◆ ~PxMeshOverlapUtil()

PxMeshOverlapUtil::~PxMeshOverlapUtil ( )

Member Function Documentation

◆ findOverlap() [1/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

◆ findOverlap() [2/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

◆ getNbResults()

PX_FORCE_INLINE PxU32 PxMeshOverlapUtil::getNbResults ( ) const
inline

Retrieves number of triangle indices after a findOverlap call.

Returns
Number of touched triangles

◆ getResults()

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

Retrieves array of triangle indices after a findOverlap call.

Returns
Indices of touched triangles

Member Data Documentation

◆ mMaxNbResults

PxU32 PxMeshOverlapUtil::mMaxNbResults
private

◆ mNbResults

PxU32 PxMeshOverlapUtil::mNbResults
private

◆ mResults

PxU32 PxMeshOverlapUtil::mResults[256]
private

◆ mResultsMemory

PxU32* PxMeshOverlapUtil::mResultsMemory
private

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