PxContactPairExtraDataIterator

Defined in include/PxSimulationEventCallback.h

struct PxContactPairExtraDataIterator

A class to iterate over a contact pair extra data stream.

Public Functions

inline PxContactPairExtraDataIterator(const PxU8 *stream, PxU32 size)

Constructor.

Parameters
  • stream[in] Pointer to the start of the stream.

  • size[in] Size of the stream in bytes.

inline bool nextItemSet()

Advances the iterator to next set of extra data items.

The contact pair extra data stream contains sets of items as requested by the corresponding PxPairFlag flags PxPairFlag::ePRE_SOLVER_VELOCITY, PxPairFlag::ePOST_SOLVER_VELOCITY, PxPairFlag::eCONTACT_EVENT_POSE. A set can contain one item of each plus the PxContactPairIndex item. This method parses the stream and points the iterator member variables to the corresponding items of the current set, if they are available. If CCD is not enabled, you should only get one set of items. If CCD with multiple passes is enabled, you might get more than one item set.

Note

Even though contact pair extra data is requested per shape pair, you will not get an item set per shape pair but one per actor pair. If, for example, an actor has two shapes and both collide with another actor, then there will only be one item set (since it applies to both shape pairs).

Returns

True if there was another set of extra data items in the stream, else false.

Public Members

const PxU8 *currPtr

Current pointer in the stream.

const PxU8 *endPtr

Pointer to the end of the stream.

const PxContactPairVelocity *preSolverVelocity

Pointer to the current pre solver velocity item in the stream.

NULL if there is none.

const PxContactPairVelocity *postSolverVelocity

Pointer to the current post solver velocity item in the stream.

NULL if there is none.

const PxContactPairPose *eventPose

Pointer to the current contact event pose item in the stream.

NULL if there is none.

PxU32 contactPairIndex

The contact pair index of the current item set in the stream.