RavEngine
Loading...
Searching...
No Matches
physx::PxContactStreamIterator Struct Reference

A class to iterate over a compressed contact stream. This supports read-only access to the various contact formats. More...

#include <PxContact.h>

Collaboration diagram for physx::PxContactStreamIterator:
[legend]

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.
 
PX_CUDA_CALLABLE PX_FORCE_INLINE bool hasNextPatch () const
 Returns whether there are more patches in this stream.
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxU32 getTotalContactCount () const
 Returns the total contact count.
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxU32 getTotalPatchCount () const
 Returns the total patch count.
 
PX_CUDA_CALLABLE PX_INLINE void nextPatch ()
 Advances iterator to next contact patch.
 
PX_CUDA_CALLABLE PX_FORCE_INLINE bool hasNextContact () const
 Returns if the current patch has more contacts.
 
PX_CUDA_CALLABLE PX_FORCE_INLINE void nextContact ()
 Advances to the next contact in the patch.
 
PX_CUDA_CALLABLE PX_FORCE_INLINE const PxVec3 & getContactNormal () const
 Gets the current contact's normal.
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxReal getInvMassScale0 () const
 Gets the inverse mass scale for body 0.
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxReal getInvMassScale1 () const
 Gets the inverse mass scale for body 1.
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxReal getInvInertiaScale0 () const
 Gets the inverse inertia scale for body 0.
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxReal getInvInertiaScale1 () const
 Gets the inverse inertia scale for body 1.
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxReal getMaxImpulse () const
 Gets the contact's max impulse.
 
PX_CUDA_CALLABLE PX_FORCE_INLINE const PxVec3 & getTargetVel () const
 Gets the contact's target velocity.
 
PX_CUDA_CALLABLE PX_FORCE_INLINE const PxVec3 & getContactPoint () const
 Gets the contact's contact point.
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxReal getSeparation () const
 Gets the contact's separation.
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxU32 getFaceIndex0 () const
 Gets the contact's face index for shape 0.
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxU32 getFaceIndex1 () const
 Gets the contact's face index for shape 1.
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxReal getStaticFriction () const
 Gets the contact's static friction coefficient.
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxReal getDynamicFriction () const
 Gets the contact's dynamic friction coefficient.
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxReal getRestitution () const
 Gets the contact's restitution coefficient.
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxReal getDamping () const
 Gets the contact's damping value.
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxU32 getMaterialFlags () const
 Gets the contact's material flags.
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxU16 getMaterialIndex0 () const
 Gets the contact's material index for shape 0.
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxU16 getMaterialIndex1 () const
 Gets the contact's material index for shape 1.
 
bool advanceToIndex (const PxU32 initialIndex)
 Advances the contact stream iterator to a specific contact index.
 

Public Attributes

PxVec3 zero
 Utility zero vector to optimize functions returning zero vectors when a certain flag isn't set.
 
const PxContactPatch * patch
 The patch headers.
 
const PxContact * contact
 The contacts.
 
const PxU32 * faceIndice
 The contact triangle face index.
 
PxU32 totalPatches
 The total number of patches in this contact stream.
 
PxU32 totalContacts
 The total number of contact points in this stream.
 
PxU32 nextContactIndex
 The current contact index.
 
PxU32 nextPatchIndex
 The current patch Index.
 
PxU32 contactPatchHeaderSize
 Size of contact patch header.
 
PxU32 contactPointSize
 Contact point size.
 
StreamFormat mStreamFormat
 The stream format.
 
PxU32 forceNoResponse
 Indicates whether this stream is notify-only or not.
 
bool pointStepped
 Internal helper for stepping the contact stream iterator.
 
PxU32 hasFaceIndices
 Specifies if this contactPatch has face indices (handled as bool)
 

Detailed Description

A class to iterate over a compressed contact stream. This supports read-only access to the various contact formats.

Member Function Documentation

◆ advanceToIndex()

bool physx::PxContactStreamIterator::advanceToIndex ( const PxU32  initialIndex)
inline

Advances the contact stream iterator to a specific contact index.

Returns
True if advancing was possible

◆ getContactNormal()

PX_CUDA_CALLABLE PX_FORCE_INLINE const PxVec3 & physx::PxContactStreamIterator::getContactNormal ( ) const
inline

Gets the current contact's normal.

Returns
The current contact's normal.

◆ getContactPoint()

PX_CUDA_CALLABLE PX_FORCE_INLINE const PxVec3 & physx::PxContactStreamIterator::getContactPoint ( ) const
inline

Gets the contact's contact point.

Returns
The contact's contact point.

◆ getDamping()

PX_CUDA_CALLABLE PX_FORCE_INLINE PxReal physx::PxContactStreamIterator::getDamping ( ) const
inline

Gets the contact's damping value.

Returns
The contact's damping value.

◆ getDynamicFriction()

PX_CUDA_CALLABLE PX_FORCE_INLINE PxReal physx::PxContactStreamIterator::getDynamicFriction ( ) const
inline

Gets the contact's dynamic friction coefficient.

Returns
The contact's dynamic friction coefficient.

◆ getFaceIndex0()

PX_CUDA_CALLABLE PX_FORCE_INLINE PxU32 physx::PxContactStreamIterator::getFaceIndex0 ( ) const
inline

Gets the contact's face index for shape 0.

Returns
The contact's face index for shape 0.

