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;
282 eFIX_BASE = (1 << 0),
283 eDRIVE_LIMITS_ARE_FORCES = (1<<1)
330 return linearVelocity.dot(lin) + angularVelocity.
dot(ang);
356 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:302
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:386
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:292
Definition: PxSolverDefs.h:307
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:394
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:351
float PxReal
Definition: PxSimpleTypes.h:78
Definition: PxSolverDefs.h:342
Definition: PxSolverDefs.h:336
Definition: PxSolverDefs.h:52
PxTransform bodyFrame0
In: The world-space transform of the first body.
Definition: PxSolverDefs.h:375
PxVec3 cB2w
Location of anchor point B in world space.
Definition: PxSolverDefs.h:398
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:362
PxU16 nbStaticInteractions
Definition: PxSolverDefs.h:317
Definition: PxSolverDefs.h:278
PxTransform bodyFrame1
In: The world-space transform of the second body.
Definition: PxSolverDefs.h:376
Definition: PxSolverDefs.h:216
PxReal penBiasClamp
Definition: PxSolverDefs.h:347
A constraint.
Definition: PxConstraintDesc.h:141
PxReal reportThreshold
Definition: PxSolverDefs.h:351
PxVec3 deltaAngDt
Definition: PxSolverDefs.h:321
PxReal maxContactImpulse
80 the max contact impulse
Definition: PxSolverDefs.h:89
PxU16 lockFlags
Definition: PxSolverDefs.h:324
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:364
PxTGSSolverBodyVel * tgsBodyA
bodyA pointer
Definition: PxSolverDefs.h:124
Px1DConstraint * rows
The start of the constraint rows.
Definition: PxSolverDefs.h:385
PxReal invMass
16 inverse mass
Definition: PxSolverDefs.h:83
PxU16 lockFlags
110 lock flags
Definition: PxSolverDefs.h:91
PxReal maxContactImpulse
Definition: PxSolverDefs.h:345
const PxTGSSolverBodyData * bodyData0
Definition: PxSolverDefs.h:372
Definition: PxConstraintDesc.h:189
PxU32 nodeIndex
Definition: PxSolverDefs.h:350
Definition: PxSolverDefs.h:266
PxVec3 cA2w
Location of anchor point A in world space.
Definition: PxSolverDefs.h:397
PxSolverBody()
Definition: PxSolverDefs.h:73
const PxTGSSolverBodyVel * body1
In: The second body. Stores velocity information. Unused unless contact involves articulations.
Definition: PxSolverDefs.h:367
bool improvedSlerp
Use improved slerp model.
Definition: PxSolverDefs.h:181
Definition: PxSolverDefs.h:314
PxU16 maxDynamicPartition
Definition: PxSolverDefs.h:318
PxReal low
Definition: PxSolverDefs.h:304
PxVec3 deltaLinDt
Definition: PxSolverDefs.h:323
PxVec3 angular
Definition: PxArticulationReducedCoordinate.h:134
bool isKinematic
Definition: PxSolverDefs.h:325
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:349
PxReal minResponseThreshold
The minimum response threshold.
Definition: PxSolverDefs.h:389
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:391
PxU32 partitionMask
Definition: PxSolverDefs.h:320
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:366
PxTransform bodyFrame0
In: The world-space transform of the first body.
Definition: PxSolverDefs.h:165
PxVec3 body0WorldOffset
Body0 world offset.
Definition: PxSolverDefs.h:396
PxU8 pad
Definition: PxSolverDefs.h:326
PX_FORCE_INLINE PxReal projectVelocity(const PxVec3 &lin, const PxVec3 &ang) const
Definition: PxSolverDefs.h:328
PxReal projectVelocity(const PxVec3 &linear, const PxVec3 &angular) const
Definition: PxSolverDefs.h:354
bool improvedSlerp
Use improved slerp model.
Definition: PxSolverDefs.h:392
uint8_t PxU8
Definition: PxSimpleTypes.h:75
PxReal damping
damping parameter, for spring constraints
Definition: PxConstraintDesc.h:100
PxVec3 angularVelocity
Definition: PxSolverDefs.h:319
PxTransform deltaBody2World
Definition: PxSolverDefs.h:338
PxReal linBreakForce
Definition: PxSolverDefs.h:388
PxArticulationDriveType::Enum driveType
Definition: PxSolverDefs.h:310
ConstraintType
Definition: PxSolverDefs.h:115
PxMat33 sqrtInvInertia
Definition: PxSolverDefs.h:339
Definition: PxSolverDefs.h:145
PxSolverContactDesc::BodyState bodyState0
In: Defines what kind of actor the first body is.
Definition: PxSolverDefs.h:378
Definition: PxSolverDefs.h:360
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:370
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:287
Definition: PxSolverDefs.h:290
PxSolverBody * bodyB
BodyB pointer.
Definition: PxSolverDefs.h:131
PxVec3 linear
Definition: PxArticulationReducedCoordinate.h:132
PxU16 maxSolverFrictionProgress
Progress counter used by constraint batching and parallel island solver.
Definition: PxSolverDefs.h:67
PxVec3 originalAngularVelocity
Definition: PxSolverDefs.h:346
void * writeback
Pointer to constraint writeback structure. Reports back joint breaking. If not required, set to NULL.
Definition: PxSolverDefs.h:390
PxTransform bodyFrame1
In: The world-space transform of the second body.
Definition: PxSolverDefs.h:166
PxReal maxAngVel
Definition: PxSolverDefs.h:322
PxU32 solverProgress
Progress counter used by constraint batching and parallel island solver.
Definition: PxSolverDefs.h:71
PxU32 pad
Definition: PxSolverDefs.h:352
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:408
bool driveLimitsAreForces
Indicates whether drive limits are forces.
Definition: PxSolverDefs.h:393
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:369
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:373
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:383
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:379
3 Element vector class.
Definition: PxVec3.h:49
PxReal stiffness
Definition: PxSolverDefs.h:309
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