44 #pragma warning(disable: 4324) // Padding was added at the end of a structure because of a __declspec(align) value. 47 #define PXC_CONTACT_NO_FACE_INDEX 0xffffffff 184 eCOMPRESSED_MODIFIABLE_STREAM
258 bool compressedModify =
false;
259 bool response =
false;
260 bool indices =
false;
277 faceIndice = contactFaceIndices;
285 mStreamFormat = compressedModify ? eCOMPRESSED_MODIFIABLE_STREAM : modify ? eMODIFIABLE_STREAM : eSIMPLE_STREAM;
286 hasFaceIndices =
PxU32(indices);
287 forceNoResponse =
PxU32(!response);
289 contactPatchHeaderSize = patchHeaderSize;
290 contactPointSize = pointSize;
292 nextContactIndex = 0;
294 totalPatches = nbPatches;
296 pointStepped =
false;
305 return nextPatchIndex < totalPatches;
314 return totalContacts;
327 PX_ASSERT(nextPatchIndex < totalPatches);
335 patch =
reinterpret_cast<const PxContactPatch*
>(
reinterpret_cast<const PxU8*
>(patch) + contactPatchHeaderSize);
338 nextContactIndex = 0;
347 return nextContactIndex < (patch->
nbContacts);
372 return getContactPatch().normal;
381 return patch->mMassModification.mInvMassScale0;
390 return patch->mMassModification.mInvMassScale1;
399 return patch->mMassModification.mInvInertiaScale0;
408 return patch->mMassModification.mInvInertiaScale1;
417 return mStreamFormat != eSIMPLE_STREAM ? getExtendedContact().maxImpulse :
PX_MAX_REAL;
426 return mStreamFormat != eSIMPLE_STREAM ? getExtendedContact().targetVelocity : zero;
471 return getContactPatch().staticFriction;
480 return getContactPatch().dynamicFriction;
489 return getContactPatch().restitution;
498 return getContactPatch().materialFlags;
524 PX_ASSERT(this->nextPatchIndex == 0 && this->nextContactIndex == 0);
526 PxU32 numToAdvance = initialIndex;
528 if(numToAdvance == 0)
537 while(hasNextPatch())
541 if(numToAdvance <= patchSize)
544 nextContactIndex += numToAdvance;
549 numToAdvance -= patchSize;
568 PX_ASSERT(mStreamFormat == eMODIFIABLE_STREAM || mStreamFormat == eCOMPRESSED_MODIFIABLE_STREAM);
Definition: GuContactBuffer.h:37
PxReal mInvInertiaScale0
Definition: PxContact.h:53
#define PX_FORCE_INLINE
Definition: PxPreprocessor.h:351
float PxReal
Definition: PxSimpleTypes.h:78
#define PX_MAX_REAL
Definition: PxSimpleTypes.h:93
uint32_t PxU32
Definition: PxSimpleTypes.h:71
PxReal mInvInertiaScale1
Definition: PxContact.h:55
Definition: PxContact.h:50
PxReal mInvMassScale1
Definition: PxContact.h:54
PxReal mInvMassScale0
Definition: PxContact.h:52
#define PX_ALIGN_PREFIX(alignment)
Definition: PxPreprocessor.h:409
uint8_t PxU8
Definition: PxSimpleTypes.h:75
#define PX_ASSERT(exp)
Definition: PxAssert.h:59
uint16_t PxU16
Definition: PxSimpleTypes.h:73
uint32_t PxU32
Definition: Px.h:48
#define PX_INLINE
Definition: PxPreprocessor.h:336
#define PX_CUDA_CALLABLE
Definition: PxPreprocessor.h:460
3 Element vector class.
Definition: PxVec3.h:49