|
RavEngine
|
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 |
|
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.
| [in] | created | an array of indices describing the bounds that must be inserted into the broadphase. Each index in the array must not be in use. |
| [in] | updated | an 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] | removed | an array of indices describing the bounds that must be removed from the broad phase. Each index in the array must be in use. |
| [in] | boxBounds | an 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.
| [in] | boxGroups | an 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).
| [in] | boxesCapacity | the length of the boxBounds and boxGroups arrays. |