PxSolverDefs.h
Go to the documentation of this file.
1 //
2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions
4 // are met:
5 // * Redistributions of source code must retain the above copyright
6 // notice, this list of conditions and the following disclaimer.
7 // * Redistributions in binary form must reproduce the above copyright
8 // notice, this list of conditions and the following disclaimer in the
9 // documentation and/or other materials provided with the distribution.
10 // * Neither the name of NVIDIA CORPORATION nor the names of its
11 // contributors may be used to endorse or promote products derived
12 // from this software without specific prior written permission.
13 //
14 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
15 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17 // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
18 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
19 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
20 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
21 // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
22 // OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 //
26 // Copyright (c) 2008-2019 NVIDIA Corporation. All rights reserved.
27 // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
28 // Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
29 
30 #ifndef PX_SOLVER_DEFS_H
31 #define PX_SOLVER_DEFS_H
32 
33 #include "PxPhysXConfig.h"
34 #include "foundation/PxVec3.h"
35 #include "foundation/PxMat33.h"
36 #include "foundation/PxTransform.h"
37 #include "PxConstraintDesc.h"
39 
40 #if PX_VC
41 #pragma warning(push)
42 #pragma warning(disable : 4324) // structure was padded due to alignment
43 #endif
44 
45 #if !PX_DOXYGEN
46 namespace physx
47 {
48 #endif
49 
50 struct PxTGSSolverBodyVel;
51 
52 namespace Dy
53 {
54  class ArticulationV;
55  typedef size_t ArticulationLinkHandle;
56 }
57 
58 namespace Sc
59 {
60  class ShapeInteraction;
61 }
62 
64 {
65  PX_ALIGN(16, PxVec3) linearVelocity;
68 
70 
72 
73  PxSolverBody() : linearVelocity(0.f), maxSolverNormalProgress(0), maxSolverFrictionProgress(0), angularState(0), solverProgress(0)
74  {
75  }
76 };
77 
79 
81 {
82  PX_ALIGN(16, PxVec3 linearVelocity);
93 
94  PX_FORCE_INLINE PxReal projectVelocity(const PxVec3& lin, const PxVec3& ang) const
95  {
96  return linearVelocity.dot(lin) + angularVelocity.dot(ang);
97  }
98 };
99 
100 //----------------------------------
101 /*
102 * A header that defines the size of a specific batch of constraints (of same type and without dependencies)
103 */
105 {
109 };
110 
112 {
113  static const PxU16 NO_LINK = 0xffff;
114 
116  {
118  eJOINT_CONSTRAINT
119  };
120 
121  union
122  {
125  Dy::ArticulationV* articulationA;
126 
127  };
128 
129  union
130  {
133  Dy::ArticulationV* articulationB;
134  };
142  void* writeBack;
143 };
144 
146 {
148  {
149  eDYNAMIC_BODY = 1 << 0,
150  eSTATIC_BODY = 1 << 1,
151  eKINEMATIC_BODY = 1 << 2,
152  eARTICULATION = 1 << 3
153  };
154 
156 
158 
161 
164 
167 
170 };
171 
173 {
174  PX_ALIGN(16, Px1DConstraint* rows);
176 
177  PxReal linBreakForce, angBreakForce;
179  void* writeback;
184 
186 };
187 
189 {
190  PX_ALIGN(16, Sc::ShapeInteraction* shapeInteraction);
191  Gu::ContactPoint* contacts;
193 
197 
200 
203 
205 
208 
212 
213  PxU8 pad[16 - sizeof(void*)];
214 };
215 
217 {
218 public:
224  virtual PxU8* reserveConstraintData(const PxU32 byteSize) = 0;
225 
232  virtual PxU8* reserveFrictionData(const PxU32 byteSize) = 0;
233 
235 };
236 
238 {
239  enum Enum
240  {
241  eTWIST = 0,
242  eSWING1 = 1,
243  eSWING2 = 2,
244  eX = 3,
245  eY = 4,
246  eZ = 5,
247  eCOUNT = 6
248  };
249 };
250 
251 PX_FLAGS_OPERATORS(PxArticulationAxis::Enum, PxU8)
252 
254 {
255  enum Enum
256  {
257  eLOCKED = 0,
258  eLIMITED = 1,
259  eFREE = 2
260  };
261 };
262 
264 PX_FLAGS_OPERATORS(PxArticulationMotion::Enum, PxU8)
265 
267 {
268  enum Enum
269  {
270  ePRISMATIC = 0,
271  eREVOLUTE = 1,
272  eSPHERICAL = 2,
273  eFIX = 3,
274  eUNDEFINED = 4
275  };
276 };
277 
279 {
280  enum Enum
281  {
282  eFIX_BASE = (1 << 0)
283  };
284 };
285 
287 PX_FLAGS_OPERATORS(PxArticulationFlag::Enum, PxU8)
288 
290 {
291  enum Enum
292  {
293  eFORCE = 0,
294  eACCELERATION = 1
295  };
296 };
297 
299 {
300  PxReal low, high;
301 };
302 
304 {
307 };
308 
309 
311 {
312  PX_ALIGN(16, PxVec3) linearVelocity; //12
313  PxU16 nbStaticInteractions; //14 Used to accumulate the number of static interactions
314  PxU16 maxDynamicPartition; //16 Used to accumualte the max partition of dynamic interactions
316  PxU32 partitionMask; //32 Used in partitioning as a bit-field
321  bool isKinematic; //63
322  PxU8 pad; //64
323 
324  PX_FORCE_INLINE PxReal projectVelocity(const PxVec3& lin, const PxVec3& ang) const
325  {
326  return linearVelocity.dot(lin) + angularVelocity.dot(ang);
327  }
328 
329 };
330 
331 //Needed only by prep, integration and 1D constraints
333 {
336 };
337 
339 {
340  PX_ALIGN(16, PxVec3) originalLinearVelocity;
344 
349 
350  PxReal projectVelocity(const PxVec3& linear, const PxVec3& angular) const
351  {
352  return originalLinearVelocity.dot(linear) + originalAngularVelocity.dot(angular);
353  }
354 };
355 
357 {
359 
361 
364 
367 
370 
373 
376 
377 };
378 
380 {
383 
384  PxReal linBreakForce, angBreakForce;
386  void* writeback;
391 
395 };
396 
397 
399 {
400 
401  Sc::ShapeInteraction* shapeInteraction;
402  Gu::ContactPoint* contacts;
404 
408 
411 
414 
416 
419 
423 
425 
428 };
429 
430 #if !PX_DOXYGEN
431 }
432 #endif
433 
434 #if PX_VC
435 #pragma warning(pop)
436 #endif
437 
438 #endif
439 
Definition: GuContactBuffer.h:37
PxVec3 angularState
Delta angular velocity state computed by the solver.
Definition: PxSolverDefs.h:69
PxU8 * frictionPtr
InOut: Friction patch correlation data. Set each frame by solver. Can be retained for improved behavi...
Definition: PxSolverDefs.h:412
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
PxU8 frictionCount
The total number of friction patches in this pair.
Definition: PxSolverDefs.h:202
PxU32 numFrictionPatches
Total number of friction patches in this pair. Set by friction correlation.
Definition: PxSolverDefs.h:207
PxU16 linkIndexB
Link index defining which link in Articulation B this constraint affects. If not an articulation...
Definition: PxSolverDefs.h:136
Definition: PxSolverDefs.h:398
PxU16 stride
Number of constraints in this batch (range: 1-4)
Definition: PxSolverDefs.h:107
PxReal maxCCDSeparation
A distance used to configure speculative CCD behavior. Default is PX_MAX_F32. Set internally in PhysX...
Definition: PxSolverDefs.h:410
PxU32 numRows
The number of rows.
Definition: PxSolverDefs.h:382
PxU32 numFrictionPatches
Total number of friction patches in this pair. Set by friction correlation.
Definition: PxSolverDefs.h:418
Definition: PxSolverDefs.h:172
PxU32 bodyBDataIndex
Body B&#39;s index into the SolverBodyData array.
Definition: PxSolverDefs.h:138
Definition: PxSolverDefs.h:80
Definition: PxSolverDefs.h:237
PxU32 startFrictionPatchIndex
Start index of friction patch in the correlation buffer. Set by friction correlation.
Definition: PxSolverDefs.h:206
Enum
Definition: PxSolverDefs.h:291
Definition: PxSolverDefs.h:303
bool hasForceThresholds
Defines whether this pair requires force thresholds.
Definition: PxSolverDefs.h:196
PxU8 frictionCount
The total number of friction patches in this pair.
Definition: PxSolverDefs.h:413
bool hasMaxImpulse
Defines whether this pairs has maxImpulses clamping enabled.
Definition: PxSolverDefs.h:405
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
PxReal maxImpulse
Definition: PxSolverDefs.h:424
#define PX_FORCE_INLINE
Definition: PxPreprocessor.h:346
float PxReal
Definition: PxSimpleTypes.h:78
Definition: PxSolverDefs.h:338
Definition: PxSolverDefs.h:332
PxU8 * frictionPtr
InOut: Friction patch correlation data. Set each frame by solver. Can be retained for improved behavi...
Definition: PxSolverDefs.h:201
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
PxU16 constraintType
The type of constraint this batch references.
Definition: PxSolverDefs.h:108
BodyState bodyState1
In: Defines what kind of actor the second body is.
Definition: PxSolverDefs.h:169
PxU16 numContactPatches
Total number of contact patches.
Definition: PxSolverDefs.h:210
PxTGSSolverBodyVel * tgsBodyB
BodyB pointer.
Definition: PxSolverDefs.h:132
bool disableStrongFriction
Defines whether this pair disables strong friction (sticky friction correlation)
Definition: PxSolverDefs.h:406
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
Gu::ContactPoint * contacts
The start of the contacts for this pair.
Definition: PxSolverDefs.h:402
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
bool disableStrongFriction
Defines whether this pair disables strong friction (sticky friction correlation)
Definition: PxSolverDefs.h:195
PxReal invMass
16 inverse mass
Definition: PxSolverDefs.h:83
PxU16 lockFlags
110 lock flags
Definition: PxSolverDefs.h:91
PxU32 numContacts
The total number of contacs this pair references.
Definition: PxSolverDefs.h:192
PxReal maxContactImpulse
Definition: PxSolverDefs.h:341
const PxTGSSolverBodyData * bodyData0
Definition: PxSolverDefs.h:368
Definition: PxConstraintDesc.h:189
PxReal * contactForces
Out: A buffer for the solver to write applied contact forces to.
Definition: PxSolverDefs.h:415
PxU32 nodeIndex
Definition: PxSolverDefs.h:346
Definition: PxSolverDefs.h:266
PxVec3 cA2w
Location of anchor point A in world space.
Definition: PxSolverDefs.h:393
PxU16 axisConstraintCount
Axis constraint count. Defines how many constraint rows this pair has produced. Useful for statistica...
Definition: PxSolverDefs.h:211
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
PxU32 startContactPatchIndex
The start index of this pair&#39;s contact patches in the correlation buffer. For internal use only...
Definition: PxSolverDefs.h:420
PxU16 maxDynamicPartition
Definition: PxSolverDefs.h:314
PxReal low
Definition: PxSolverDefs.h:300
PxU32 startContactPatchIndex
The start index of this pair&#39;s contact patches in the correlation buffer. For internal use only...
Definition: PxSolverDefs.h:209
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
PxU32 startFrictionPatchIndex
Start index of friction patch in the correlation buffer. Set by friction correlation.
Definition: PxSolverDefs.h:417
PxU16 axisConstraintCount
Axis constraint count. Defines how many constraint rows this pair has produced. Useful for statistica...
Definition: PxSolverDefs.h:422
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
bool hasMaxImpulse
Defines whether this pairs has maxImpulses clamping enabled.
Definition: PxSolverDefs.h:194
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
PxU32 startIndex
Start index for this batch.
Definition: PxSolverDefs.h:106
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 minTorsionalPatchRadius
Definition: PxSolverDefs.h:427
PxReal damping
damping parameter, for spring constraints
Definition: PxConstraintDesc.h:100
PxU16 numContactPatches
Total number of contact patches.
Definition: PxSolverDefs.h:421
class representing a rigid euclidean transform as a quaternion and a vector
Definition: PxTransform.h:48
PxVec3 angularVelocity
Definition: PxSolverDefs.h:315
Definition: PxSolverDefs.h:188
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)
PxU32 numContacts
The total number of contacs this pair references.
Definition: PxSolverDefs.h:403
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
PxReal restDistance
A distance at which the solver should aim to hold the bodies separated. Default is 0...
Definition: PxSolverDefs.h:198
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
PxReal torsionalPatchRadius
Definition: PxSolverDefs.h:426
Enum
Definition: PxSolverDefs.h:268
bool extendedLimits
Indicates whether we want to use extended limits.
Definition: PxSolverDefs.h:183
bool hasForceThresholds
Defines whether this pair requires force thresholds.
Definition: PxSolverDefs.h:407
PxMat33 sqrtInvInertia
68 inverse inertia in world space
Definition: PxSolverDefs.h:86
Sc::ShapeInteraction * shapeInteraction
Pointer to share interaction. Used for force threshold reports in solver. Set to NULL if using immedi...
Definition: PxSolverDefs.h:401
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
Gu::ContactPoint * contacts
The start of the contacts for this pair.
Definition: PxSolverDefs.h:191
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&#39;s transform
Definition: PxSolverDefs.h:90
PxReal maxCCDSeparation
A distance used to configure speculative CCD behavior. Default is PX_MAX_F32. Set internally in PhysX...
Definition: PxSolverDefs.h:199
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
PxReal * contactForces
Out: A buffer for the solver to write applied contact forces to.
Definition: PxSolverDefs.h:204
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&#39;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 restDistance
A distance at which the solver should aim to hold the bodies separated. Default is 0...
Definition: PxSolverDefs.h:409
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
Definition: PxSolverDefs.h:104
PxU32 numRows
The number of rows.
Definition: PxSolverDefs.h:175