◆ getFaceIndex1()

PX_CUDA_CALLABLE PX_FORCE_INLINE PxU32 physx::PxContactStreamIterator::getFaceIndex1 ( ) const
inline

Gets the contact's face index for shape 1.

Returns
The contact's face index for shape 1.

◆ getInvInertiaScale0()

PX_CUDA_CALLABLE PX_FORCE_INLINE PxReal physx::PxContactStreamIterator::getInvInertiaScale0 ( ) const
inline

Gets the inverse inertia scale for body 0.

Returns
The inverse inertia scale for body 0.

◆ getInvInertiaScale1()

PX_CUDA_CALLABLE PX_FORCE_INLINE PxReal physx::PxContactStreamIterator::getInvInertiaScale1 ( ) const
inline

Gets the inverse inertia scale for body 1.

Returns
The inverse inertia scale for body 1.

◆ getInvMassScale0()

PX_CUDA_CALLABLE PX_FORCE_INLINE PxReal physx::PxContactStreamIterator::getInvMassScale0 ( ) const
inline

Gets the inverse mass scale for body 0.

Returns
The inverse mass scale for body 0.

◆ getInvMassScale1()

PX_CUDA_CALLABLE PX_FORCE_INLINE PxReal physx::PxContactStreamIterator::getInvMassScale1 ( ) const
inline

Gets the inverse mass scale for body 1.

Returns
The inverse mass scale for body 1.

◆ getMaterialFlags()

PX_CUDA_CALLABLE PX_FORCE_INLINE PxU32 physx::PxContactStreamIterator::getMaterialFlags ( ) const
inline

Gets the contact's material flags.

Returns
The contact's material flags.

◆ getMaterialIndex0()

PX_CUDA_CALLABLE PX_FORCE_INLINE PxU16 physx::PxContactStreamIterator::getMaterialIndex0 ( ) const
inline

Gets the contact's material index for shape 0.

Returns
The contact's material index for shape 0.

◆ getMaterialIndex1()

PX_CUDA_CALLABLE PX_FORCE_INLINE PxU16 physx::PxContactStreamIterator::getMaterialIndex1 ( ) const
inline

Gets the contact's material index for shape 1.

Returns
The contact's material index for shape 1.

◆ getMaxImpulse()

PX_CUDA_CALLABLE PX_FORCE_INLINE PxReal physx::PxContactStreamIterator::getMaxImpulse ( ) const
inline

Gets the contact's max impulse.

Returns
The contact's max impulse.

◆ getRestitution()

PX_CUDA_CALLABLE PX_FORCE_INLINE PxReal physx::PxContactStreamIterator::getRestitution ( ) const
inline

Gets the contact's restitution coefficient.

Returns
The contact's restitution coefficient.

◆ getSeparation()

PX_CUDA_CALLABLE PX_FORCE_INLINE PxReal physx::PxContactStreamIterator::getSeparation ( ) const
inline

Gets the contact's separation.

Returns
The contact's separation.

◆ getStaticFriction()

PX_CUDA_CALLABLE PX_FORCE_INLINE PxReal physx::PxContactStreamIterator::getStaticFriction ( ) const
inline

Gets the contact's static friction coefficient.

Returns
The contact's static friction coefficient.

◆ getTargetVel()

PX_CUDA_CALLABLE PX_FORCE_INLINE const PxVec3 & physx::PxContactStreamIterator::getTargetVel ( ) const
inline

Gets the contact's target velocity.

Returns
The contact's target velocity.

◆ getTotalContactCount()

PX_CUDA_CALLABLE PX_FORCE_INLINE PxU32 physx::PxContactStreamIterator::getTotalContactCount ( ) const
inline

Returns the total contact count.

Returns
Total contact count.

◆ getTotalPatchCount()

PX_CUDA_CALLABLE PX_FORCE_INLINE PxU32 physx::PxContactStreamIterator::getTotalPatchCount ( ) const
inline

Returns the total patch count.

Returns
Total patch count.

◆ hasNextContact()

PX_CUDA_CALLABLE PX_FORCE_INLINE bool physx::PxContactStreamIterator::hasNextContact ( ) const
inline

Returns if the current patch has more contacts.

Returns
If there are more contacts in the current patch.

◆ hasNextPatch()

PX_CUDA_CALLABLE PX_FORCE_INLINE bool physx::PxContactStreamIterator::hasNextPatch ( ) const
inline

Returns whether there are more patches in this stream.

Returns
Whether there are more patches in this stream.

Member Data Documentation

◆ contactPatchHeaderSize

PxU32 physx::PxContactStreamIterator::contactPatchHeaderSize

Size of contact patch header.

Note
This varies whether the patch is modifiable or not.

◆ contactPointSize

PxU32 physx::PxContactStreamIterator::contactPointSize

Contact point size.

Note
This varies whether the patch has feature indices or is modifiable.

◆ hasFaceIndices

PxU32 physx::PxContactStreamIterator::hasFaceIndices

Specifies if this contactPatch has face indices (handled as bool)

See also
faceIndice

◆ zero

PxVec3 physx::PxContactStreamIterator::zero

Utility zero vector to optimize functions returning zero vectors when a certain flag isn't set.

Note
This allows us to return by reference instead of having to return by value. Returning by value will go via memory (registers -> stack -> registers), which can cause performance issues on certain platforms.

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