30 #ifndef PX_SOLVER_DEFS_H 31 #define PX_SOLVER_DEFS_H 42 #pragma warning(disable : 4324) // structure was padded due to alignment 60 class ShapeInteraction;
73 PxSolverBody() : linearVelocity(0.f), maxSolverNormalProgress(0), maxSolverFrictionProgress(0), angularState(0), solverProgress(0)
96 return linearVelocity.
dot(lin) + angularVelocity.
dot(ang);
113 static const PxU16 NO_LINK = 0xffff;
149 eDYNAMIC_BODY = 1 << 0,
150 eSTATIC_BODY = 1 << 1,
151 eKINEMATIC_BODY = 1 << 2,
152 eARTICULATION = 1 << 3
190 PX_ALIGN(16, Sc::ShapeInteraction* shapeInteraction);
224 virtual PxU8* reserveConstraintData(
const PxU32 byteSize) = 0;
232 virtual PxU8* reserveFrictionData(
const PxU32 byteSize) = 0;
326 return linearVelocity.dot(lin) + angularVelocity.
dot(ang);
352 return originalLinearVelocity.dot(linear) + originalAngularVelocity.
dot(angular);
Definition: GuContactBuffer.h:37
PxVec3 angularState
Delta angular velocity state computed by the solver.
Definition: PxSolverDefs.h:69
PxU16 pad
112 pad
Definition: PxSolverDefs.h:92
BodyState bodyState0
In: Defines what kind of actor the first body is.
Definition: PxSolverDefs.h:168
Definition: PxSolverDefs.h:298
void * writeback
Pointer to constraint writeback structure. Reports back joint breaking. If not required, set to NULL.
Definition: PxSolverDefs.h:179
size_t ArticulationLinkHandle
Definition: PxSolverDefs.h:54
PxU16 linkIndexB
Link index defining which link in Articulation B this constraint affects. If not an articulation...
Definition: PxSolverDefs.h:136
PxU32 numRows
The number of rows.
Definition: PxSolverDefs.h:382
Definition: PxSolverDefs.h:172
PxU32 bodyBDataIndex
Body B's index into the SolverBodyData array.
Definition: PxSolverDefs.h:138
Definition: PxSolverDefs.h:80
Definition: PxSolverDefs.h:237
Enum
Definition: PxSolverDefs.h:291
Definition: PxSolverDefs.h:303
BodyState
Definition: PxSolverDefs.h:147
PxU16 linkIndexA
Link index defining which link in Articulation A this constraint affects. If not an articulation...
Definition: PxSolverDefs.h:135
bool extendedLimits
Indiciates whether extended limits are used.
Definition: PxSolverDefs.h:390
PX_CUDA_CALLABLE PX_FORCE_INLINE float dot(const PxVec3 &v) const
returns the scalar product of this and other.
Definition: PxVec3.h:276
PxReal penBiasClamp
72 the penetration bias clamp
Definition: PxSolverDefs.h:87
#define PX_FORCE_INLINE
Definition: PxPreprocessor.h:346
float PxReal
Definition: PxSimpleTypes.h:78
Definition: PxSolverDefs.h:338
Definition: PxSolverDefs.h:332
Definition: PxSolverDefs.h:52
PxTransform bodyFrame0
In: The world-space transform of the first body.
Definition: PxSolverDefs.h:371
PxVec3 cB2w
Location of anchor point B in world space.
Definition: PxSolverDefs.h:394
BodyState bodyState1
In: Defines what kind of actor the second body is.
Definition: PxSolverDefs.h:169
PxTGSSolverBodyVel * tgsBodyB
BodyB pointer.
Definition: PxSolverDefs.h:132
PxVec3 body0WorldOffset
Body0 world offset.
Definition: PxSolverDefs.h:185
Enum
Definition: PxSolverDefs.h:255
Defines this pair is a contact constraint.
Definition: PxSolverDefs.h:117
PxConstraintInvMassScale invMassScales
In: The local mass scaling for this pair.
Definition: PxSolverDefs.h:358
PxU16 nbStaticInteractions
Definition: PxSolverDefs.h:313
Definition: PxSolverDefs.h:278
PxTransform bodyFrame1
In: The world-space transform of the second body.
Definition: PxSolverDefs.h:372
Definition: PxSolverDefs.h:216
PxReal penBiasClamp
Definition: PxSolverDefs.h:343
A constraint.
Definition: PxConstraintDesc.h:141
PxReal reportThreshold
Definition: PxSolverDefs.h:347
PxVec3 deltaAngDt
Definition: PxSolverDefs.h:317
PxReal maxContactImpulse
80 the max contact impulse
Definition: PxSolverDefs.h:89
PxU16 lockFlags
Definition: PxSolverDefs.h:320
const PxSolverBody * body1
In: The second body. Stores velocity information. Unused unless contact involves articulations.
Definition: PxSolverDefs.h:160
PxSolverBody * bodyA
bodyA pointer
Definition: PxSolverDefs.h:123
PxSolverConstraintDesc * desc
Output: The PxSolverConstraintDesc filled in by contact prep.
Definition: PxSolverDefs.h:360
PxTGSSolverBodyVel * tgsBodyA
bodyA pointer
Definition: PxSolverDefs.h:124
Px1DConstraint * rows
The start of the constraint rows.
Definition: PxSolverDefs.h:381
PxReal invMass
16 inverse mass
Definition: PxSolverDefs.h:83
PxU16 lockFlags
110 lock flags
Definition: PxSolverDefs.h:91
PxReal maxContactImpulse
Definition: PxSolverDefs.h:341
const PxTGSSolverBodyData * bodyData0
Definition: PxSolverDefs.h:368
Definition: PxConstraintDesc.h:189
PxU32 nodeIndex
Definition: PxSolverDefs.h:346
Definition: PxSolverDefs.h:266
PxVec3 cA2w
Location of anchor point A in world space.
Definition: PxSolverDefs.h:393
PxSolverBody()
Definition: PxSolverDefs.h:73
const PxTGSSolverBodyVel * body1
In: The second body. Stores velocity information. Unused unless contact involves articulations.
Definition: PxSolverDefs.h:363
bool improvedSlerp
Use improved slerp model.
Definition: PxSolverDefs.h:181
Definition: PxSolverDefs.h:310
PxU16 maxDynamicPartition
Definition: PxSolverDefs.h:314
PxReal low
Definition: PxSolverDefs.h:300
PxVec3 deltaLinDt
Definition: PxSolverDefs.h:319
bool isKinematic
Definition: PxSolverDefs.h:321
PxFlags< PxArticulationMotion::Enum, PxU8 > PxArticulationMotions
Definition: PxSolverDefs.h:263
virtual ~PxConstraintAllocator()
Definition: PxSolverDefs.h:234
PxSolverConstraintDesc * desc
Output: The PxSolverConstraintDesc filled in by contact prep.
Definition: PxSolverDefs.h:157
PxReal invMass
Definition: PxSolverDefs.h:345
PxReal minResponseThreshold
The minimum response threshold.
Definition: PxSolverDefs.h:385
PxU16 writeBackLengthOver4
writeBackLength/4, max writeback length is 256K, allows PxSolverConstraintDesc to fit in 32 bytes ...
Definition: PxSolverDefs.h:139
bool disablePreprocessing
Disable joint pre-processing. Pre-processing can improve stability but under certain circumstances...
Definition: PxSolverDefs.h:387
PxU32 partitionMask
Definition: PxSolverDefs.h:316
Definition: PxSolverDefs.h:58
bool driveLimitsAreForces
Indicates whether drive limits are forces.
Definition: PxSolverDefs.h:182
const PxTGSSolverBodyVel * body0
In: The first body. Stores velocity information. Unused unless contact involves articulations.
Definition: PxSolverDefs.h:362
PxTransform bodyFrame0
In: The world-space transform of the first body.
Definition: PxSolverDefs.h:165
PxVec3 body0WorldOffset
Body0 world offset.
Definition: PxSolverDefs.h:392
PxU8 pad
Definition: PxSolverDefs.h:322
PX_FORCE_INLINE PxReal projectVelocity(const PxVec3 &lin, const PxVec3 &ang) const
Definition: PxSolverDefs.h:324
PxReal projectVelocity(const PxVec3 &linear, const PxVec3 &angular) const
Definition: PxSolverDefs.h:350
bool improvedSlerp
Use improved slerp model.
Definition: PxSolverDefs.h:388
uint8_t PxU8
Definition: PxSimpleTypes.h:75
PxReal damping
damping parameter, for spring constraints
Definition: PxConstraintDesc.h:100
PxVec3 angularVelocity
Definition: PxSolverDefs.h:315
PxTransform deltaBody2World
Definition: PxSolverDefs.h:334
PxReal linBreakForce
Definition: PxSolverDefs.h:384
PxArticulationDriveType::Enum driveType
Definition: PxSolverDefs.h:306
ConstraintType
Definition: PxSolverDefs.h:115
PxMat33 sqrtInvInertia
Definition: PxSolverDefs.h:335
Definition: PxSolverDefs.h:145
PxSolverContactDesc::BodyState bodyState0
In: Defines what kind of actor the first body is.
Definition: PxSolverDefs.h:374
Definition: PxSolverDefs.h:356
PxU16 constraintLengthOver16
constraintLength/16, max constraint length is 1MB, allows PxSolverConstraintDesc to fit in 32 bytes ...
Definition: PxSolverDefs.h:140
const PxTGSSolverBodyTxInertia * body1TxI
Definition: PxSolverDefs.h:366
PxReal linBreakForce
Definition: PxSolverDefs.h:177
3x3 matrix class
Definition: PxMat33.h:90
PxU8 * constraint
Pointer to the constraint rows to be solved.
Definition: PxSolverDefs.h:141
Definition: PxSolverDefs.h:63
PxU32 nodeIndex
76 the node idx of this solverBodyData. Used by solver to reference between solver bodies and island ...
Definition: PxSolverDefs.h:88
PxVec3 angularVelocity
28 Pre-solver angular velocity
Definition: PxSolverDefs.h:84
PX_COMPILE_TIME_ASSERT(sizeof(PxSolverBody)==32)
PxConstraintInvMassScale invMassScales
In: The local mass scaling for this pair.
Definition: PxSolverDefs.h:155
PxFlags< PxArticulationFlag::Enum, PxU8 > PxArticulationFlags
Definition: PxSolverDefs.h:286
Definition: PxSolverDefs.h:289
PxSolverBody * bodyB
BodyB pointer.
Definition: PxSolverDefs.h:131
PxU16 maxSolverFrictionProgress
Progress counter used by constraint batching and parallel island solver.
Definition: PxSolverDefs.h:67
PxVec3 originalAngularVelocity
Definition: PxSolverDefs.h:342
void * writeback
Pointer to constraint writeback structure. Reports back joint breaking. If not required, set to NULL.
Definition: PxSolverDefs.h:386
PxTransform bodyFrame1
In: The world-space transform of the second body.
Definition: PxSolverDefs.h:166
PxReal maxAngVel
Definition: PxSolverDefs.h:318
PxU32 solverProgress
Progress counter used by constraint batching and parallel island solver.
Definition: PxSolverDefs.h:71
PxU32 pad
Definition: PxSolverDefs.h:348
const PxSolverBody * body0
In: The first body. Stores velocity information. Unused unless contact involves articulations.
Definition: PxSolverDefs.h:159
#define PX_ALIGN(alignment, decl)
Definition: PxPreprocessor.h:403
bool driveLimitsAreForces
Indicates whether drive limits are forces.
Definition: PxSolverDefs.h:389
bool disablePreprocessing
Disable joint pre-processing. Pre-processing can improve stability but under certain circumstances...
Definition: PxSolverDefs.h:180
Enum
Definition: PxSolverDefs.h:268
bool extendedLimits
Indicates whether we want to use extended limits.
Definition: PxSolverDefs.h:183
PxMat33 sqrtInvInertia
68 inverse inertia in world space
Definition: PxSolverDefs.h:86
const PxTGSSolverBodyTxInertia * body0TxI
Definition: PxSolverDefs.h:365
Container for bitfield flag variables associated with a specific enum type.
Definition: PxFlags.h:73
PxU16 maxSolverNormalProgress
Progress counter used by constraint batching and parallel island solver.
Definition: PxSolverDefs.h:66
Definition: PxSolverDefs.h:111
const PxSolverBodyData * data1
In: The second PxSolverBodyData. Stores mass and miscellaneous information for the second body...
Definition: PxSolverDefs.h:163
PxTransform body2World
108 the body's transform
Definition: PxSolverDefs.h:90
const PxTGSSolverBodyData * bodyData1
Definition: PxSolverDefs.h:369
uint16_t PxU16
Definition: PxSimpleTypes.h:73
uint32_t PxU32
Definition: Px.h:48
PxReal reportThreshold
32 contact force threshold
Definition: PxSolverDefs.h:85
Dy::ArticulationV * articulationA
Articulation pointer for body A.
Definition: PxSolverDefs.h:125
Enum
Definition: PxSolverDefs.h:239
Definition: PxSolverDefs.h:379
Enum
Definition: PxSolverDefs.h:280
PxReal minResponseThreshold
The minimum response threshold.
Definition: PxSolverDefs.h:178
PX_FORCE_INLINE PxReal projectVelocity(const PxVec3 &lin, const PxVec3 &ang) const
Definition: PxSolverDefs.h:94
const PxSolverBodyData * data0
In: The first PxSolverBodyData. Stores mass and miscellaneous information for the first body...
Definition: PxSolverDefs.h:162
Definition: PxSolverDefs.h:253
PxU32 bodyADataIndex
Body A's index into the SolverBodyData array.
Definition: PxSolverDefs.h:137
PxSolverContactDesc::BodyState bodyState1
In: Defines what kind of actor the second body is.
Definition: PxSolverDefs.h:375
3 Element vector class.
Definition: PxVec3.h:49
PxReal stiffness
Definition: PxSolverDefs.h:305
Dy::ArticulationV * articulationB
Articulation pointer for body B.
Definition: PxSolverDefs.h:133
void * writeBack
Pointer to the writeback structure results for this given constraint are to be written to...
Definition: PxSolverDefs.h:142
PxU32 numRows
The number of rows.
Definition: PxSolverDefs.h:175