+#include <PxGeometryQuery.h>
+
+ +
Static Public Member Functions | |
| static PX_PHYSX_COMMON_API bool | sweep (const PxVec3 &unitDir, const PxReal maxDist, const PxGeometry &geom0, const PxTransform &pose0, const PxGeometry &geom1, const PxTransform &pose1, PxSweepHit &sweepHit, PxHitFlags hitFlags=PxHitFlag::eDEFAULT, const PxReal inflation=0.f) |
| Sweep a specified geometry object in space and test for collision with a given object. | |
| static PX_PHYSX_COMMON_API bool | overlap (const PxGeometry &geom0, const PxTransform &pose0, const PxGeometry &geom1, const PxTransform &pose1) |
| Overlap test for two geometry objects. | |
| static PX_PHYSX_COMMON_API PxU32 | raycast (const PxVec3 &origin, const PxVec3 &unitDir, const PxGeometry &geom, const PxTransform &pose, PxReal maxDist, PxHitFlags hitFlags, PxU32 maxHits, PxRaycastHit *PX_RESTRICT rayHits) |
| Raycast test against a geometry object. | |
| static PX_PHYSX_COMMON_API bool | computePenetration (PxVec3 &direction, PxF32 &depth, const PxGeometry &geom0, const PxTransform &pose0, const PxGeometry &geom1, const PxTransform &pose1) |
| Compute minimum translational distance (MTD) between two geometry objects. | |
| static PX_PHYSX_COMMON_API PxReal | pointDistance (const PxVec3 &point, const PxGeometry &geom, const PxTransform &pose, PxVec3 *closestPoint=NULL) |
| Computes distance between a point and a geometry object. | |
| static PX_PHYSX_COMMON_API +PxBounds3 | getWorldBounds (const PxGeometry &geom, const PxTransform &pose, float inflation=1.01f) |
| get the bounds for a geometry object | |
| static PX_PHYSX_COMMON_API bool | isValid (const PxGeometry &geom) |
| Checks if provided geometry is valid. | |
| static PX_PHYSX_COMMON_API bool PxGeometryQuery::computePenetration | +( | +PxVec3 & | +direction, | +|
| + | + | PxF32 & | +depth, | +|
| + | + | const PxGeometry & | +geom0, | +|
| + | + | const PxTransform & | +pose0, | +|
| + | + | const PxGeometry & | +geom1, | +|
| + | + | const PxTransform & | +pose1 | + |
| + | ) | + [static] |
+
+Compute minimum translational distance (MTD) between two geometry objects. +
+All combinations of geom objects are supported except:
+The function returns a unit vector ('direction') and a penetration depth ('depth').
+The depenetration vector D = direction * depth should be applied to the first object, to get out of the second object.
+Returned depth should always be positive or null.
+If objects do not overlap, the function can not compute the MTD and returns false.
+
| [out] | direction | Computed MTD unit direction |
| [out] | depth | Penetration depth. Always positive or null. |
| [in] | geom0 | The first geometry object |
| [in] | pose0 | Pose of the first geometry object |
| [in] | geom1 | The second geometry object |
| [in] | pose1 | Pose of the second geometry object |
| static PX_PHYSX_COMMON_API PxBounds3 PxGeometryQuery::getWorldBounds | +( | +const PxGeometry & | +geom, | +|
| + | + | const PxTransform & | +pose, | +|
| + | + | float | + inflation = 1.01f | + |
| + | ) | + [static] |
+
+get the bounds for a geometry object +
+
| [in] | geom | The geometry object |
| [in] | pose | Pose of the geometry object |
| [in] | inflation | Scale factor for computed world bounds. Box extents are multiplied by this value. |
Referenced by PxShapeExt::getWorldBounds().
+ +| static PX_PHYSX_COMMON_API bool PxGeometryQuery::isValid | +( | +const PxGeometry & | +geom | +) | + [static] |
+
+Checks if provided geometry is valid. +
+
| [in] | geom | The geometry object. |
| static PX_PHYSX_COMMON_API bool PxGeometryQuery::overlap | +( | +const PxGeometry & | +geom0, | +|
| + | + | const PxTransform & | +pose0, | +|
| + | + | const PxGeometry & | +geom1, | +|
| + | + | const PxTransform & | +pose1 | + |
| + | ) | + [static] |
+
+Overlap test for two geometry objects. +
+All combinations are supported except:
| [in] | geom0 | The first geometry object |
| [in] | pose0 | Pose of the first geometry object |
| [in] | geom1 | The second geometry object |
| [in] | pose1 | Pose of the second geometry object |
Referenced by PxShapeExt::overlap().
+ +| static PX_PHYSX_COMMON_API PxReal PxGeometryQuery::pointDistance | +( | +const PxVec3 & | +point, | +|
| + | + | const PxGeometry & | +geom, | +|
| + | + | const PxTransform & | +pose, | +|
| + | + | PxVec3 * | + closestPoint = NULL | + |
| + | ) | + [static] |
+
+Computes distance between a point and a geometry object. +
+Currently supported geometry objects: box, sphere, capsule, convex.
+
| [in] | point | The point P |
| [in] | geom | The geometry object |
| [in] | pose | Pose of the geometry object |
| [out] | closestPoint | Optionally returned closest point to P on the geom object. Only valid when returned distance is strictly positive. |
| static PX_PHYSX_COMMON_API PxU32 PxGeometryQuery::raycast | +( | +const PxVec3 & | +origin, | +|
| + | + | const PxVec3 & | +unitDir, | +|
| + | + | const PxGeometry & | +geom, | +|
| + | + | const PxTransform & | +pose, | +|
| + | + | PxReal | +maxDist, | +|
| + | + | PxHitFlags | +hitFlags, | +|
| + | + | PxU32 | +maxHits, | +|
| + | + | PxRaycastHit *PX_RESTRICT | +rayHits | + |
| + | ) | + [static] |
+
+Raycast test against a geometry object. +
+
| [in] | origin | The origin of the ray to test the geometry object against |
| [in] | unitDir | Normalized direction of the ray to test the geometry object against |
| [in] | geom | The geometry object to test the ray against |
| [in] | pose | Pose of the geometry object |
| [in] | maxDist | Maximum ray length, has to be in the [0, inf) range |
| [in] | hitFlags | Specification of the kind of information to retrieve on hit. Combination of PxHitFlag flags |
| [in] | maxHits | max number of returned hits = size of 'rayHits' buffer |
| [out] | rayHits | Raycast hits information |
Referenced by PxShapeExt::raycast().
+ +| static PX_PHYSX_COMMON_API bool PxGeometryQuery::sweep | +( | +const PxVec3 & | +unitDir, | +|
| + | + | const PxReal | +maxDist, | +|
| + | + | const PxGeometry & | +geom0, | +|
| + | + | const PxTransform & | +pose0, | +|
| + | + | const PxGeometry & | +geom1, | +|
| + | + | const PxTransform & | +pose1, | +|
| + | + | PxSweepHit & | +sweepHit, | +|
| + | + | PxHitFlags | + hitFlags = PxHitFlag::eDEFAULT, |
+ |
| + | + | const PxReal | + inflation = 0.f | + |
| + | ) | + [static] |
+
+Sweep a specified geometry object in space and test for collision with a given object. +
+The following combinations are supported.
+
| [in] | unitDir | Normalized direction along which object geom0 should be swept |
| [in] | maxDist | Maximum sweep distance, has to be in the [0, inf) range |
| [in] | geom0 | The geometry object to sweep. Supported geometries are PxSphereGeometry, PxCapsuleGeometry, PxBoxGeometry and PxConvexMeshGeometry |
| [in] | pose0 | Pose of the geometry object to sweep |
| [in] | geom1 | The geometry object to test the sweep against |
| [in] | pose1 | Pose of the geometry object to sweep against |
| [out] | sweepHit | The sweep hit information. Only valid if this method returns true. |
| [in] | hitFlags | Specify which properties per hit should be computed and written to result hit array. Combination of PxHitFlag flags |
| [in] | inflation | Surface of the swept shape is additively extruded in the normal direction, rounding corners and edges. |
Referenced by PxShapeExt::sweep().
+ ++