RavEngine
Loading...
Searching...
No Matches
physx::NpAggregate Class Reference
Inheritance diagram for physx::NpAggregate:
[legend]
Collaboration diagram for physx::NpAggregate:
[legend]

Public Member Functions

 NpAggregate (PxBaseFlags baseFlags)
 
void preExportDataReset ()
 
virtual void exportExtraData (PxSerializationContext &context)
 
void importExtraData (PxDeserializationContext &context)
 
void resolveReferences (PxDeserializationContext &context)
 
virtual void requiresObjects (PxProcessPxBaseCallback &c)
 
 NpAggregate (PxU32 maxActors, PxU32 maxShapes, PxAggregateFilterHint filterHint)
 
virtual void release () PX_OVERRIDE
 Deletes the aggregate object.
 
virtual bool addActor (PxActor &, const PxBVH *) PX_OVERRIDE
 Adds an actor to the aggregate object.
 
virtual bool removeActor (PxActor &) PX_OVERRIDE
 Removes an actor from the aggregate object.
 
virtual bool addArticulation (PxArticulationReducedCoordinate &) PX_OVERRIDE
 Adds an articulation to the aggregate object.
 
virtual bool removeArticulation (PxArticulationReducedCoordinate &) PX_OVERRIDE
 Removes an articulation from the aggregate object.
 
virtual PxU32 getNbActors () const PX_OVERRIDE
 Returns the number of actors contained in the aggregate.
 
virtual PxU32 getMaxNbActors () const PX_OVERRIDE
 Retrieves max amount of actors that can be contained in the aggregate.
 
virtual PxU32 getMaxNbShapes () const PX_OVERRIDE
 Retrieves max amount of shapes that can be contained in the aggregate.
 
virtual PxU32 getActors (PxActor **userBuffer, PxU32 bufferSize, PxU32 startIndex) const PX_OVERRIDE
 Retrieve all actors contained in the aggregate.
 
virtual PxScene * getScene () PX_OVERRIDE
 Retrieves the scene which this aggregate belongs to.
 
virtual bool getSelfCollision () const PX_OVERRIDE
 Retrieves aggregate's self-collision flag.
 
PX_FORCE_INLINE PxU32 getMaxNbShapesFast () const
 
PX_FORCE_INLINE PxU32 getCurrentSizeFast () const
 
PX_FORCE_INLINE PxActor * getActorFast (PxU32 i) const
 
PX_FORCE_INLINE PxU32 getAggregateID () const
 
PX_FORCE_INLINE void setAggregateID (PxU32 cid)
 
PX_FORCE_INLINE bool getSelfCollideFast () const
 
PX_FORCE_INLINE PxAggregateFilterHint getFilterHint () const
 
void addActorInternal (PxActor &actor, NpScene &s, const PxBVH *bvh)
 
void removeAndReinsert (PxActor &actor, bool reinsert)
 
bool removeActorAndReinsert (PxActor &actor, bool reinsert)
 
bool removeArticulationAndReinsert (PxArticulationReducedCoordinate &art, bool reinsert)
 
void scAddActor (NpActor &)
 
void scRemoveActor (NpActor &actor, bool reinsert)
 
void incShapeCount ()
 
void decShapeCount ()
 
- Public Member Functions inherited from physx::PxAggregate
virtual const char * getConcreteTypeName () const
 Returns string name of dynamic type.
 
- Public Member Functions inherited from physx::PxBase
template<class T >
T * is ()
 
template<class T >
const T * is () const
 
PX_FORCE_INLINE PxType getConcreteType () const
 Returns concrete type of object.
 
PX_FORCE_INLINE void setBaseFlag (PxBaseFlag::Enum flag, bool value)
 Set PxBaseFlag

 
PX_FORCE_INLINE void setBaseFlags (PxBaseFlags inFlags)
 Set PxBaseFlags

 
PX_FORCE_INLINE PxBaseFlags getBaseFlags () const
 Returns PxBaseFlags.
 
virtual bool isReleasable () const
 Whether the object is subordinate.
 
- Public Member Functions inherited from physx::NpBase
 NpBase (const PxEMPTY)
 
 NpBase (NpType::Enum type)
 
