RavEngine
Loading...
Searching...
No Matches
physx::Bp::AABBManager Class Reference

A structure responsible for: storing an aabb representation for each active shape in the related scene managing the creation/removal of aabb representations when their related shapes are created/removed updating all aabbs that require an update due to modification of shape geometry or transform updating the aabb of all aggregates from the union of the aabbs of all shapes that make up each aggregate computing and reporting the incremental changes to the set of overlapping aabb pairs. More...

#include <BpAABBManager.h>

Inheritance diagram for physx::Bp::AABBManager:
[legend]
Collaboration diagram for physx::Bp::AABBManager:
[legend]

Public Member Functions

 AABBManager (BroadPhase &bp, BoundsArray &boundsArray, PxFloatArrayPinned &contactDistance, PxU32 maxNbAggregates, PxU32 maxNbShapes, PxVirtualAllocator &allocator, PxU64 contextID, PxPairFilteringMode::Enum kineKineFilteringMode, PxPairFilteringMode::Enum staticKineFilteringMode)
 
virtual void destroy () PX_OVERRIDE
 
virtual AggregateHandle createAggregate (BoundsIndex index, Bp::FilterGroup::Enum group, void *userData, PxU32 maxNumShapes, PxAggregateFilterHint filterHint) PX_OVERRIDE
 
virtual bool destroyAggregate (BoundsIndex &index, Bp::FilterGroup::Enum &group, AggregateHandle aggregateHandle) PX_OVERRIDE
 
virtual bool addBounds (BoundsIndex index, PxReal contactDistance, Bp::FilterGroup::Enum group, void *userdata, AggregateHandle aggregateHandle, ElementType::Enum volumeType) PX_OVERRIDE
 
virtual bool removeBounds (BoundsIndex index) PX_OVERRIDE
 
virtual void updateBPFirstPass (PxU32 numCpuTasks, Cm::FlushPool &flushPool, bool hasContactDistanceUpdated, PxBaseTask *continuation) PX_OVERRIDE
 
virtual void updateBPSecondPass (PxU32 numCpuTasks, PxcScratchAllocator *scratchAllocator, PxBaseTask *continuation) PX_OVERRIDE
 
virtual void postBroadPhase (PxBaseTask *, Cm::FlushPool &flushPool) PX_OVERRIDE
 
virtual void reallocateChangedAABBMgActorHandleMap (const PxU32 size) PX_OVERRIDE
 
virtual void visualize (PxRenderOutput &out) PX_OVERRIDE
 
virtual void releaseDeferredAggregateIds () PX_OVERRIDE
 
void preBpUpdate_CPU (PxU32 numCpuTasks)
 
BpCacheData * getBpCacheData ()
 
void putBpCacheData (BpCacheData *)
 
void resetBpCacheData ()
 
void processBPCreatedPair (const BroadPhasePair &pair)
 
void processBPDeletedPair (const BroadPhasePair &pair)
 
- Public Member Functions inherited from physx::Bp::AABBManagerBase
 AABBManagerBase (BroadPhase &bp, BoundsArray &boundsArray, PxFloatArrayPinned &contactDistance, PxU32 maxNbAggregates, PxU32 maxNbShapes, PxVirtualAllocator &allocator, PxU64 contextID, PxPairFilteringMode::Enum kineKineFilteringMode, PxPairFilteringMode::Enum staticKineFilteringMode)
 
void reserveSpaceForBounds (BoundsIndex index)
 
PX_FORCE_INLINE PxIntBool isMarkedForRemove (BoundsIndex index) const
 
PX_FORCE_INLINE BroadPhase * getBroadPhase () const
 
PX_FORCE_INLINE BoundsArray & getBoundsArray ()
 
PX_FORCE_INLINE PxU32 getNbActiveAggregates () const
 
PX_FORCE_INLINE const float * getContactDistances () const
 
PX_FORCE_INLINE PxBitMapPinned & getChangedAABBMgActorHandleMap ()
 
PX_FORCE_INLINE void * getUserData (const BoundsIndex index) const
 
void setContactDistance (BoundsIndex handle, PxReal offset)
 
void setBPGroup (BoundsIndex index, Bp::FilterGroup::Enum group)
 
AABBOverlap * getCreatedOverlaps (ElementType::Enum type, PxU32 &count)
 
AABBOverlap * getDestroyedOverlaps (ElementType::Enum type, PxU32 &count)
 
void freeBuffers ()
 
void ** getOutOfBoundsObjects (PxU32 &nbOutOfBoundsObjects)
 
void clearOutOfBoundsObjects ()
 
void ** getOutOfBoundsAggregates (PxU32 &nbOutOfBoundsAggregates)
 
void clearOutOfBoundsAggregates ()
 
