A class to iterate over a compressed contact stream. This supports read-only access to the various contact formats. More...
#include <PxContact.h>
Public Types | |
enum | StreamFormat { eSIMPLE_STREAM, eMODIFIABLE_STREAM, eCOMPRESSED_MODIFIABLE_STREAM } |
Public Member Functions | |
PX_CUDA_CALLABLE PX_FORCE_INLINE | PxContactStreamIterator (const PxU8 *contactPatches, const PxU8 *contactPoints, const PxU32 *contactFaceIndices, PxU32 nbPatches, PxU32 nbContacts) |
Constructor. More... | |
PX_CUDA_CALLABLE PX_FORCE_INLINE bool | hasNextPatch () const |
Returns whether there are more patches in this stream. More... | |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxU32 | getTotalContactCount () const |
Returns the total contact count. More... | |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxU32 | getTotalPatchCount () const |
PX_CUDA_CALLABLE PX_INLINE void | nextPatch () |
Advances iterator to next contact patch. More... | |
PX_CUDA_CALLABLE PX_FORCE_INLINE bool | hasNextContact () const |
Returns if the current patch has more contacts. More... | |
PX_CUDA_CALLABLE PX_FORCE_INLINE void | nextContact () |
Advances to the next contact in the patch. More... | |
PX_CUDA_CALLABLE PX_FORCE_INLINE const PxVec3 & | getContactNormal () const |
Gets the current contact's normal. More... | |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxReal | getInvMassScale0 () const |
Gets the inverse mass scale for body 0. More... | |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxReal | getInvMassScale1 () const |
Gets the inverse mass scale for body 1. More... | |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxReal | getInvInertiaScale0 () const |
Gets the inverse inertia scale for body 0. More... | |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxReal | getInvInertiaScale1 () const |
Gets the inverse inertia scale for body 1. More... | |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxReal | getMaxImpulse () const |
Gets the contact's max impulse. More... | |
PX_CUDA_CALLABLE PX_FORCE_INLINE const PxVec3 & | getTargetVel () const |
Gets the contact's target velocity. More... | |
PX_CUDA_CALLABLE PX_FORCE_INLINE const PxVec3 & | getContactPoint () const |
Gets the contact's contact point. More... | |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxReal | getSeparation () const |
Gets the contact's separation. More... | |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxU32 | getFaceIndex0 () const |
Gets the contact's face index for shape 0. More... | |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxU32 | getFaceIndex1 () const |
Gets the contact's face index for shape 1. More... | |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxReal | getStaticFriction () const |
Gets the contact's static friction coefficient. More... | |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxReal | getDynamicFriction () const |
Gets the contact's static dynamic coefficient. More... | |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxReal | getRestitution () const |
Gets the contact's restitution coefficient. More... | |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxU32 | getMaterialFlags () const |
Gets the contact's material flags. More... | |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxU16 | getMaterialIndex0 () const |
Gets the contact's material index for shape 0. More... | |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxU16 | getMaterialIndex1 () const |
Gets the contact's material index for shape 1. More... | |
bool | advanceToIndex (const PxU32 initialIndex) |
Advances the contact stream iterator to a specific contact index. More... | |
Public Attributes | |
PxVec3 | zero |
Utility zero vector to optimize functions returning zero vectors when a certain flag isn't set. More... | |
const PxContactPatch * | patch |
The patch headers. More... | |
const PxContact * | contact |
The contacts. More... | |
const PxU32 * | faceIndice |
The contact triangle face index. More... | |
PxU32 | totalPatches |
The total number of patches in this contact stream. More... | |
PxU32 | totalContacts |
The total number of contact points in this stream. More... | |
PxU32 | nextContactIndex |
The current contact index. More... | |
PxU32 | nextPatchIndex |
The current patch Index. More... | |
PxU32 | contactPatchHeaderSize |
PxU32 | contactPointSize |
Contact point size. More... | |
StreamFormat | mStreamFormat |
The stream format. More... | |
PxU32 | forceNoResponse |
Indicates whether this stream is notify-only or not. More... | |
bool | pointStepped |
PxU32 | hasFaceIndices |
Private Member Functions | |
PX_CUDA_CALLABLE PX_FORCE_INLINE const PxContactPatch & | getContactPatch () const |
Internal helper. More... | |
PX_CUDA_CALLABLE PX_FORCE_INLINE const PxExtendedContact & | getExtendedContact () const |
A class to iterate over a compressed contact stream. This supports read-only access to the various contact formats.
|
inline |
|
inline |
Advances the contact stream iterator to a specific contact index.
References contact, PxContactPatch::nbContacts, and PX_ASSERT.
|
inline |
Gets the current contact's normal.
Referenced by PxContactPair::extractContacts().
|
inlineprivate |
Internal helper.
|
inline |
Gets the contact's contact point.
References contact.
Referenced by PxContactPair::extractContacts().
|
inline |
Gets the contact's static dynamic coefficient.
|
inlineprivate |
|
inline |
Gets the contact's face index for shape 0.
References PXC_CONTACT_NO_FACE_INDEX.
Referenced by PxContactPair::extractContacts().
|
inline |
Gets the contact's face index for shape 1.
Referenced by PxContactPair::extractContacts().
|
inline |
Gets the inverse inertia scale for body 0.
|
inline |
Gets the inverse inertia scale for body 1.
|
inline |
Gets the inverse mass scale for body 0.
|
inline |
Gets the inverse mass scale for body 1.
|
inline |
Gets the contact's material flags.
|
inline |
Gets the contact's material index for shape 0.
References materialIndex0.
|
inline |
Gets the contact's material index for shape 1.
References materialIndex1.
|
inline |
|
inline |
Gets the contact's restitution coefficient.
|
inline |
Gets the contact's separation.
Referenced by PxContactPair::extractContacts().
|
inline |
Gets the contact's static friction coefficient.
|
inline |
Gets the contact's target velocity.
|
inline |
Returns the total contact count.
|
inline |
|
inline |
Returns if the current patch has more contacts.
References PxContactPatch::nbContacts.
Referenced by PxContactPair::extractContacts().
|
inline |
Returns whether there are more patches in this stream.
Referenced by PxContactPair::extractContacts().
|
inline |
Advances to the next contact in the patch.
References contact, nbContacts, and PX_ASSERT.
Referenced by PxContactPair::extractContacts().
|
inline |
Advances iterator to next contact patch.
References contact, PxContactPatch::nbContacts, nbContacts, and PX_ASSERT.
Referenced by PxContactPair::extractContacts().
const PxContact* PxContactStreamIterator::contact |
The contacts.
PxU32 PxContactStreamIterator::contactPatchHeaderSize |
PxU32 PxContactStreamIterator::contactPointSize |
Contact point size.
const PxU32* PxContactStreamIterator::faceIndice |
The contact triangle face index.
PxU32 PxContactStreamIterator::forceNoResponse |
Indicates whether this stream is notify-only or not.
PxU32 PxContactStreamIterator::hasFaceIndices |
StreamFormat PxContactStreamIterator::mStreamFormat |
The stream format.
PxU32 PxContactStreamIterator::nextContactIndex |
The current contact index.
PxU32 PxContactStreamIterator::nextPatchIndex |
The current patch Index.
const PxContactPatch* PxContactStreamIterator::patch |
The patch headers.
bool PxContactStreamIterator::pointStepped |
PxU32 PxContactStreamIterator::totalContacts |
The total number of contact points in this stream.
PxU32 PxContactStreamIterator::totalPatches |
The total number of patches in this contact stream.
PxVec3 PxContactStreamIterator::zero |
Utility zero vector to optimize functions returning zero vectors when a certain flag isn't set.