PX_INLINE bool isAPIWriteForbidden () const
 
PX_INLINE bool isAPIWriteForbiddenExceptSplitSim () const
 
PX_FORCE_INLINE NpType::Enum getNpType () const
 
PX_FORCE_INLINE void setNpScene (NpScene *scene)
 
PX_FORCE_INLINE NpScene * getNpScene () const
 
PX_FORCE_INLINE PxU32 getBaseIndex () const
 
PX_FORCE_INLINE void setBaseIndex (PxU32 index)
 
- Public Member Functions inherited from physx::PxUserAllocated
PX_INLINE void * operator new (size_t, void *address)
 
PX_INLINE void operator delete (void *, void *)
 
template<typename Alloc >
PX_INLINE void * operator new (size_t size, Alloc alloc, const char *fileName, int line)
 
template<typename Alloc >
PX_INLINE void * operator new (size_t size, size_t, Alloc alloc, const char *fileName, int line)
 
template<typename Alloc >
PX_INLINE void * operator new[] (size_t size, Alloc alloc, const char *fileName, int line)
 
template<typename Alloc >
PX_INLINE void * operator new[] (size_t size, size_t, Alloc alloc, const char *fileName, int line)
 
template<typename Alloc >
PX_INLINE void operator delete (void *ptr, Alloc alloc, const char *fileName, int line)
 
template<typename Alloc >
PX_INLINE void operator delete[] (void *ptr, Alloc alloc, const char *fileName, int line)
 
PX_INLINE void operator delete (void *ptr)
 
PX_INLINE void operator delete[] (void *ptr)
 

Static Public Member Functions

static NpAggregate * createObject (PxU8 *&address, PxDeserializationContext &context)
 
static void getBinaryMetaData (PxOutputStream &stream)
 
- Static Public Member Functions inherited from physx::NpBase
static void getBinaryMetaData (PxOutputStream &stream)
 

Additional Inherited Members

- Public Attributes inherited from physx::PxAggregate
void * userData
 user can assign this to whatever, usually to create a 1:1 relationship with a user object.
 
- Protected Member Functions inherited from physx::PxAggregate
PX_INLINE PxAggregate (PxType concreteType, PxBaseFlags baseFlags)
 
PX_INLINE PxAggregate (PxBaseFlags baseFlags)
 
virtual bool isKindOf (const char *name) const
 Returns whether a given type name matches with the type of this instance.
 
- Protected Member Functions inherited from physx::PxBase
PX_INLINE PxBase (PxType concreteType, PxBaseFlags baseFlags)
 Constructor setting concrete type and base flags.
 
PX_INLINE PxBase (PxBaseFlags baseFlags)
 Deserialization constructor setting base flags.
 
virtual ~PxBase ()
 Destructor.
 
template<class T >
bool typeMatch () const
 
- Protected Attributes inherited from physx::PxBase
PxType mConcreteType
 
PxBaseFlags mBaseFlags
 
PxU32 mBuiltInRefCount
 
- Protected Attributes inherited from physx::NpBase
PxU32 mFreeSlot
 

Member Function Documentation

◆ addActor()

bool NpAggregate::addActor ( PxActor &  actor,
const PxBVH *  bvh 
)
virtual

Adds an actor to the aggregate object.

A warning is output if the total number of actors is reached, or if the incoming actor already belongs to an aggregate.

If the aggregate belongs to a scene, adding an actor to the aggregate also adds the actor to that scene.

If the actor already belongs to a scene, a warning is output and the call is ignored. You need to remove the actor from the scene first, before adding it to the aggregate.

Note
When a BVH is provided the actor shapes are grouped together. The scene query pruning structure inside PhysX SDK will store/update one bound per actor. The scene queries against such an actor will query actor bounds and then make a local space query against the provided BVH, which is in actor's local space.
Parameters
[in]actorThe actor that should be added to the aggregate
[in]bvhBVH for actor shapes. return true if success

Implements physx::PxAggregate.

◆ addArticulation()

bool NpAggregate::addArticulation ( PxArticulationReducedCoordinate &  articulation)
virtual

