Extensions
Classes | |
class | PxSerializer |
Serialization interface class. More... | |
class | PxSerializerDefaultAdapter< T > |
Default PxSerializer implementation. More... | |
struct | PxConverterReportMode |
class | PxBinaryConverter |
Binary converter for serialized streams. More... | |
class | PxBroadPhaseExt |
class | PxClothFabricCooker |
class | PxCollectionExt |
struct | PxConstraintExtIDs |
Unique identifiers for extensions classes which implement a constraint based on PxConstraint. More... | |
struct | PxD6Axis |
Used to specify one of the degrees of freedom of a D6 joint. More... | |
struct | PxD6Motion |
Used to specify the range of motions allowed for a degree of freedom in a D6 joint. More... | |
struct | PxD6Drive |
Used to specify which axes of a D6 joint are driven. More... | |
struct | PxD6JointDriveFlag |
flags for configuring the drive model of a PxD6Joint More... | |
class | PxD6JointDrive |
parameters for configuring the drive model of a PxD6Joint More... | |
class | PxD6Joint |
A D6 joint is a general constraint between two actors. More... | |
class | PxDefaultAllocator |
default implementation of the allocator interface required by the SDK More... | |
class | PxDefaultCpuDispatcher |
A default implementation for a CPU task dispatcher. More... | |
class | PxGroupsMask |
64-bit mask used for collision filtering. More... | |
struct | PxFilterOp |
Collision filtering operations. More... | |
class | PxDefaultMemoryOutputStream |
default implementation of a memory write stream More... | |
class | PxDefaultMemoryInputData |
default implementation of a memory read stream More... | |
class | PxDefaultFileOutputStream |
default implementation of a file write stream More... | |
class | PxDefaultFileInputData |
default implementation of a file read stream More... | |
struct | PxDistanceJointFlag |
flags for configuring the drive of a PxDistanceJoint More... | |
class | PxDistanceJoint |
a joint that maintains an upper or lower bound (or both) on the distance between two points on different objects More... | |
class | PxFixedJoint |
A fixed joint permits no relative movement between two bodies. ie the bodies are glued together. More... | |
struct | PxJointConcreteType |
an enumeration of PhysX' built-in joint types More... | |
struct | PxJointActorIndex |
an enumeration for specifying one or other of the actors referenced by a joint More... | |
class | PxJoint |
a base interface providing common functionality for PhysX joints More... | |
class | PxSpring |
class | PxJointLimitParameters |
Describes the parameters for a joint limit. More... | |
class | PxJointLinearLimit |
Describes a one-sided linear limit. More... | |
class | PxJointLinearLimitPair |
Describes a two-sided limit. More... | |
class | PxJointAngularLimitPair |
class | PxJointLimitCone |
Describes an elliptical conical joint limit. Note that very small or highly elliptical limit cones may result in jitter. More... | |
class | PxMassProperties |
Utility class to compute and manipulate mass and inertia tensor properties. More... | |
class | PxParticleExt |
extensions for the partice feature (deprecated) More... | |
struct | PxPrismaticJointFlag |
Flags specific to the prismatic joint. More... | |
class | PxPrismaticJoint |
A prismatic joint permits relative translational movement between two bodies along an axis, but no relative rotational movement. More... | |
class | RaycastCCDManager |
Raycast-CCD manager. More... | |
struct | PxRepXObject |
Helper class containing the mapping of id to object, and type name. More... | |
struct | PxRepXInstantiationArgs |
Arguments required to instantiate a serializable object from RepX. More... | |
struct | PxRevoluteJointFlag |
Flags specific to the Revolute Joint. More... | |
class | PxRevoluteJoint |
A joint which behaves in a similar way to a hinge or axle. More... | |
class | PxRigidActorExt |
utility functions for use with PxRigidActor and subclasses More... | |
class | PxRigidBodyExt |
utility functions for use with PxRigidBody and subclasses More... | |
class | PxSceneQueryExt |
utility functions for use with PxScene, related to scene queries. More... | |
class | PxSerialization |
Utility functions for serialization. More... | |
class | PxShapeExt |
utility functions for use with PxShape More... | |
struct | PxSphericalJointFlag |
Flags specific to the spherical joint. More... | |
class | PxSphericalJoint |
A joint which behaves in a similar way to a ball and socket. More... | |
class | PxMeshOverlapUtil |
Utility class to find mesh triangles touched by a specified geometry object. More... | |
Defines | |
#define | PX_NEW_SERIALIZER_ADAPTER(x) |
Preprocessor Macro to simplify adapter creation. | |
#define | PX_DELETE_SERIALIZER_ADAPTER(x) { PxSerializer* s = x; if (s) { s->~PxSerializer(); PxGetFoundation().getAllocatorCallback().deallocate(s); } } |
Preprocessor Macro to simplify adapter deletion. | |
#define | PX_BINARY_SERIAL_VERSION 0 |
Typedefs | |
typedef PxFlags < PxD6JointDriveFlag::Enum, PxU32 > | PxD6JointDriveFlags |
typedef FILE * | PxFileHandle |
typedef PxFlags < PxDistanceJointFlag::Enum, PxU16 > | PxDistanceJointFlags |
typedef PxFlags < PxPrismaticJointFlag::Enum, PxU16 > | PxPrismaticJointFlags |
typedef PxFlags < PxRevoluteJointFlag::Enum, PxU16 > | PxRevoluteJointFlags |
typedef PxQueryHit | PxSceneQueryHit |
typedef PxQueryFilterData | PxSceneQueryFilterData |
typedef PxQueryFilterCallback | PxSceneQueryFilterCallback |
typedef PxQueryCache | PxSceneQueryCache |
typedef PxHitFlag | PxSceneQueryFlag |
typedef PxHitFlags | PxSceneQueryFlags |
typedef PxFlags < PxSphericalJointFlag::Enum, PxU16 > | PxSphericalJointFlags |
Functions | |
PxClothFabric * | PxClothFabricCreate (PxPhysics &physics, const PxClothMeshDesc &desc, const PxVec3 &gravity, bool useGeodesicTether=true) |
Cooks a triangle mesh to a PxClothFabric. | |
PxU32 | PxFindFaceIndex (const PxConvexMeshGeometry &convexGeom, const PxTransform &geomPose, const PxVec3 &impactPos, const PxVec3 &unitDir) |
Computes closest polygon of the convex hull geometry for a given impact point and impact direction. When doing sweeps against a scene, one might want to delay the rather expensive computation of the hit face index for convexes until it is clear the information is really needed and then use this method to get the corresponding face index. | |
PxD6Joint * | PxD6JointCreate (PxPhysics &physics, PxRigidActor *actor0, const PxTransform &localFrame0, PxRigidActor *actor1, const PxTransform &localFrame1) |
Create a D6 joint. | |
PX_FORCE_INLINE void * | platformAlignedAlloc (size_t size) |
PX_FORCE_INLINE void | platformAlignedFree (void *ptr) |
PxDefaultCpuDispatcher * | PxDefaultCpuDispatcherCreate (PxU32 numThreads, PxU32 *affinityMasks=NULL) |
Create default dispatcher, extensions SDK needs to be initialized first. | |
PxFilterFlags | PxDefaultSimulationFilterShader (PxFilterObjectAttributes attributes0, PxFilterData filterData0, PxFilterObjectAttributes attributes1, PxFilterData filterData1, PxPairFlags &pairFlags, const void *constantBlock, PxU32 constantBlockSize) |
Implementation of a simple filter shader that emulates PhysX 2.8.x filtering. | |
bool | PxGetGroupCollisionFlag (const PxU16 group1, const PxU16 group2) |
Determines if collision detection is performed between a pair of groups. | |
void | PxSetGroupCollisionFlag (const PxU16 group1, const PxU16 group2, const bool enable) |
Specifies if collision should be performed by a pair of groups. | |
PxU16 | PxGetGroup (const PxActor &actor) |
Retrieves the value set with PxSetGroup(). | |
void | PxSetGroup (PxActor &actor, const PxU16 collisionGroup) |
Sets which collision group this actor is part of. | |
void | PxGetFilterOps (PxFilterOp::Enum &op0, PxFilterOp::Enum &op1, PxFilterOp::Enum &op2) |
Retrieves filtering operation. See comments for PxGroupsMask. | |
void | PxSetFilterOps (const PxFilterOp::Enum &op0, const PxFilterOp::Enum &op1, const PxFilterOp::Enum &op2) |
Setups filtering operations. See comments for PxGroupsMask. | |
bool | PxGetFilterBool () |
Retrieves filtering's boolean value. See comments for PxGroupsMask. | |
void | PxSetFilterBool (const bool enable) |
Setups filtering's boolean value. See comments for PxGroupsMask. | |
void | PxGetFilterConstants (PxGroupsMask &c0, PxGroupsMask &c1) |
Gets filtering constant K0 and K1. See comments for PxGroupsMask. | |
void | PxSetFilterConstants (const PxGroupsMask &c0, const PxGroupsMask &c1) |
Setups filtering's K0 and K1 value. See comments for PxGroupsMask. | |
PxGroupsMask | PxGetGroupsMask (const PxActor &actor) |
Gets 64-bit mask used for collision filtering. See comments for PxGroupsMask. | |
void | PxSetGroupsMask (PxActor &actor, const PxGroupsMask &mask) |
Sets 64-bit mask used for collision filtering. See comments for PxGroupsMask. | |
PxDistanceJoint * | PxDistanceJointCreate (PxPhysics &physics, PxRigidActor *actor0, const PxTransform &localFrame0, PxRigidActor *actor1, const PxTransform &localFrame1) |
Create a distance Joint. | |
PX_C_EXPORT bool PX_CALL_CONV | PxInitExtensions (physx::PxPhysics &physics, physx::PxPvd *pvd) |
Initialize the PhysXExtensions library. | |
PX_C_EXPORT void PX_CALL_CONV | PxCloseExtensions () |
Shut down the PhysXExtensions library. | |
PxFixedJoint * | PxFixedJointCreate (PxPhysics &physics, PxRigidActor *actor0, const PxTransform &localFrame0, PxRigidActor *actor1, const PxTransform &localFrame1) |
Create a fixed joint. | |
PX_C_EXPORT void PX_CALL_CONV | PxSetJointGlobalFrame (physx::PxJoint &joint, const physx::PxVec3 *wsAnchor, const physx::PxVec3 *wsAxis) |
Helper function to setup a joint's global frame. | |
PxPrismaticJoint * | PxPrismaticJointCreate (PxPhysics &physics, PxRigidActor *actor0, const PxTransform &localFrame0, PxRigidActor *actor1, const PxTransform &localFrame1) |
Create a prismatic joint. | |
PxRevoluteJoint * | PxRevoluteJointCreate (PxPhysics &physics, PxRigidActor *actor0, const PxTransform &localFrame0, PxRigidActor *actor1, const PxTransform &localFrame1) |
Create a revolute joint. | |
PxRigidDynamic * | PxCreateDynamic (PxPhysics &sdk, const PxTransform &transform, const PxGeometry &geometry, PxMaterial &material, PxReal density, const PxTransform &shapeOffset=PxTransform(PxIdentity)) |
simple method to create a PxRigidDynamic actor with a single PxShape. | |
PxRigidDynamic * | PxCreateDynamic (PxPhysics &sdk, const PxTransform &transform, PxShape &shape, PxReal density) |
simple method to create a PxRigidDynamic actor with a single PxShape. | |
PxRigidDynamic * | PxCreateKinematic (PxPhysics &sdk, const PxTransform &transform, const PxGeometry &geometry, PxMaterial &material, PxReal density, const PxTransform &shapeOffset=PxTransform(PxIdentity)) |
simple method to create a kinematic PxRigidDynamic actor with a single PxShape. | |
PxRigidDynamic * | PxCreateKinematic (PxPhysics &sdk, const PxTransform &transform, PxShape &shape, PxReal density) |
simple method to create a kinematic PxRigidDynamic actor with a single PxShape. | |
PxRigidStatic * | PxCreateStatic (PxPhysics &sdk, const PxTransform &transform, const PxGeometry &geometry, PxMaterial &material, const PxTransform &shapeOffset=PxTransform(PxIdentity)) |
simple method to create a PxRigidStatic actor with a single PxShape. | |
PxRigidStatic * | PxCreateStatic (PxPhysics &sdk, const PxTransform &transform, PxShape &shape) |
simple method to create a PxRigidStatic actor with a single PxShape. | |
PxShape * | PxCloneShape (PxPhysics &physicsSDK, const PxShape &shape, bool isExclusive) |
create a shape by copying attributes from another shape | |
PxRigidStatic * | PxCloneStatic (PxPhysics &physicsSDK, const PxTransform &transform, const PxRigidActor &actor) |
create a static body by copying attributes from another rigid actor | |
PxRigidDynamic * | PxCloneDynamic (PxPhysics &physicsSDK, const PxTransform &transform, const PxRigidDynamic &body) |
create a dynamic body by copying attributes from an existing body | |
PxRigidStatic * | PxCreatePlane (PxPhysics &sdk, const PxPlane &plane, PxMaterial &material) |
create a plane actor. The plane equation is n.x + d = 0 | |
void | PxScaleRigidActor (PxRigidActor &actor, PxReal scale, bool scaleMassProps=true) |
scale a rigid actor by a uniform scale | |
PX_C_EXPORT bool PX_CALL_CONV | PxBuildSmoothNormals (physx::PxU32 nbTris, physx::PxU32 nbVerts, const physx::PxVec3 *verts, const physx::PxU32 *dFaces, const physx::PxU16 *wFaces, physx::PxVec3 *normals, bool flip) |
Builds smooth vertex normals over a mesh. | |
PxSphericalJoint * | PxSphericalJointCreate (PxPhysics &physics, PxRigidActor *actor0, const PxTransform &localFrame0, PxRigidActor *actor1, const PxTransform &localFrame1) |
Create a spherical joint. | |
PX_DEPRECATED PxVec3 | PxComputeMeshPenetration (PxU32 maxIter, const PxGeometry &geom, const PxTransform &geomPose, const PxTriangleMeshGeometry &meshGeom, const PxTransform &meshPose, PxU32 &nb) |
Computes an approximate minimum translational distance (MTD) between a geometry object and a mesh. | |
bool | PxComputeTriangleMeshPenetration (PxVec3 &direction, PxReal &depth, const PxGeometry &geom, const PxTransform &geomPose, const PxTriangleMeshGeometry &meshGeom, const PxTransform &meshPose, PxU32 maxIter, PxU32 *usedIter=NULL) |
Computes an approximate minimum translational distance (MTD) between a geometry object and a mesh. | |
PX_DEPRECATED PxVec3 | PxComputeHeightFieldPenetration (PxU32 maxIter, const PxGeometry &geom, const PxTransform &geomPose, const PxHeightFieldGeometry &heightFieldGeom, const PxTransform &heightFieldPose, PxU32 &nb) |
Computes an approximate minimum translational distance (MTD) between a geometry object and a heightfield. | |
bool | PxComputeHeightFieldPenetration (PxVec3 &direction, PxReal &depth, const PxGeometry &geom, const PxTransform &geomPose, const PxHeightFieldGeometry &heightFieldGeom, const PxTransform &heightFieldPose, PxU32 maxIter, PxU32 *usedIter=NULL) |
Computes an approximate minimum translational distance (MTD) between a geometry object and a heightfield. |
Define Documentation
#define PX_BINARY_SERIAL_VERSION 0 |
PX_BINARY_SERIAL_VERSION is used to specify the binary data format compatibility additionally to the physics sdk version. The binary format version is defined as "PX_PHYSICS_VERSION_MAJOR.PX_PHYSICS_VERSION_MINOR.PX_PHYSICS_VERSION_BUGFIX-PX_BINARY_SERIAL_VERSION". The following binary format versions are compatible with the current physics version: (no compatible versions)
The PX_BINARY_SERIAL_VERSION for a given PhysX release is typically 0. If incompatible modifications are made to a customer specific branch the number should be increased.
#define PX_DELETE_SERIALIZER_ADAPTER | ( | x | ) | { PxSerializer* s = x; if (s) { s->~PxSerializer(); PxGetFoundation().getAllocatorCallback().deallocate(s); } } |
Preprocessor Macro to simplify adapter deletion.
#define PX_NEW_SERIALIZER_ADAPTER | ( | x | ) |
Value:
*new( PxGetFoundation().getAllocatorCallback().allocate(sizeof(PxSerializerDefaultAdapter<x>), \ "PxSerializerDefaultAdapter", __FILE__, __LINE__ )) PxSerializerDefaultAdapter<x>(#x)
Note: that the allocator used for creation needs to match with the one used in PX_DELETE_SERIALIZER_ADAPTER.
Typedef Documentation
typedef PxFlags<PxDistanceJointFlag::Enum, PxU16> PxDistanceJointFlags |
typedef FILE* PxFileHandle |
typedef PxFlags<PxPrismaticJointFlag::Enum, PxU16> PxPrismaticJointFlags |
typedef PxFlags<PxRevoluteJointFlag::Enum, PxU16> PxRevoluteJointFlags |
typedef PxQueryCache PxSceneQueryCache |
typedef PxHitFlag PxSceneQueryFlag |
typedef PxHitFlags PxSceneQueryFlags |
typedef PxQueryHit PxSceneQueryHit |
typedef PxFlags<PxSphericalJointFlag::Enum, PxU16> PxSphericalJointFlags |
Function Documentation
PX_FORCE_INLINE void* platformAlignedAlloc | ( | size_t | size | ) |
Referenced by PxDefaultAllocator::allocate().
PX_FORCE_INLINE void platformAlignedFree | ( | void * | ptr | ) |
Referenced by PxDefaultAllocator::deallocate().
PX_C_EXPORT bool PX_CALL_CONV PxBuildSmoothNormals | ( | physx::PxU32 | nbTris, | |
physx::PxU32 | nbVerts, | |||
const physx::PxVec3 * | verts, | |||
const physx::PxU32 * | dFaces, | |||
const physx::PxU16 * | wFaces, | |||
physx::PxVec3 * | normals, | |||
bool | flip | |||
) |
Builds smooth vertex normals over a mesh.
- "smooth" because smoothing groups are not supported here
- takes angles into account for correct cube normals computation
To use 32bit indices pass a pointer in dFaces and set wFaces to zero. Alternatively pass a pointer to wFaces and set dFaces to zero.
- Parameters:
-
[in] nbTris Number of triangles [in] nbVerts Number of vertices [in] verts Array of vertices [in] dFaces Array of dword triangle indices, or null [in] wFaces Array of word triangle indices, or null [out] normals Array of computed normals (assumes nbVerts vectors) [in] flip Flips the normals or not
- Returns:
- True on success.
PxRigidDynamic* PxCloneDynamic | ( | PxPhysics & | physicsSDK, | |
const PxTransform & | transform, | |||
const PxRigidDynamic & | body | |||
) |
create a dynamic body by copying attributes from an existing body
The following properties are copied:
- shapes
- actor flags and rigidDynamic flags
- mass, moment of inertia, and center of mass frame
- linear and angular velocity
- linear and angular damping
- maximum angular velocity
- position and velocity solver iterations
- maximum depenetration velocity
- sleep threshold
- contact report threshold
- dominance group
- owner client and client behavior bits
- name pointer
The following are not copied and retain their default values:
- name
- joints or observers
- aggregate or scene membership
- sleep timer
- user data
- Note:
- Transforms are not copied with bit-exact accuracy.
- Parameters:
-
[in] physicsSDK PxPhysics - the physics SDK used to allocate the rigid static [in] body the rigid dynamic to clone. [in] transform the transform of the new dynamic
- Returns:
- the newly-created rigid static
create a shape by copying attributes from another shape
The function clones a PxShape. The following properties are copied:
- geometry
- flags
- materials
- actor-local pose
- contact offset
- rest offset
- simulation filter data
- query filter data
The following are not copied and retain their default values:
- name
- user data
- Parameters:
-
[in] physicsSDK - the physics SDK used to allocate the shape [in] shape the shape from which to take the attributes. [in] isExclusive whether the new shape should be an exclusive or shared shape.
- Returns:
- the newly-created rigid static
PxRigidStatic* PxCloneStatic | ( | PxPhysics & | physicsSDK, | |
const PxTransform & | transform, | |||
const PxRigidActor & | actor | |||
) |
create a static body by copying attributes from another rigid actor
The function clones a PxRigidDynamic or PxRigidStatic as a PxRigidStatic. A uniform scale is applied. The following properties are copied:
- shapes
- actor flags
- owner client and client behavior bits
The following are not copied and retain their default values:
- name
- joints or observers
- aggregate or scene membership
- user data
- Note:
- Transforms are not copied with bit-exact accuracy.
- Parameters:
-
[in] physicsSDK - the physics SDK used to allocate the rigid static [in] actor the rigid actor from which to take the attributes. [in] transform the transform of the new static.
- Returns:
- the newly-created rigid static
PX_C_EXPORT void PX_CALL_CONV PxCloseExtensions | ( | ) |
Shut down the PhysXExtensions library.
This function should be called to cleanly shut down the PhysXExtensions library before application exit.
- Note:
- This function is required to be called to release foundation usage.
- See also:
- PxInitExtensions
PxClothFabric* PxClothFabricCreate | ( | PxPhysics & | physics, | |
const PxClothMeshDesc & | desc, | |||
const PxVec3 & | gravity, | |||
bool | useGeodesicTether = true | |||
) |
Cooks a triangle mesh to a PxClothFabric.
- Parameters:
-
physics The physics instance. desc The cloth mesh descriptor on which the generation of the cooked mesh depends. gravity A normalized vector which specifies the direction of gravity. This information allows the cooker to generate a fabric with higher quality simulation behavior. useGeodesicTether A flag to indicate whether to compute geodesic distance for tether constraints.
- Returns:
- The created cloth fabric, or NULL if creation failed.
bool PxComputeHeightFieldPenetration | ( | PxVec3 & | direction, | |
PxReal & | depth, | |||
const PxGeometry & | geom, | |||
const PxTransform & | geomPose, | |||
const PxHeightFieldGeometry & | heightFieldGeom, | |||
const PxTransform & | heightFieldPose, | |||
PxU32 | maxIter, | |||
PxU32 * | usedIter = NULL | |||
) |
Computes an approximate minimum translational distance (MTD) between a geometry object and a heightfield.
This iterative function computes an approximate vector that can be used to depenetrate a geom object from a heightfield. Returned depenetration vector should be applied to 'geom', to get out of the heightfield.
The function works best when the amount of overlap between the geom object and the mesh is small. If the geom object's center goes inside the heightfield, backface culling usually kicks in, no overlap is detected, and the function does not compute an MTD vector.
The function early exits if no overlap is detected after a depenetration attempt. This means that if maxIter = N, the code will attempt at most N iterations but it might exit earlier if depenetration has been successful. Usually N = 4 gives good results.
- Parameters:
-
[out] direction Computed MTD unit direction [out] depth Penetration depth. Always positive or zero. [in] geom The geometry object [in] geomPose Pose for the geometry object [in] heightFieldGeom The heightfield geometry [in] heightFieldPose Pose for the heightfield [in] maxIter Max number of iterations before returning. [out] usedIter Number of depenetrations attempts performed during the call. Will not be returned if the pointer is NULL.
- Returns:
- True if the MTD has successfully been computed, i.e. if objects do overlap.
- See also:
- PxGeometry PxTransform PxHeightFieldGeometry
PX_DEPRECATED PxVec3 PxComputeHeightFieldPenetration | ( | PxU32 | maxIter, | |
const PxGeometry & | geom, | |||
const PxTransform & | geomPose, | |||
const PxHeightFieldGeometry & | heightFieldGeom, | |||
const PxTransform & | heightFieldPose, | |||
PxU32 & | nb | |||
) |
Computes an approximate minimum translational distance (MTD) between a geometry object and a heightfield.
This iterative function computes an approximate vector that can be used to depenetrate a geom object from a heightfield. Returned depenetration vector should be applied to 'geom', to get out of the heightfield.
The function works best when the amount of overlap between the geom object and the mesh is small. If the geom object's center goes inside the heightfield, backface culling usually kicks in, no overlap is detected, and the function does not compute an MTD vector.
The function early exits if no overlap is detected after a depenetration attempt. This means that if maxIter = N, the code will attempt at most N iterations but it might exit earlier if depenetration has been successful. Usually N = 4 gives good results.
- Parameters:
-
[in] maxIter Max number of iterations before returning. [in] geom The geometry object [in] geomPose Pose for the geometry object [in] heightFieldGeom The heightfield geometry [in] heightFieldPose Pose for the heightfield [out] nb Number of depenetrations attempts performed during the call. 0 means no overlap has been detected.
- Returns:
- Approximate depenetration vector
- See also:
- PxGeometry PxTransform PxHeightFieldGeometry
PX_DEPRECATED PxVec3 PxComputeMeshPenetration | ( | PxU32 | maxIter, | |
const PxGeometry & | geom, | |||
const PxTransform & | geomPose, | |||
const PxTriangleMeshGeometry & | meshGeom, | |||
const PxTransform & | meshPose, | |||
PxU32 & | nb | |||
) |
Computes an approximate minimum translational distance (MTD) between a geometry object and a mesh.
This iterative function computes an approximate vector that can be used to depenetrate a geom object from a triangle mesh. Returned depenetration vector should be applied to 'geom', to get out of the mesh.
The function works best when the amount of overlap between the geom object and the mesh is small. If the geom object's center goes inside the mesh, backface culling usually kicks in, no overlap is detected, and the function does not compute an MTD vector.
The function early exits if no overlap is detected after a depenetration attempt. This means that if maxIter = N, the code will attempt at most N iterations but it might exit earlier if depenetration has been successful. Usually N = 4 gives good results.
- Parameters:
-
[in] maxIter Max number of iterations before returning. [in] geom The geometry object [in] geomPose Pose for the geometry object [in] meshGeom The mesh geometry [in] meshPose Pose for the mesh [out] nb Number of depenetrations attempts performed during the call. 0 means no overlap has been detected.
- Returns:
- Approximate depenetration vector
- See also:
- PxGeometry PxTransform PxTriangleMeshGeometry
bool PxComputeTriangleMeshPenetration | ( | PxVec3 & | direction, | |
PxReal & | depth, | |||
const PxGeometry & | geom, | |||
const PxTransform & | geomPose, | |||
const PxTriangleMeshGeometry & | meshGeom, | |||
const PxTransform & | meshPose, | |||
PxU32 | maxIter, | |||
PxU32 * | usedIter = NULL | |||
) |
Computes an approximate minimum translational distance (MTD) between a geometry object and a mesh.
This iterative function computes an approximate vector that can be used to depenetrate a geom object from a triangle mesh. Returned depenetration vector should be applied to 'geom', to get out of the mesh.
The function works best when the amount of overlap between the geom object and the mesh is small. If the geom object's center goes inside the mesh, backface culling usually kicks in, no overlap is detected, and the function does not compute an MTD vector.
The function early exits if no overlap is detected after a depenetration attempt. This means that if maxIter = N, the code will attempt at most N iterations but it might exit earlier if depenetration has been successful. Usually N = 4 gives good results.
- Parameters:
-
[out] direction Computed MTD unit direction [out] depth Penetration depth. Always positive or zero. [in] geom The geometry object [in] geomPose Pose for the geometry object [in] meshGeom The mesh geometry [in] meshPose Pose for the mesh [in] maxIter Max number of iterations before returning. [out] usedIter Number of depenetrations attempts performed during the call. Will not be returned if the pointer is NULL.
- Returns:
- True if the MTD has successfully been computed, i.e. if objects do overlap.
- See also:
- PxGeometry PxTransform PxTriangleMeshGeometry
PxRigidDynamic* PxCreateDynamic | ( | PxPhysics & | sdk, | |
const PxTransform & | transform, | |||
PxShape & | shape, | |||
PxReal | density | |||
) |
simple method to create a PxRigidDynamic actor with a single PxShape.
- Parameters:
-
[in] sdk the PxPhysics object [in] transform the transform of the new object [in] shape the shape of the new object [in] density the density of the new object. Must be greater than zero.
- Returns:
- a new dynamic actor with the PxRigidBodyFlag, or NULL if it could not be constructed
- See also:
- PxRigidDynamic PxShapeFlag
PxRigidDynamic* PxCreateDynamic | ( | PxPhysics & | sdk, | |
const PxTransform & | transform, | |||
const PxGeometry & | geometry, | |||
PxMaterial & | material, | |||
PxReal | density, | |||
const PxTransform & | shapeOffset = PxTransform(PxIdentity) | |||
) |
simple method to create a PxRigidDynamic actor with a single PxShape.
- Parameters:
-
[in] sdk the PxPhysics object [in] transform the global pose of the new object [in] geometry the geometry of the new object's shape, which must be a sphere, capsule, box or convex [in] material the material for the new object's shape [in] density the density of the new object. Must be greater than zero. [in] shapeOffset an optional offset for the new shape, defaults to identity
- Returns:
- a new dynamic actor with the PxRigidBodyFlag, or NULL if it could not be constructed
- See also:
- PxRigidDynamic PxShapeFlag
PxRigidDynamic* PxCreateKinematic | ( | PxPhysics & | sdk, | |
const PxTransform & | transform, | |||
PxShape & | shape, | |||
PxReal | density | |||
) |
simple method to create a kinematic PxRigidDynamic actor with a single PxShape.
- Parameters:
-
[in] sdk the PxPhysics object [in] transform the global pose of the new object [in] density the density of the new object. Must be greater than zero if the object is to participate in simulation. [in] shape the shape of the new object
- Note:
- unlike PxCreateDynamic, the geometry is not restricted to box, capsule, sphere or convex. However, kinematics of other geometry types may not participate in simulation collision and may be used only for triggers or scene queries of moving objects under animation control. In this case the density parameter will be ignored and the created shape will be set up as a scene query only shape (see PxShapeFlag::eSCENE_QUERY_SHAPE)
- Returns:
- a new dynamic actor with the PxRigidBodyFlag::eKINEMATIC set, or NULL if it could not be constructed
- See also:
- PxRigidDynamic PxShapeFlag
PxRigidDynamic* PxCreateKinematic | ( | PxPhysics & | sdk, | |
const PxTransform & | transform, | |||
const PxGeometry & | geometry, | |||
PxMaterial & | material, | |||
PxReal | density, | |||
const PxTransform & | shapeOffset = PxTransform(PxIdentity) | |||
) |
simple method to create a kinematic PxRigidDynamic actor with a single PxShape.
- Parameters:
-
[in] sdk the PxPhysics object [in] transform the global pose of the new object [in] geometry the geometry of the new object's shape [in] material the material for the new object's shape [in] density the density of the new object. Must be greater than zero if the object is to participate in simulation. [in] shapeOffset an optional offset for the new shape, defaults to identity
- Note:
- unlike PxCreateDynamic, the geometry is not restricted to box, capsule, sphere or convex. However, kinematics of other geometry types may not participate in simulation collision and may be used only for triggers or scene queries of moving objects under animation control. In this case the density parameter will be ignored and the created shape will be set up as a scene query only shape (see PxShapeFlag::eSCENE_QUERY_SHAPE)
- Returns:
- a new dynamic actor with the PxRigidBodyFlag::eKINEMATIC set, or NULL if it could not be constructed
- See also:
- PxRigidDynamic PxShapeFlag
PxRigidStatic* PxCreatePlane | ( | PxPhysics & | sdk, | |
const PxPlane & | plane, | |||
PxMaterial & | material | |||
) |
create a plane actor. The plane equation is n.x + d = 0
- Parameters:
-
[in] sdk the PxPhysics object [in] plane a plane of the form n.x + d = 0 [in] material the material for the new object's shape
- Returns:
- a new static actor, or NULL if it could not be constructed
- See also:
- PxRigidStatic
PxRigidStatic * PxCreateStatic | ( | PxPhysics & | sdk, | |
const PxTransform & | transform, | |||
PxShape & | shape | |||
) |
simple method to create a PxRigidStatic actor with a single PxShape.
- Parameters:
-
[in] sdk the PxPhysics object [in] transform the global pose of the new object [in] shape the new object's shape
- Returns:
- a new static actor, or NULL if it could not be constructed
- See also:
- PxRigidStatic
PxRigidStatic* PxCreateStatic | ( | PxPhysics & | sdk, | |
const PxTransform & | transform, | |||
const PxGeometry & | geometry, | |||
PxMaterial & | material, | |||
const PxTransform & | shapeOffset = PxTransform(PxIdentity) | |||
) |
simple method to create a PxRigidStatic actor with a single PxShape.
- Parameters:
-
[in] sdk the PxPhysics object [in] transform the global pose of the new object [in] geometry the geometry of the new object's shape [in] material the material for the new object's shape [in] shapeOffset an optional offset for the new shape, defaults to identity
- Returns:
- a new static actor, or NULL if it could not be constructed
- See also:
- PxRigidStatic
PxD6Joint* PxD6JointCreate | ( | PxPhysics & | physics, | |
PxRigidActor * | actor0, | |||
const PxTransform & | localFrame0, | |||
PxRigidActor * | actor1, | |||
const PxTransform & | localFrame1 | |||
) |
Create a D6 joint.
- Parameters:
-
[in] physics the physics SDK [in] actor0 an actor to which the joint is attached. NULL may be used to attach the joint to a specific point in the world frame [in] localFrame0 the position and orientation of the joint relative to actor0 [in] actor1 an actor to which the joint is attached. NULL may be used to attach the joint to a specific point in the world frame [in] localFrame1 the position and orientation of the joint relative to actor1
- See also:
- PxD6Joint
PxDefaultCpuDispatcher* PxDefaultCpuDispatcherCreate | ( | PxU32 | numThreads, | |
PxU32 * | affinityMasks = NULL | |||
) |
Create default dispatcher, extensions SDK needs to be initialized first.
- Parameters:
-
[in] numThreads Number of worker threads the dispatcher should use. [in] affinityMasks Array with affinity mask for each thread. If not defined, default masks will be used.
- Note:
- numThreads may be zero in which case no worker thread are initialized and simulation tasks will be executed on the thread that calls PxScene::simulate()
- See also:
- PxDefaultCpuDispatcher
PxFilterFlags PxDefaultSimulationFilterShader | ( | PxFilterObjectAttributes | attributes0, | |
PxFilterData | filterData0, | |||
PxFilterObjectAttributes | attributes1, | |||
PxFilterData | filterData1, | |||
PxPairFlags & | pairFlags, | |||
const void * | constantBlock, | |||
PxU32 | constantBlockSize | |||
) |
Implementation of a simple filter shader that emulates PhysX 2.8.x filtering.
This shader provides the following logic:
- If one of the two filter objects is a trigger, the pair is acccepted and PxPairFlag::eTRIGGER_DEFAULT will be used for trigger reports
- Else, if the filter mask logic (see further below) discards the pair it will be suppressed (PxFilterFlag::eSUPPRESS)
- Else, the pair gets accepted and collision response gets enabled (PxPairFlag::eCONTACT_DEFAULT)
1) Collision groups of the pair are enabled 2) Collision filtering equation is satisfied
- See also:
- PxSimulationFilterShader
PxDistanceJoint* PxDistanceJointCreate | ( | PxPhysics & | physics, | |
PxRigidActor * | actor0, | |||
const PxTransform & | localFrame0, | |||
PxRigidActor * | actor1, | |||
const PxTransform & | localFrame1 | |||
) |
Create a distance Joint.
- Parameters:
-
[in] physics the physics SDK [in] actor0 an actor to which the joint is attached. NULL may be used to attach the joint to a specific point in the world frame [in] localFrame0 the position and orientation of the joint relative to actor0 [in] actor1 an actor to which the joint is attached. NULL may be used to attach the joint to a specific point in the world frame [in] localFrame1 the position and orientation of the joint relative to actor1
- See also:
- PxDistanceJoint
PxU32 PxFindFaceIndex | ( | const PxConvexMeshGeometry & | convexGeom, | |
const PxTransform & | geomPose, | |||
const PxVec3 & | impactPos, | |||
const PxVec3 & | unitDir | |||
) |
Computes closest polygon of the convex hull geometry for a given impact point and impact direction. When doing sweeps against a scene, one might want to delay the rather expensive computation of the hit face index for convexes until it is clear the information is really needed and then use this method to get the corresponding face index.
- Parameters:
-
[in] convexGeom The convex mesh geometry. [in] geomPose Pose for the geometry object. [in] impactPos Impact position. [in] unitDir Normalized impact direction.
- Returns:
- Closest face index of the convex geometry.
- See also:
- PxTransform PxConvexMeshGeometry
PxFixedJoint* PxFixedJointCreate | ( | PxPhysics & | physics, | |
PxRigidActor * | actor0, | |||
const PxTransform & | localFrame0, | |||
PxRigidActor * | actor1, | |||
const PxTransform & | localFrame1 | |||
) |
Create a fixed joint.
- Parameters:
-
[in] physics the physics SDK [in] actor0 an actor to which the joint is attached. NULL may be used to attach the joint to a specific point in the world frame [in] localFrame0 the position and orientation of the joint relative to actor0 [in] actor1 an actor to which the joint is attached. NULL may be used to attach the joint to a specific point in the world frame [in] localFrame1 the position and orientation of the joint relative to actor1
- See also:
- PxFixedJoint
bool PxGetFilterBool | ( | ) |
Retrieves filtering's boolean value. See comments for PxGroupsMask.
- Returns:
- flag Boolean value for filter.
- See also:
- PxSetFilterBool PxSetFilterConstants
void PxGetFilterConstants | ( | PxGroupsMask & | c0, | |
PxGroupsMask & | c1 | |||
) |
Gets filtering constant K0 and K1. See comments for PxGroupsMask.
- Parameters:
-
[out] c0 the filtering constants, as a mask. See PxGroupsMask. [out] c1 the filtering constants, as a mask. See PxGroupsMask.
void PxGetFilterOps | ( | PxFilterOp::Enum & | op0, | |
PxFilterOp::Enum & | op1, | |||
PxFilterOp::Enum & | op2 | |||
) |
Retrieves filtering operation. See comments for PxGroupsMask.
- Parameters:
-
[out] op0 First filter operator. [out] op1 Second filter operator. [out] op2 Third filter operator.
PxU16 PxGetGroup | ( | const PxActor & | actor | ) |
Retrieves the value set with PxSetGroup().
- Note:
- Collision group is an integer between 0 and 31.
- Parameters:
-
[in] actor The actor
- Returns:
- The collision group this actor belongs to
- See also:
- PxSetGroup
bool PxGetGroupCollisionFlag | ( | const PxU16 | group1, | |
const PxU16 | group2 | |||
) |
Determines if collision detection is performed between a pair of groups.
- Note:
- Collision group is an integer between 0 and 31.
- Parameters:
-
[in] group1 First Group [in] group2 Second Group
- Returns:
- True if the groups could collide
- See also:
- PxSetGroupCollisionFlag
PxGroupsMask PxGetGroupsMask | ( | const PxActor & | actor | ) |
Gets 64-bit mask used for collision filtering. See comments for PxGroupsMask.
- Parameters:
-
[in] actor The actor
- Returns:
- The group mask for the actor.
- See also:
- PxSetGroupsMask()
PX_C_EXPORT bool PX_CALL_CONV PxInitExtensions | ( | physx::PxPhysics & | physics, | |
physx::PxPvd * | pvd | |||
) |
Initialize the PhysXExtensions library.
This should be called before calling any functions or methods in extensions which may require allocation.
- Note:
- This function does not need to be called before creating a PxDefaultAllocator object.
- See also:
- PxCloseExtensions PxFoundation PxPhysics
PxPrismaticJoint* PxPrismaticJointCreate | ( | PxPhysics & | physics, | |
PxRigidActor * | actor0, | |||
const PxTransform & | localFrame0, | |||
PxRigidActor * | actor1, | |||
const PxTransform & | localFrame1 | |||
) |
Create a prismatic joint.
- Parameters:
-
[in] physics the physics SDK [in] actor0 an actor to which the joint is attached. NULL may be used to attach the joint to a specific point in the world frame [in] localFrame0 the position and orientation of the joint relative to actor0 [in] actor1 an actor to which the joint is attached. NULL may be used to attach the joint to a specific point in the world frame [in] localFrame1 the position and orientation of the joint relative to actor1
- See also:
- PxPrismaticJoint
PxRevoluteJoint* PxRevoluteJointCreate | ( | PxPhysics & | physics, | |
PxRigidActor * | actor0, | |||
const PxTransform & | localFrame0, | |||
PxRigidActor * | actor1, | |||
const PxTransform & | localFrame1 | |||
) |
Create a revolute joint.
- Parameters:
-
[in] physics the physics SDK [in] actor0 an actor to which the joint is attached. NULL may be used to attach the joint to a specific point in the world frame [in] localFrame0 the position and orientation of the joint relative to actor0 [in] actor1 an actor to which the joint is attached. NULL may be used to attach the joint to a specific point in the world frame [in] localFrame1 the position and orientation of the joint relative to actor1
- See also:
- PxRevoluteJoint
void PxScaleRigidActor | ( | PxRigidActor & | actor, | |
PxReal | scale, | |||
bool | scaleMassProps = true | |||
) |
scale a rigid actor by a uniform scale
The geometry and relative positions of the actor are multiplied by the given scale value. If the actor is a rigid body or an articulation link and the scaleMassProps value is true, the mass properties are scaled assuming the density is constant: the center of mass is linearly scaled, the mass is multiplied by the cube of the scale, and the inertia tensor by the fifth power of the scale.
- Parameters:
-
[in] actor a rigid actor [in] scale the scale by which to multiply the actor. Must be >0. [in] scaleMassProps whether to scale the mass properties
void PxSetFilterBool | ( | const bool | enable | ) |
Setups filtering's boolean value. See comments for PxGroupsMask.
- Parameters:
-
[in] enable Boolean value for filter.
- See also:
- PxSetFilterOps PxSsetFilterConstants
void PxSetFilterConstants | ( | const PxGroupsMask & | c0, | |
const PxGroupsMask & | c1 | |||
) |
Setups filtering's K0 and K1 value. See comments for PxGroupsMask.
- Parameters:
-
[in] c0 The new group mask. See PxGroupsMask. [in] c1 The new group mask. See PxGroupsMask.
void PxSetFilterOps | ( | const PxFilterOp::Enum & | op0, | |
const PxFilterOp::Enum & | op1, | |||
const PxFilterOp::Enum & | op2 | |||
) |
Setups filtering operations. See comments for PxGroupsMask.
- Parameters:
-
[in] op0 Filter op 0. [in] op1 Filter op 1. [in] op2 Filter op 2.
- See also:
- PxSetFilterBool PxSetFilterConstants
void PxSetGroup | ( | PxActor & | actor, | |
const PxU16 | collisionGroup | |||
) |
Sets which collision group this actor is part of.
- Note:
- Collision group is an integer between 0 and 31.
- Parameters:
-
[in] actor The actor [in] collisionGroup Collision group this actor belongs to
- See also:
- PxGetGroup
void PxSetGroupCollisionFlag | ( | const PxU16 | group1, | |
const PxU16 | group2, | |||
const bool | enable | |||
) |
Specifies if collision should be performed by a pair of groups.
- Note:
- Collision group is an integer between 0 and 31.
- Parameters:
-
[in] group1 First Group [in] group2 Second Group [in] enable True to enable collision between the groups
- See also:
- PxGetGroupCollisionFlag
void PxSetGroupsMask | ( | PxActor & | actor, | |
const PxGroupsMask & | mask | |||
) |
Sets 64-bit mask used for collision filtering. See comments for PxGroupsMask.
- Parameters:
-
[in] actor The actor [in] mask The group mask to set for the actor.
- See also:
- PxGetGroupsMask()
PX_C_EXPORT void PX_CALL_CONV PxSetJointGlobalFrame | ( | physx::PxJoint & | joint, | |
const physx::PxVec3 * | wsAnchor, | |||
const physx::PxVec3 * | wsAxis | |||
) |
Helper function to setup a joint's global frame.
This replaces the following functions from previous SDK versions:
void NxJointDesc::setGlobalAnchor(const NxVec3& wsAnchor); void NxJointDesc::setGlobalAxis(const NxVec3& wsAxis);
The function sets the joint's localPose using world-space input parameters.
- Parameters:
-
[in] wsAnchor Global frame anchor point. Range: position vector [in] wsAxis Global frame axis. Range: direction vector [in,out] joint Joint having its global frame set.
PxSphericalJoint* PxSphericalJointCreate | ( | PxPhysics & | physics, | |
PxRigidActor * | actor0, | |||
const PxTransform & | localFrame0, | |||
PxRigidActor * | actor1, | |||
const PxTransform & | localFrame1 | |||
) |
Create a spherical joint.
- Parameters:
-
[in] physics the physics SDK [in] actor0 an actor to which the joint is attached. NULL may be used to attach the joint to a specific point in the world frame [in] localFrame0 the position and orientation of the joint relative to actor0 [in] actor1 an actor to which the joint is attached. NULL may be used to attach the joint to a specific point in the world frame [in] localFrame1 the position and orientation of the joint relative to actor1
- See also:
- PxSphericalJoint
Copyright © 2008-2017 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved. www.nvidia.com