Public Member Functions | Private Attributes | List of all members
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 [64]
 
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 ( )

Member Function Documentation

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
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
PX_FORCE_INLINE PxU32 PxMeshOverlapUtil::getNbResults ( ) const
inline

Retrieves number of triangle indices after a findOverlap call.

Returns
Number of touched triangles
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

PxU32 PxMeshOverlapUtil::mMaxNbResults
private
PxU32 PxMeshOverlapUtil::mNbResults
private
PxU32 PxMeshOverlapUtil::mResults[64]
private
PxU32* PxMeshOverlapUtil::mResultsMemory
private

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


Copyright © 2008-2015 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved. www.nvidia.com