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

Classes

struct  NewTreeFixup
 

Public Member Functions

PX_PHYSX_COMMON_API AABBPruner (bool incrementalRebuild, PxU64 contextID, CompanionPrunerType cpType, BVHBuildStrategy buildStrategy=BVH_SPLATTER_POINTS, PxU32 nbObjectsPerNode=4)
 
DECLARE_BASE_PRUNER_API virtual DECLARE_PRUNER_API_COMMON bool isDynamic () const
 
virtual void setRebuildRateHint (PxU32 nbStepsForRebuild)
 
virtual bool buildStep (bool synchronousCall=true)
 
virtual bool prepareBuild ()
 
PX_FORCE_INLINE PxU32 getNbAddedObjects () const
 
PX_FORCE_INLINE const AABBTree * getAABBTree () const
 
PX_FORCE_INLINE AABBTree * getAABBTree ()
 
PX_FORCE_INLINE void setAABBTree (AABBTree *tree)
 
PX_FORCE_INLINE const AABBTree * hasAABBTree () const
 
PX_FORCE_INLINE BuildStatus getBuildStatus () const
 
bool fullRebuildAABBTree ()
 
void release ()
 
void refitUpdatedAndRemoved ()
 
void updateBucketPruner ()
 
- Public Member Functions inherited from physx::Gu::Pruner
virtual bool addObjects (PrunerHandle *results, const PxBounds3 *bounds, const PrunerPayload *data, const PxTransform *transforms, PxU32 count, bool hasPruningStructure)=0
 Adds objects to the pruner.
 
virtual void removeObjects (const PrunerHandle *handles, PxU32 count, PrunerPayloadRemovalCallback *removalCallback)=0
 Removes objects from the pruner.
 
virtual void updateObjects (const PrunerHandle *handles, PxU32 count, float inflation=0.0f, const PxU32 *boundsIndices=NULL, const PxBounds3 *newBounds=NULL, const PxTransform32 *newTransforms=NULL)=0
 Updates objects with new bounds & transforms.
 
virtual void purge ()=0
 Gets rid of internal accel struct.

 
virtual void commit ()=0
 Makes the queries consistent with previous changes.
 
virtual void merge (const void *mergeParams)=0
 Merges pruning structure to current pruner, parameters may differ for each pruner implementation.
 
virtual bool raycast (const PxVec3 &origin, const PxVec3 &unitDir, PxReal &inOutDistance, PrunerRaycastCallback &) const =0
 
virtual bool overlap (const Gu::ShapeData &queryVolume, PrunerOverlapCallback &) const =0
 
virtual bool sweep (const Gu::ShapeData &queryVolume, const PxVec3 &unitDir, PxReal &inOutDistance, PrunerRaycastCallback &) const =0
 
virtual const PrunerPayload & getPayloadData (PrunerHandle handle, PrunerPayloadData *data=NULL) const =0
 Retrieves the object's payload and data associated with the handle.
 
virtual void preallocate (PxU32 nbEntries)=0
 Preallocate space.
 
virtual bool setTransform (PrunerHandle handle, const PxTransform &transform)=0
 Sets object's transform.
 
virtual void getGlobalBounds (PxBounds3 &) const =0
 
- Public Member Functions inherited from physx::Gu::BasePruner
virtual void shiftOrigin (const PxVec3 &shift)=0
 
virtual void visualize (PxRenderOutput &, PxU32, PxU32) const
 
- 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

NodeAllocator mNodeAllocator
 
AABBTree * mAABBTree
 
AABBTreeBuildParams mBuilder
 
BuildStats mBuildStats
 
AABBTree * mNewTree
 
AABBTreeBounds mCachedBoxes
 
PxU32 mNbCachedBoxes
 
PxU32 mNbCalls
 
PxU32 mTimeStamp
 
ExtendedBucketPruner mBucketPruner
 
BuildStatus mProgress
 
PxU32 mRebuildRateHint
 
PxU32 mTotalWorkUnits
 
PxI32 mAdaptiveRebuildTerm
 
const PxU32 mNbObjectsPerNode
 
const BVHBuildStrategy mBuildStrategy
 
PruningPool mPool
 
AABBTreeUpdateMap mTreeMap
 
AABBTreeUpdateMap mNewTreeMap
 
const bool mIncrementalRebuild
 
bool mUncommittedChanges
 
bool mNeedsNewTree
 
PxArray< NewTreeFixup > mNewTreeFixups
 
PxArray< PoolIndex > mToRefit
 

Member Function Documentation

◆ buildStep()

bool AABBPruner::buildStep ( bool  synchronousCall = true)
virtual

Steps the accel structure build. synchronousCall specifies if initialization can happen. It should not initialize build when called from a different thread returns true if finished

Implements physx::Gu::DynamicPruner.

◆ fullRebuildAABBTree()

bool AABBPruner::fullRebuildAABBTree ( )

Builds an AABB-tree for objects in the pruning pool.

Returns
true if success

◆ isDynamic()

DECLARE_BASE_PRUNER_API virtual DECLARE_PRUNER_API_COMMON bool physx::Gu::AABBPruner::isDynamic ( ) const
inlinevirtual

Reimplemented from physx::Gu::Pruner.

◆ prepareBuild()

bool AABBPruner::prepareBuild ( )
virtual

Prepares new tree build returns true if new tree is needed

Implements physx::Gu::DynamicPruner.

◆ setRebuildRateHint()

void AABBPruner::setRebuildRateHint ( PxU32  nbStepsForRebuild)
virtual

sets the rebuild hint rate used for step building the accel structure.

Implements physx::Gu::DynamicPruner.


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