RavEngine
Loading...
Searching...
No Matches
physx::PxRigidActorExt Class Reference

utility functions for use with PxRigidActor and subclasses More...

#include <PxRigidActorExt.h>

Static Public Member Functions

static PxShape * createExclusiveShape (PxRigidActor &actor, const PxGeometry &geometry, PxMaterial *const *materials, PxU16 materialCount, PxShapeFlags shapeFlags=PxShapeFlag::eVISUALIZATION|PxShapeFlag::eSCENE_QUERY_SHAPE|PxShapeFlag::eSIMULATION_SHAPE)
 Creates a new shape with default properties and a list of materials and adds it to the list of shapes of this actor.
 
static PX_FORCE_INLINE PxShape * createExclusiveShape (PxRigidActor &actor, const PxGeometry &geometry, const PxMaterial &material, PxShapeFlags shapeFlags=PxShapeFlag::eVISUALIZATION|PxShapeFlag::eSCENE_QUERY_SHAPE|PxShapeFlag::eSIMULATION_SHAPE)
 Creates a new shape with default properties and a single material adds it to the list of shapes of this actor.
 
static PxBounds3 * getRigidActorShapeLocalBoundsList (const PxRigidActor &actor, PxU32 &numBounds)
 Gets a list of bounds based on shapes in rigid actor. This list can be used to cook/create bounding volume hierarchy though PxCooking API.
 
static PxBVH * createBVHFromActor (PxPhysics &physics, const PxRigidActor &actor)
 Convenience function to create a PxBVH object from a PxRigidActor.
 

Detailed Description

utility functions for use with PxRigidActor and subclasses

See also
PxRigidActor PxRigidStatic PxRigidBody PxRigidDynamic PxArticulationLink

Member Function Documentation

◆ createBVHFromActor()

PxBVH * PxRigidActorExt::createBVHFromActor ( PxPhysics &  physics,
const PxRigidActor &  actor 
)
static

Convenience function to create a PxBVH object from a PxRigidActor.

The computed PxBVH can then be used in PxScene::addActor() or PxAggregate::addActor(). After adding the actor & BVH to the scene/aggregate, release the PxBVH object by calling PxBVH::release().

Parameters
[in]physicsThe physics object. The function will retrieve the insertion callback from it.
[in]actorThe actor to compute a PxBVH for.
Returns
The PxBVH for this actor.
See also
PxBVH PxScene::addActor PxAggregate::addActor

◆ createExclusiveShape() [1/2]

static PX_FORCE_INLINE PxShape * physx::PxRigidActorExt::createExclusiveShape ( PxRigidActor &  actor,
const PxGeometry &  geometry,
const PxMaterial &  material,
PxShapeFlags  shapeFlags = PxShapeFlag::eVISUALIZATION | PxShapeFlag::eSCENE_QUERY_SHAPE | PxShapeFlag::eSIMULATION_SHAPE 
)
inlinestatic

Creates a new shape with default properties and a single material adds it to the list of shapes of this actor.

This is equivalent to the following

PxShape* shape(...) = PxGetPhysics().createShape(...); // reference count is 1 actor->attachShape(shape); // increments reference count shape->release(); // releases user reference, leaving reference count at 1

As a consequence, detachShape() will result in the release of the last reference, and the shape will be deleted.

Note
The default shape flags to be set are: eVISUALIZATION, eSIMULATION_SHAPE, eSCENE_QUERY_SHAPE (see #PxShapeFlag). Triangle mesh, heightfield or plane geometry shapes configured as eSIMULATION_SHAPE are not supported for non-kinematic PxRigidDynamic instances.
Creating compounds with a very large number of shapes may adversely affect performance and stability.

Sleeping: Does NOT wake the actor up automatically.

Parameters
[in]actorthe actor to which to attach the shape
[in]geometrythe geometry of the shape
[in]materialthe material for the shape
[in]shapeFlagsoptional PxShapeFlags
Returns
The newly created shape.
See also
PxShape PxShape::release(), PxPhysics::createShape(), PxRigidActor::attachShape()

◆ createExclusiveShape() [2/2]

static PxShape * physx::PxRigidActorExt::createExclusiveShape ( PxRigidActor &  actor,
const PxGeometry &  geometry,
PxMaterial *const *  materials,
PxU16  materialCount,
PxShapeFlags  shapeFlags = PxShapeFlag::eVISUALIZATION | PxShapeFlag::eSCENE_QUERY_SHAPE | PxShapeFlag::eSIMULATION_SHAPE 
)
inlinestatic

Creates a new shape with default properties and a list of materials and adds it to the list of shapes of this actor.

This is equivalent to the following

PxShape* shape(...) = PxGetPhysics().createShape(...); // reference count is 1 actor->attachShape(shape); // increments reference count shape->release(); // releases user reference, leaving reference count at 1

As a consequence, detachShape() will result in the release of the last reference, and the shape will be deleted.

Note
The default shape flags to be set are: eVISUALIZATION, eSIMULATION_SHAPE, eSCENE_QUERY_SHAPE (see #PxShapeFlag). Triangle mesh, heightfield or plane geometry shapes configured as eSIMULATION_SHAPE are not supported for non-kinematic PxRigidDynamic instances.
Creating compounds with a very large number of shapes may adversely affect performance and stability.

Sleeping: Does NOT wake the actor up automatically.

Parameters
[in]actorthe actor to which to attach the shape
[in]geometrythe geometry of the shape
[in]materialsa pointer to an array of material pointers
[in]materialCountthe count of materials
[in]shapeFlagsoptional PxShapeFlags
Returns
The newly created shape.
See also
PxShape PxShape::release(), PxPhysics::createShape(), PxRigidActor::attachShape()

◆ getRigidActorShapeLocalBoundsList()

PxBounds3 * PxRigidActorExt::getRigidActorShapeLocalBoundsList ( const PxRigidActor &  actor,
PxU32 &  numBounds 
)
static

Gets a list of bounds based on shapes in rigid actor. This list can be used to cook/create bounding volume hierarchy though PxCooking API.

Parameters
[in]actorThe actor from which the bounds list is retrieved.
[out]numBoundsNumber of bounds in returned list.
See also
PxShape PxBVH PxCooking::createBVH PxCooking::cookBVH

The documentation for this class was generated from the following files: