#include <PxPhysics.h>
Public Member Functions | |
Basics | |
virtual | ~PxPhysics () |
virtual void | release ()=0 |
Destroys the instance it is called on. | |
virtual PxFoundation & | getFoundation ()=0 |
Retrieves the Foundation instance. | |
virtual PxAggregate * | createAggregate (PxU32 maxSize, bool enableSelfCollision)=0 |
Creates an aggregate with the specified maximum size and selfCollision property. | |
virtual const PxTolerancesScale & | getTolerancesScale () const =0 |
Returns the simulation tolerance parameters. | |
Meshes | |
virtual PxTriangleMesh * | createTriangleMesh (PxInputStream &stream)=0 |
Creates a triangle mesh object. | |
virtual PxU32 | getNbTriangleMeshes () const =0 |
Return the number of triangle meshes that currently exist. | |
virtual PxU32 | getTriangleMeshes (PxTriangleMesh **userBuffer, PxU32 bufferSize, PxU32 startIndex=0) const =0 |
Writes the array of triangle mesh pointers to a user buffer. | |
virtual PxHeightField * | createHeightField (PxInputStream &stream)=0 |
Creates a heightfield object from previously cooked stream. | |
virtual PxU32 | getNbHeightFields () const =0 |
Return the number of heightfields that currently exist. | |
virtual PxU32 | getHeightFields (PxHeightField **userBuffer, PxU32 bufferSize, PxU32 startIndex=0) const =0 |
Writes the array of heightfield pointers to a user buffer. | |
virtual PxConvexMesh * | createConvexMesh (PxInputStream &stream)=0 |
Creates a convex mesh object. | |
virtual PxU32 | getNbConvexMeshes () const =0 |
Return the number of convex meshes that currently exist. | |
virtual PxU32 | getConvexMeshes (PxConvexMesh **userBuffer, PxU32 bufferSize, PxU32 startIndex=0) const =0 |
Writes the array of convex mesh pointers to a user buffer. | |
virtual PxClothFabric * | createClothFabric (PxInputStream &stream)=0 |
Creates a cloth fabric object. | |
virtual PxClothFabric * | createClothFabric (const PxClothFabricDesc &desc)=0 |
Creates a cloth fabric object from particle connectivity and restlength information. | |
virtual PxU32 | getNbClothFabrics () const =0 |
Return the number of cloth fabrics that currently exist. | |
virtual PxU32 | getClothFabrics (PxClothFabric **userBuffer, PxU32 bufferSize) const =0 |
Writes the array of cloth fabrics to a user buffer. | |
Scenes | |
virtual PxScene * | createScene (const PxSceneDesc &sceneDesc)=0 |
Creates a scene. | |
virtual PxU32 | getNbScenes () const =0 |
Gets number of created scenes. | |
virtual PxU32 | getScenes (PxScene **userBuffer, PxU32 bufferSize, PxU32 startIndex=0) const =0 |
Writes the array of scene pointers to a user buffer. | |
Actors | |
virtual PxRigidStatic * | createRigidStatic (const PxTransform &pose)=0 |
Creates a static rigid actor with the specified pose and all other fields initialized to their default values. | |
virtual PxRigidDynamic * | createRigidDynamic (const PxTransform &pose)=0 |
Creates a dynamic rigid actor with the specified pose and all other fields initialized to their default values. | |
virtual PX_DEPRECATED PxParticleSystem * | createParticleSystem (PxU32 maxParticles, bool perParticleRestOffset=false)=0 |
Creates a particle system. (deprecated). | |
virtual PX_DEPRECATED PxParticleFluid * | createParticleFluid (PxU32 maxParticles, bool perParticleRestOffset=false)=0 |
Creates a particle fluid. (deprecated). | |
virtual PxCloth * | createCloth (const PxTransform &globalPose, PxClothFabric &fabric, const PxClothParticle *particles, PxClothFlags flags)=0 |
Creates a cloth. | |
virtual PxPruningStructure * | createPruningStructure (PxRigidActor *const *actors, PxU32 nbActors)=0 |
Creates a pruning structure from actors. | |
Shapes | |
PX_FORCE_INLINE PxShape * | createShape (const PxGeometry &geometry, const PxMaterial &material, bool isExclusive=false, PxShapeFlags shapeFlags=PxShapeFlag::eVISUALIZATION|PxShapeFlag::eSCENE_QUERY_SHAPE|PxShapeFlag::eSIMULATION_SHAPE) |
Creates a shape which may be attached to multiple actors. | |
virtual PxShape * | createShape (const PxGeometry &geometry, PxMaterial *const *materials, PxU16 materialCount, bool isExclusive=false, PxShapeFlags shapeFlags=PxShapeFlag::eVISUALIZATION|PxShapeFlag::eSCENE_QUERY_SHAPE|PxShapeFlag::eSIMULATION_SHAPE)=0 |
Creates a shape which may be attached to multiple actors. | |
virtual PxU32 | getNbShapes () const =0 |
Return the number of shapes that currently exist. | |
virtual PxU32 | getShapes (PxShape **userBuffer, PxU32 bufferSize, PxU32 startIndex=0) const =0 |
Writes the array of shape pointers to a user buffer. | |
Constraints and Articulations | |
virtual PxConstraint * | createConstraint (PxRigidActor *actor0, PxRigidActor *actor1, PxConstraintConnector &connector, const PxConstraintShaderTable &shaders, PxU32 dataSize)=0 |
Creates a constraint shader. | |
virtual PxArticulation * | createArticulation ()=0 |
Creates an articulation with all fields initialized to their default values. | |
Materials | |
virtual PxMaterial * | createMaterial (PxReal staticFriction, PxReal dynamicFriction, PxReal restitution)=0 |
Creates a new material with default properties. | |
virtual PxU32 | getNbMaterials () const =0 |
Return the number of materials that currently exist. | |
virtual PxU32 | getMaterials (PxMaterial **userBuffer, PxU32 bufferSize, PxU32 startIndex=0) const =0 |
Writes the array of material pointers to a user buffer. | |
Deletion Listeners | |
virtual void | registerDeletionListener (PxDeletionListener &observer, const PxDeletionEventFlags &deletionEvents, bool restrictedObjectSet=false)=0 |
Register a deletion listener. Listeners will be called whenever an object is deleted. | |
virtual void | unregisterDeletionListener (PxDeletionListener &observer)=0 |
Unregister a deletion listener. | |
virtual void | registerDeletionListenerObjects (PxDeletionListener &observer, const PxBase *const *observables, PxU32 observableCount)=0 |
Register specific objects for deletion events. | |
virtual void | unregisterDeletionListenerObjects (PxDeletionListener &observer, const PxBase *const *observables, PxU32 observableCount)=0 |
Unregister specific objects for deletion events. | |
virtual PxPhysicsInsertionCallback & | getPhysicsInsertionCallback ()=0 |
Gets PxPhysics object insertion interface. |
In addition you can use PxPhysics to set global parameters which will effect all scenes and create objects that can be shared across multiple scenes.
You can get an instance of this class by calling PxCreateBasePhysics() or PxCreatePhysics() with pre-registered modules.
virtual PxPhysics::~PxPhysics | ( | ) | [inline, virtual] |
virtual PxAggregate* PxPhysics::createAggregate | ( | PxU32 | maxSize, | |
bool | enableSelfCollision | |||
) | [pure virtual] |
Creates an aggregate with the specified maximum size and selfCollision property.
[in] | maxSize | the maximum number of actors that may be placed in the aggregate. This value must not exceed 128, otherwise NULL will be returned. |
[in] | enableSelfCollision | whether the aggregate supports self-collision |
virtual PxArticulation* PxPhysics::createArticulation | ( | ) | [pure virtual] |
Creates an articulation with all fields initialized to their default values.
virtual PxCloth* PxPhysics::createCloth | ( | const PxTransform & | globalPose, | |
PxClothFabric & | fabric, | |||
const PxClothParticle * | particles, | |||
PxClothFlags | flags | |||
) | [pure virtual] |
Creates a cloth.
globalPose | The world space transform of the cloth. | |
fabric | The fabric the cloth should use. | |
particles | Particle definition buffer. The size of the buffer has to match fabric.getNbParticles(). | |
flags | Cloth flags. |
virtual PxClothFabric* PxPhysics::createClothFabric | ( | const PxClothFabricDesc & | desc | ) | [pure virtual] |
Creates a cloth fabric object from particle connectivity and restlength information.
[in] | desc | Fabric descriptor, see PxClothFabricDesc. |
virtual PxClothFabric* PxPhysics::createClothFabric | ( | PxInputStream & | stream | ) | [pure virtual] |
Creates a cloth fabric object.
This can then be instanced into PxCloth objects.
[in] | stream | The stream to load the cloth fabric from. |
virtual PxConstraint* PxPhysics::createConstraint | ( | PxRigidActor * | actor0, | |
PxRigidActor * | actor1, | |||
PxConstraintConnector & | connector, | |||
const PxConstraintShaderTable & | shaders, | |||
PxU32 | dataSize | |||
) | [pure virtual] |
Creates a constraint shader.
[in] | actor0 | the first actor |
[in] | actor1 | the second actor |
[in] | connector | the connector object, which the SDK uses to communicate with the infrastructure for the constraint |
[in] | shaders | the shader functions for the constraint |
[in] | dataSize | the size of the data block for the shader |
virtual PxConvexMesh* PxPhysics::createConvexMesh | ( | PxInputStream & | stream | ) | [pure virtual] |
Creates a convex mesh object.
This can then be instanced into PxShape objects.
[in] | stream | The stream to load the convex mesh from. |
virtual PxHeightField* PxPhysics::createHeightField | ( | PxInputStream & | stream | ) | [pure virtual] |
Creates a heightfield object from previously cooked stream.
This can then be instanced into PxShape objects.
[in] | stream | The heightfield mesh stream. |
virtual PxMaterial* PxPhysics::createMaterial | ( | PxReal | staticFriction, | |
PxReal | dynamicFriction, | |||
PxReal | restitution | |||
) | [pure virtual] |
Creates a new material with default properties.
staticFriction | the coefficient of static friction | |
dynamicFriction | the coefficient of dynamic friction | |
restitution | the coefficient of restitution |
virtual PX_DEPRECATED PxParticleFluid* PxPhysics::createParticleFluid | ( | PxU32 | maxParticles, | |
bool | perParticleRestOffset = false | |||
) | [pure virtual] |
Creates a particle fluid. (deprecated).
maxParticles | the maximum number of particles that may be placed in the particle fluid | |
perParticleRestOffset | whether the ParticleFluid supports perParticleRestOffset |
virtual PX_DEPRECATED PxParticleSystem* PxPhysics::createParticleSystem | ( | PxU32 | maxParticles, | |
bool | perParticleRestOffset = false | |||
) | [pure virtual] |
Creates a particle system. (deprecated).
maxParticles | the maximum number of particles that may be placed in the particle system | |
perParticleRestOffset | whether the ParticleSystem supports perParticleRestOffset |
virtual PxPruningStructure* PxPhysics::createPruningStructure | ( | PxRigidActor *const * | actors, | |
PxU32 | nbActors | |||
) | [pure virtual] |
Creates a pruning structure from actors.
Both static and dynamic actors can be provided.
It is not allowed to pass in actors which are already part of a scene.
Articulation links cannot be provided.
[in] | actors | Array of actors to add to the pruning structure. Must be non NULL. |
[in] | nbActors | Number of actors in the array. Must be >0. |
virtual PxRigidDynamic* PxPhysics::createRigidDynamic | ( | const PxTransform & | pose | ) | [pure virtual] |
Creates a dynamic rigid actor with the specified pose and all other fields initialized to their default values.
[in] | pose | the initial pose of the actor. Must be a valid transform |
virtual PxRigidStatic* PxPhysics::createRigidStatic | ( | const PxTransform & | pose | ) | [pure virtual] |
Creates a static rigid actor with the specified pose and all other fields initialized to their default values.
[in] | pose | the initial pose of the actor. Must be a valid transform |
virtual PxScene* PxPhysics::createScene | ( | const PxSceneDesc & | sceneDesc | ) | [pure virtual] |
Creates a scene.
[in] | sceneDesc | Scene descriptor. See PxSceneDesc |
virtual PxShape* PxPhysics::createShape | ( | const PxGeometry & | geometry, | |
PxMaterial *const * | materials, | |||
PxU16 | materialCount, | |||
bool | isExclusive = false , |
|||
PxShapeFlags | shapeFlags = PxShapeFlag::eVISUALIZATION|PxShapeFlag::eSCENE_QUERY_SHAPE|PxShapeFlag::eSIMULATION_SHAPE | |||
) | [pure virtual] |
Creates a shape which may be attached to multiple actors.
The shape will be created with a reference count of 1.
[in] | geometry | the geometry for the shape |
[in] | materials | the materials for the shape |
[in] | materialCount | the number of materials |
[in] | isExclusive | whether this shape is exclusive to a single actor or may be shared |
[in] | shapeFlags | the PxShapeFlags to be set |
PX_FORCE_INLINE PxShape* PxPhysics::createShape | ( | const PxGeometry & | geometry, | |
const PxMaterial & | material, | |||
bool | isExclusive = false , |
|||
PxShapeFlags | shapeFlags = PxShapeFlag::eVISUALIZATION | PxShapeFlag::eSCENE_QUERY_SHAPE | PxShapeFlag::eSIMULATION_SHAPE | |||
) | [inline] |
Creates a shape which may be attached to multiple actors.
The shape will be created with a reference count of 1.
[in] | geometry | the geometry for the shape |
[in] | material | the material for the shape |
[in] | isExclusive | whether this shape is exclusive to a single actor or maybe be shared |
[in] | shapeFlags | the PxShapeFlags to be set |
virtual PxTriangleMesh* PxPhysics::createTriangleMesh | ( | PxInputStream & | stream | ) | [pure virtual] |
Creates a triangle mesh object.
This can then be instanced into PxShape objects.
[in] | stream | The triangle mesh stream. |
virtual PxU32 PxPhysics::getClothFabrics | ( | PxClothFabric ** | userBuffer, | |
PxU32 | bufferSize | |||
) | const [pure virtual] |
Writes the array of cloth fabrics to a user buffer.
Returns the number of pointers written.
The ordering of the cloth fabrics in the array is not specified.
[out] | userBuffer | The buffer to receive cloth fabric pointers. |
[in] | bufferSize | The number of cloth fabric pointers which can be stored in the buffer. |
virtual PxU32 PxPhysics::getConvexMeshes | ( | PxConvexMesh ** | userBuffer, | |
PxU32 | bufferSize, | |||
PxU32 | startIndex = 0 | |||
) | const [pure virtual] |
Writes the array of convex mesh pointers to a user buffer.
Returns the number of pointers written.
The ordering of the convex meshes in the array is not specified.
[out] | userBuffer | The buffer to receive convex mesh pointers. |
[in] | bufferSize | The number of convex mesh pointers which can be stored in the buffer. |
[in] | startIndex | Index of first convex mesh pointer to be retrieved |
virtual PxFoundation& PxPhysics::getFoundation | ( | ) | [pure virtual] |
Retrieves the Foundation instance.
virtual PxU32 PxPhysics::getHeightFields | ( | PxHeightField ** | userBuffer, | |
PxU32 | bufferSize, | |||
PxU32 | startIndex = 0 | |||
) | const [pure virtual] |
Writes the array of heightfield pointers to a user buffer.
Returns the number of pointers written.
The ordering of the heightfields in the array is not specified.
[out] | userBuffer | The buffer to receive heightfield pointers. |
[in] | bufferSize | The number of heightfield pointers which can be stored in the buffer. |
[in] | startIndex | Index of first heightfield pointer to be retrieved |
virtual PxU32 PxPhysics::getMaterials | ( | PxMaterial ** | userBuffer, | |
PxU32 | bufferSize, | |||
PxU32 | startIndex = 0 | |||
) | const [pure virtual] |
Writes the array of material pointers to a user buffer.
Returns the number of pointers written.
The ordering of the materials in the array is not specified.
[out] | userBuffer | The buffer to receive material pointers. |
[in] | bufferSize | The number of material pointers which can be stored in the buffer. |
[in] | startIndex | Index of first material pointer to be retrieved |
virtual PxU32 PxPhysics::getNbClothFabrics | ( | ) | const [pure virtual] |
Return the number of cloth fabrics that currently exist.
virtual PxU32 PxPhysics::getNbConvexMeshes | ( | ) | const [pure virtual] |
Return the number of convex meshes that currently exist.
virtual PxU32 PxPhysics::getNbHeightFields | ( | ) | const [pure virtual] |
Return the number of heightfields that currently exist.
virtual PxU32 PxPhysics::getNbMaterials | ( | ) | const [pure virtual] |
Return the number of materials that currently exist.
virtual PxU32 PxPhysics::getNbScenes | ( | ) | const [pure virtual] |
Gets number of created scenes.
virtual PxU32 PxPhysics::getNbShapes | ( | ) | const [pure virtual] |
virtual PxU32 PxPhysics::getNbTriangleMeshes | ( | ) | const [pure virtual] |
Return the number of triangle meshes that currently exist.
virtual PxPhysicsInsertionCallback& PxPhysics::getPhysicsInsertionCallback | ( | ) | [pure virtual] |
Gets PxPhysics object insertion interface.
The insertion interface is needed ie. for PxCooking::createTriangleMesh, this allows runtime mesh creation. This is not advised to do, please use offline cooking if possible.
virtual PxU32 PxPhysics::getScenes | ( | PxScene ** | userBuffer, | |
PxU32 | bufferSize, | |||
PxU32 | startIndex = 0 | |||
) | const [pure virtual] |
Writes the array of scene pointers to a user buffer.
Returns the number of pointers written.
The ordering of the scene pointers in the array is not specified.
[out] | userBuffer | The buffer to receive scene pointers. |
[in] | bufferSize | The number of scene pointers which can be stored in the buffer. |
[in] | startIndex | Index of first scene pointer to be retrieved |
virtual PxU32 PxPhysics::getShapes | ( | PxShape ** | userBuffer, | |
PxU32 | bufferSize, | |||
PxU32 | startIndex = 0 | |||
) | const [pure virtual] |
Writes the array of shape pointers to a user buffer.
Returns the number of pointers written.
The ordering of the shapes in the array is not specified.
[out] | userBuffer | The buffer to receive shape pointers. |
[in] | bufferSize | The number of shape pointers which can be stored in the buffer. |
[in] | startIndex | Index of first shape pointer to be retrieved |
virtual const PxTolerancesScale& PxPhysics::getTolerancesScale | ( | ) | const [pure virtual] |
Returns the simulation tolerance parameters.
virtual PxU32 PxPhysics::getTriangleMeshes | ( | PxTriangleMesh ** | userBuffer, | |
PxU32 | bufferSize, | |||
PxU32 | startIndex = 0 | |||
) | const [pure virtual] |
Writes the array of triangle mesh pointers to a user buffer.
Returns the number of pointers written.
The ordering of the triangle meshes in the array is not specified.
[out] | userBuffer | The buffer to receive triangle mesh pointers. |
[in] | bufferSize | The number of triangle mesh pointers which can be stored in the buffer. |
[in] | startIndex | Index of first mesh pointer to be retrieved |
virtual void PxPhysics::registerDeletionListener | ( | PxDeletionListener & | observer, | |
const PxDeletionEventFlags & | deletionEvents, | |||
bool | restrictedObjectSet = false | |||
) | [pure virtual] |
Register a deletion listener. Listeners will be called whenever an object is deleted.
It is illegal to register or unregister a deletion listener while deletions are being processed.
The deletion events are only supported on core PhysX objects. In general, objects in extension modules do not provide this functionality, however, in the case of PxJoint objects, the underlying PxConstraint will send the events.
[in] | observer | Observer object to send notifications to. |
[in] | deletionEvents | The deletion event types to get notified of. |
[in] | restrictedObjectSet | If false, the deletion listener will get events from all objects, else the objects to receive events from have to be specified explicitly through registerDeletionListenerObjects. |
virtual void PxPhysics::registerDeletionListenerObjects | ( | PxDeletionListener & | observer, | |
const PxBase *const * | observables, | |||
PxU32 | observableCount | |||
) | [pure virtual] |
Register specific objects for deletion events.
This method allows for a deletion listener to limit deletion events to specific objects only.
The deletion listener has to be registered through registerDeletionListener() and configured to support restricted objects sets prior to this method being used.
[in] | observer | Observer object to send notifications to. |
[in] | observables | List of objects for which to receive deletion events. Only PhysX core objects are supported. In the case of PxJoint objects, the underlying PxConstraint can be used to get the events. |
[in] | observableCount | Size of the observables list. |
virtual void PxPhysics::release | ( | ) | [pure virtual] |
Destroys the instance it is called on.
Use this release method to destroy an instance of this class. Be sure to not keep a reference to this object after calling release. Avoid release calls while a scene is simulating (in between simulate() and fetchResults() calls).
Note that this must be called once for each prior call to PxCreatePhysics, as there is a reference counter. Also note that you mustn't destroy the allocator or the error callback (if available) until after the reference count reaches 0 and the SDK is actually removed.
Releasing an SDK will also release any scenes, triangle meshes, convex meshes, heightfields and shapes created through it, provided the user hasn't already done so.
virtual void PxPhysics::unregisterDeletionListener | ( | PxDeletionListener & | observer | ) | [pure virtual] |
Unregister a deletion listener.
It is illegal to register or unregister a deletion listener while deletions are being processed.
[in] | observer | Observer object to send notifications to |
virtual void PxPhysics::unregisterDeletionListenerObjects | ( | PxDeletionListener & | observer, | |
const PxBase *const * | observables, | |||
PxU32 | observableCount | |||
) | [pure virtual] |
Unregister specific objects for deletion events.
This method allows to clear previously registered objects for a deletion listener (see registerDeletionListenerObjects()).
The deletion listener has to be registered through registerDeletionListener() and configured to support restricted objects sets prior to this method being used.
[in] | observer | Observer object to stop sending notifications to. |
[in] | observables | List of objects for which to not receive deletion events anymore. |
[in] | observableCount | Size of the observables list. |