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

Public Member Functions

 BroadPhaseUpdateData (const ShapeHandle *created, PxU32 createdSize, const ShapeHandle *updated, PxU32 updatedSize, const ShapeHandle *removed, PxU32 removedSize, const PxBounds3 *boxBounds, const Bp::FilterGroup::Enum *boxGroups, const PxReal *boxContactDistances, PxU32 boxesCapacity, const BpFilter &filter, bool stateChanged, bool gpuStateChanged)
 A structure detailing the changes to the collection of aabbs, whose overlaps are computed in the broadphase. The structure consists of per-object arrays of object bounds and object groups, and three arrays that index into the per-object arrays, denoting the bounds which are to be created, updated and removed in the broad phase.
 
 BroadPhaseUpdateData (const BroadPhaseUpdateData &other)
 
BroadPhaseUpdateData & operator= (const BroadPhaseUpdateData &other)
 
PX_FORCE_INLINE const ShapeHandle * getCreatedHandles () const
 
PX_FORCE_INLINE PxU32 getNumCreatedHandles () const
 
PX_FORCE_INLINE const ShapeHandle * getUpdatedHandles () const
 
PX_FORCE_INLINE PxU32 getNumUpdatedHandles () const
 
PX_FORCE_INLINE const ShapeHandle * getRemovedHandles () const
 
PX_FORCE_INLINE PxU32 getNumRemovedHandles () const
 
PX_FORCE_INLINE const PxBounds3 * getAABBs () const
 
PX_FORCE_INLINE const Bp::FilterGroup::Enum * getGroups () const
 
PX_FORCE_INLINE const PxReal * getContactDistance () const
 
PX_FORCE_INLINE PxU32 getCapacity () const
 
PX_FORCE_INLINE const BpFilter & getFilter () const
 
PX_FORCE_INLINE bool getStateChanged () const
 
PX_FORCE_INLINE bool getGpuStateChanged () const
 

Constructor & Destructor Documentation

◆ BroadPhaseUpdateData()

physx::Bp::BroadPhaseUpdateData::BroadPhaseUpdateData ( const ShapeHandle *  created,
PxU32  createdSize,
const ShapeHandle *  updated,
PxU32  updatedSize,
const ShapeHandle *  removed,
PxU32  removedSize,
const PxBounds3 *  boxBounds,
const Bp::FilterGroup::Enum *  boxGroups,
const PxReal *  boxContactDistances,
PxU32  boxesCapacity,
const BpFilter &  filter,
bool  stateChanged,
bool  gpuStateChanged 
)
inline

A structure detailing the changes to the collection of aabbs, whose overlaps are computed in the broadphase. The structure consists of per-object arrays of object bounds and object groups, and three arrays that index into the per-object arrays, denoting the bounds which are to be created, updated and removed in the broad phase.

each entry in the object arrays represents the same shape or aggregate from frame to frame. each entry in an index array must be less than the capacity of the per-object arrays. no index value may appear in more than one index array, and may not occur more than once in that array.

An index value is said to be "in use" if it has appeared in a created list in a previous update, and has not since occurred in a removed list.

Parameters
[in]createdan array of indices describing the bounds that must be inserted into the broadphase. Each index in the array must not be in use.
[in]updatedan array of indices (referencing the boxBounds and boxGroups arrays) describing the bounds that have moved since the last broadphase update. Each index in the array must be in use, and each object whose index is in use and whose AABB has changed must appear in the update list.
[in]removedan array of indices describing the bounds that must be removed from the broad phase. Each index in the array must be in use.
[in]boxBoundsan array of bounds coordinates for the AABBs to be processed by the broadphase.

An entry is valid if its values are integer bitwise representations of floating point numbers that satisfy max>min in each dimension, along with a further rule that minima(maxima) must have even(odd) values.

Each entry whose index is either in use or appears in the created array must be valid. An entry whose index is either not in use or appears in the removed array need not be valid.

Parameters
[in]boxGroupsan array of group ids, one for each bound, used for pair filtering. Bounds with the same group id will not be reported as overlap pairs by the broad phase. Zero is reserved for static bounds.

Entries in this array are immutable: the only way to change the group of an object is to remove it from the broad phase and reinsert it at a different index (recall that each index must appear at most once in the created/updated/removed lists).

Parameters
[in]boxesCapacitythe length of the boxBounds and boxGroups arrays.
See also
BroadPhase::update

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