00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef PX_PHYSICS_EXTENSIONS_TRIANGLE_MESH_H
00032 #define PX_PHYSICS_EXTENSIONS_TRIANGLE_MESH_H
00033
00037 #include "PxPhysXConfig.h"
00038 #include "common/PxPhysXCommonConfig.h"
00039
00040 #if !PX_DOXYGEN
00041 namespace physx
00042 {
00043 #endif
00044
00045 class PxGeometry;
00046 class PxTriangleMeshGeometry;
00047 class PxHeightFieldGeometry;
00048
00061 class PxMeshOverlapUtil
00062 {
00063 public:
00064 PxMeshOverlapUtil();
00065 ~PxMeshOverlapUtil();
00077 PxU32 findOverlap(const PxGeometry& geom, const PxTransform& geomPose, const PxTriangleMeshGeometry& meshGeom, const PxTransform& meshPose);
00078
00090 PxU32 findOverlap(const PxGeometry& geom, const PxTransform& geomPose, const PxHeightFieldGeometry& hfGeom, const PxTransform& hfPose);
00091
00096 PX_FORCE_INLINE const PxU32* getResults() const { return mResultsMemory; }
00097
00102 PX_FORCE_INLINE PxU32 getNbResults() const { return mNbResults; }
00103
00104 private:
00105 PxU32* mResultsMemory;
00106 PxU32 mResults[256];
00107 PxU32 mNbResults;
00108 PxU32 mMaxNbResults;
00109 };
00110
00136 PX_DEPRECATED PxVec3 PxComputeMeshPenetration(PxU32 maxIter,
00137 const PxGeometry& geom,
00138 const PxTransform& geomPose,
00139 const PxTriangleMeshGeometry& meshGeom,
00140 const PxTransform& meshPose, PxU32& nb);
00141
00142
00170 bool PxComputeTriangleMeshPenetration(PxVec3& direction,
00171 PxReal& depth,
00172 const PxGeometry& geom,
00173 const PxTransform& geomPose,
00174 const PxTriangleMeshGeometry& meshGeom,
00175 const PxTransform& meshPose,
00176 PxU32 maxIter,
00177 PxU32* usedIter = NULL);
00178
00204 PX_DEPRECATED PxVec3 PxComputeHeightFieldPenetration(PxU32 maxIter,
00205 const PxGeometry& geom,
00206 const PxTransform& geomPose,
00207 const PxHeightFieldGeometry& heightFieldGeom,
00208 const PxTransform& heightFieldPose,
00209 PxU32& nb);
00210
00211
00239 bool PxComputeHeightFieldPenetration(PxVec3& direction,
00240 PxReal& depth,
00241 const PxGeometry& geom,
00242 const PxTransform& geomPose,
00243 const PxHeightFieldGeometry& heightFieldGeom,
00244 const PxTransform& heightFieldPose,
00245 PxU32 maxIter,
00246 PxU32* usedIter = NULL);
00247
00248 #if !PX_DOXYGEN
00249 }
00250 #endif
00251
00253 #endif