void shiftOrigin (const PxVec3 &shift)
 
virtual void setGPUStateChanged ()
 
virtual void setPersistentStateChanged ()
 
- 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)
 

Public Attributes

PxMutex mMapLock
 

Friends

class PersistentActorAggregatePair
 
class PersistentAggregateAggregatePair
 
class ProcessSelfCollisionPairsParallel
 
class PostBroadPhaseStage2Task
 

Additional Inherited Members

- Protected Member Functions inherited from physx::Bp::AABBManagerBase
void reserveShapeSpace (PxU32 nbShapes)
 
PX_FORCE_INLINE bool removeBPEntry (BoundsIndex index)
 
PX_FORCE_INLINE void addBPEntry (BoundsIndex index)
 
PX_FORCE_INLINE void initEntry (BoundsIndex index, PxReal contactDistance, Bp::FilterGroup::Enum group, void *userData)
 
PX_FORCE_INLINE void resetEntry (BoundsIndex index)
 
PX_FORCE_INLINE void releaseAggregateGroup (const Bp::FilterGroup::Enum group)
 
PX_FORCE_INLINE Bp::FilterGroup::Enum getAggregateGroup ()
 
- Protected Attributes inherited from physx::Bp::AABBManagerBase
PxBitMapPinned mAddedHandleMap
 
PxBitMapPinned mRemovedHandleMap
 
PxBitMapPinned mChangedHandleMap
 
GroupsArrayPinned mGroups
 
PxFloatArrayPinned & mContactDistance
 
VolumeDataArrayPinned mVolumeData
 
BpFilter mFilters
 
ShapeHandleArrayPinned mAddedHandles
 
ShapeHandleArrayPinned mUpdatedHandles
 
ShapeHandleArrayPinned mRemovedHandles
 
BroadPhase & mBroadPhase
 
BoundsArray & mBoundsArray
 
PxArray< void * > mOutOfBoundsObjects
 
PxArray< void * > mOutOfBoundsAggregates
 
PxArray< AABBOverlap > mCreatedOverlaps [ElementType::eCOUNT]
 
PxArray< AABBOverlap > mDestroyedOverlaps [ElementType::eCOUNT]
 
PxU32 mUsedSize
 
PxU32 mNbAggregates
 
PxU32 mAggregateGroupTide
 
PxArray< Bp::FilterGroup::Enum > mFreeAggregateGroups
 
PxU64 mContextID
 
bool mOriginShifted
 

Detailed Description

A structure responsible for: storing an aabb representation for each active shape in the related scene managing the creation/removal of aabb representations when their related shapes are created/removed updating all aabbs that require an update due to modification of shape geometry or transform updating the aabb of all aggregates from the union of the aabbs of all shapes that make up each aggregate computing and reporting the incremental changes to the set of overlapping aabb pairs.

Member Function Documentation

◆ addBounds()

bool AABBManager::addBounds ( BoundsIndex  index,
PxReal  contactDistance,
Bp::FilterGroup::Enum  group,
void *  userdata,
AggregateHandle  aggregateHandle,
ElementType::Enum  volumeType 
)
virtual

◆ createAggregate()

AggregateHandle AABBManager::createAggregate ( BoundsIndex  index,
Bp::FilterGroup::Enum  group,
void *  userData,
PxU32  maxNumShapes,
PxAggregateFilterHint  filterHint 
)
virtual

◆ destroy()

void AABBManager::destroy ( )
virtual

◆ destroyAggregate()

bool AABBManager::destroyAggregate ( BoundsIndex &  index,
Bp::FilterGroup::Enum &  group,
AggregateHandle  aggregateHandle 
)
virtual

◆ postBroadPhase()

void AABBManager::postBroadPhase ( PxBaseTask *  continuation,
Cm::FlushPool &  flushPool 
)
virtual

◆ reallocateChangedAABBMgActorHandleMap()

void AABBManager::reallocateChangedAABBMgActorHandleMap ( const PxU32  size)
virtual

◆ releaseDeferredAggregateIds()

virtual void physx::Bp::AABBManager::releaseDeferredAggregateIds ( )
inlinevirtual

◆ removeBounds()

bool AABBManager::removeBounds ( BoundsIndex  index)
virtual

◆ updateBPFirstPass()

void AABBManager::updateBPFirstPass ( PxU32  numCpuTasks,
Cm::FlushPool &  flushPool,
bool  hasContactDistanceUpdated,
PxBaseTask *  continuation 
)
virtual

◆ updateBPSecondPass()

void AABBManager::updateBPSecondPass ( PxU32  numCpuTasks,
PxcScratchAllocator *  scratchAllocator,
PxBaseTask *  continuation 
)
virtual

◆ visualize()

void AABBManager::visualize ( PxRenderOutput &  out)
virtual

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