PxGeometryQuery Class Reference
[Geomutils]
Collection of geometry object queries (sweeps, raycasts, overlaps, ...).
More...
#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. |
Detailed Description
Collection of geometry object queries (sweeps, raycasts, overlaps, ...).Member Function Documentation
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:
- plane/plane
- plane/mesh
- plane/heightfield
- mesh/mesh
- mesh/heightfield
- heightfield/heightfield
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.
- Parameters:
-
[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
- Returns:
- True if the MTD has successfully been computed, i.e. if objects do overlap.
- See also:
- PxGeometry PxTransform
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
- Parameters:
-
[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.
- Returns:
- The bounds of the object
- See also:
- PxGeometry PxTransform
Referenced by PxShapeExt::getWorldBounds().
static PX_PHYSX_COMMON_API bool PxGeometryQuery::isValid | ( | const PxGeometry & | geom | ) | [static] |
Checks if provided geometry is valid.
- Parameters:
-
[in] geom The geometry object.
- Returns:
- True if geometry is valid.
- See also:
- PxGeometry PxSphereGeometry, PxCapsuleGeometry, PxBoxGeometry, PxConvexGeometry
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:
- PxPlaneGeometry vs. {PxPlaneGeometry, PxTriangleMeshGeometry, PxHeightFieldGeometry}
- PxTriangleMeshGeometry vs. {PxTriangleMeshGeometry, PxHeightFieldGeometry}
- PxHeightFieldGeometry vs. {PxHeightFieldGeometry}
- Parameters:
-
[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
- Returns:
- True if the two geometry objects overlap
- See also:
- PxGeometry PxTransform
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.
- Parameters:
-
[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.
- Returns:
- Square distance between the point and the geom object, or 0.0 if the point is inside the object, or -1.0 if the geometry type is not supported.
- See also:
- PxGeometry PxTransform
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.
- Parameters:
-
[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
- Returns:
- Number of hits between the ray and the geometry object
- See also:
- PxRaycastHit PxGeometry PxTransform
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.
- PxSphereGeometry vs. {PxSphereGeometry, PxPlaneGeometry, PxCapsuleGeometry, PxBoxGeometry, PxConvexMeshGeometry, PxTriangleMeshGeometry, PxHeightFieldGeometry}
- PxCapsuleGeometry vs. {PxSphereGeometry, PxPlaneGeometry, PxCapsuleGeometry, PxBoxGeometry, PxConvexMeshGeometry, PxTriangleMeshGeometry, PxHeightFieldGeometry}
- PxBoxGeometry vs. {PxSphereGeometry, PxPlaneGeometry, PxCapsuleGeometry, PxBoxGeometry, PxConvexMeshGeometry, PxTriangleMeshGeometry, PxHeightFieldGeometry}
- PxConvexMeshGeometry vs. {PxSphereGeometry, PxPlaneGeometry, PxCapsuleGeometry, PxBoxGeometry, PxConvexMeshGeometry, PxTriangleMeshGeometry, PxHeightFieldGeometry}
- Parameters:
-
[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.
- Returns:
- True if the swept geometry object geom0 hits the object geom1
- See also:
- PxSweepHit PxGeometry PxTransform
Referenced by PxShapeExt::sweep().
The documentation for this class was generated from the following file:
Copyright © 2008-2017 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved. www.nvidia.com