Adds an articulation to the aggregate object.

A warning is output if the total number of actors is reached (every articulation link counts as an actor), or if the incoming articulation already belongs to an aggregate.

If the aggregate belongs to a scene, adding an articulation to the aggregate also adds the articulation to that scene.

If the articulation already belongs to a scene, a warning is output and the call is ignored. You need to remove the articulation from the scene first, before adding it to the aggregate.

Parameters
[in]articulationThe articulation that should be added to the aggregate return true if success

Implements physx::PxAggregate.

◆ getActors()

PxU32 NpAggregate::getActors ( PxActor **  userBuffer,
PxU32  bufferSize,
PxU32  startIndex 
) const
virtual

Retrieve all actors contained in the aggregate.

You can retrieve the number of actor pointers by calling getNbActors()

Parameters
[out]userBufferThe buffer to store the actor pointers.
[in]bufferSizeSize of provided user buffer.
[in]startIndexIndex of first actor pointer to be retrieved
Returns
Number of actor pointers written to the buffer.
See also
PxShape getNbShapes()

Implements physx::PxAggregate.

◆ getMaxNbActors()

PxU32 NpAggregate::getMaxNbActors ( ) const
virtual

Retrieves max amount of actors that can be contained in the aggregate.

Note
PxAggregate now supports an arbitrary number of actors. This method return PX_MAX_U32 and will be removed in a future release.
Returns
Max actor size.
See also
PxPhysics::createAggregate()
Deprecated:

Implements physx::PxAggregate.

◆ getMaxNbShapes()

PxU32 NpAggregate::getMaxNbShapes ( ) const
virtual

Retrieves max amount of shapes that can be contained in the aggregate.

Returns
Max shape size.
See also
PxPhysics::createAggregate()

Implements physx::PxAggregate.

◆ getNbActors()

PxU32 NpAggregate::getNbActors ( ) const
virtual

Returns the number of actors contained in the aggregate.

You can use getActors() to retrieve the actor pointers.

Returns
Number of actors contained in the aggregate.
See also
PxActor getActors()

Implements physx::PxAggregate.

◆ getScene()

PxScene * NpAggregate::getScene ( )
virtual

Retrieves the scene which this aggregate belongs to.

Returns
Owner Scene. NULL if not part of a scene.
See also
PxScene

Implements physx::PxAggregate.

◆ getSelfCollision()

bool NpAggregate::getSelfCollision ( ) const
virtual

Retrieves aggregate's self-collision flag.

Returns
self-collision flag

Implements physx::PxAggregate.

◆ release()

void NpAggregate::release ( )
virtual

Deletes the aggregate object.

Deleting the PxAggregate object does not delete the aggregated actors. If the PxAggregate object belongs to a scene, the aggregated actors are automatically re-inserted in that scene. If you intend to delete both the PxAggregate and its actors, it is best to release the actors first, then release the PxAggregate when it is empty.

Implements physx::PxAggregate.

◆ removeActor()

bool NpAggregate::removeActor ( PxActor &  actor)
virtual

Removes an actor from the aggregate object.

A warning is output if the incoming actor does not belong to the aggregate. Otherwise the actor is removed from the aggregate. If the aggregate belongs to a scene, the actor is reinserted in that scene. If you intend to delete the actor, it is best to call PxActor::release() directly. That way the actor will be automatically removed from its aggregate (if any) and not reinserted in a scene.

Parameters
[in]actorThe actor that should be removed from the aggregate return true if success

Implements physx::PxAggregate.

◆ removeArticulation()

bool NpAggregate::removeArticulation ( PxArticulationReducedCoordinate &  articulation)
virtual

Removes an articulation from the aggregate object.

A warning is output if the incoming articulation does not belong to the aggregate. Otherwise the articulation is removed from the aggregate. If the aggregate belongs to a scene, the articulation is reinserted in that scene. If you intend to delete the articulation, it is best to call PxArticulationReducedCoordinate::release() directly. That way the articulation will be automatically removed from its aggregate (if any) and not reinserted in a scene.

Parameters
[in]articulationThe articulation that should be removed from the aggregate return true if success

Implements physx::PxAggregate.


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