RavEngine
Loading...
Searching...
No Matches
physx::Bp::AABBManagerBase Class Referenceabstract

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 <BpAABBManagerBase.h>

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

Public Member Functions

 AABBManagerBase (BroadPhase &bp, BoundsArray &boundsArray, PxFloatArrayPinned &contactDistance, PxU32 maxNbAggregates, PxU32 maxNbShapes, PxVirtualAllocator &allocator, PxU64 contextID, PxPairFilteringMode::Enum kineKineFilteringMode, PxPairFilteringMode::Enum staticKineFilteringMode)
 
virtual void destroy ()=0
 
virtual AggregateHandle createAggregate (BoundsIndex index, Bp::FilterGroup::Enum group, void *userData, PxU32 maxNumShapes, PxAggregateFilterHint filterHint)=0
 
virtual bool destroyAggregate (BoundsIndex &index, Bp::FilterGroup::Enum &group, AggregateHandle aggregateHandle)=0
 
virtual bool addBounds (BoundsIndex index, PxReal contactDistance, Bp::FilterGroup::Enum group, void *userdata, AggregateHandle aggregateHandle, ElementType::Enum volumeType)=0
 
virtual bool removeBounds (BoundsIndex index)=0
 
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)
 
virtual void updateBPFirstPass (PxU32 numCpuTasks, Cm::FlushPool &flushPool, bool hasContactDistanceUpdated, PxBaseTask *continuation)=0
 
virtual void updateBPSecondPass (PxU32 numCpuTasks, PxcScratchAllocator *scratchAllocator, PxBaseTask *continuation)=0
 
virtual void postBroadPhase (PxBaseTask *, Cm::FlushPool &flushPool)=0
 
virtual void reallocateChangedAABBMgActorHandleMap (const PxU32 size)=0
 
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 visualize (PxRenderOutput &out)=0
 
virtual void releaseDeferredAggregateIds ()=0
 
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)
 

Protected Member Functions

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

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.


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