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-2021 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  eFIX = 0,
271  ePRISMATIC = 1,
272  eREVOLUTE = 2,
273  eSPHERICAL = 3,
274  eUNDEFINED = 4
275  };
276 };
277 
279 {
280  enum Enum
281  {
282  eFIX_BASE = (1 << 0),
283  eDRIVE_LIMITS_ARE_FORCES = (1<<1)
284  };
285 };
286 
288 PX_FLAGS_OPERATORS(PxArticulationFlag::Enum, PxU8)
289 
291 {
292  enum Enum
293  {
294  eFORCE = 0,
295  eACCELERATION = 1,
296  eTARGET = 2,
297  eVELOCITY = 3,
298  eNONE = 4
299  };
300 };
301 
303 {
304  PxReal low, high;
305 };
306 
308 {
311 };
312 
313 
315 {
316  PX_ALIGN(16, PxVec3) linearVelocity; //12
317  PxU16 nbStaticInteractions; //14 Used to accumulate the number of static interactions
318  PxU16 maxDynamicPartition; //16 Used to accumualte the max partition of dynamic interactions
320  PxU32 partitionMask; //32 Used in partitioning as a bit-field
325  bool isKinematic; //63
326  PxU8 pad; //64
327 
328  PX_FORCE_INLINE PxReal projectVelocity(const PxVec3& lin, const PxVec3& ang) const
329  {
330  return linearVelocity.dot(lin) + angularVelocity.dot(ang);
331  }
332 
333 };
334 
335 //Needed only by prep, integration and 1D constraints
337 {
340 };
341 
343 {
344  PX_ALIGN(16, PxVec3) originalLinearVelocity;
348 
353 
355  {
356  return originalLinearVelocity.dot(linear) + originalAngularVelocity.dot(angular);
357  }
358 };
359 
361 {
363 
365 
368 
371 
374 
377 
380 
381 };
382 
384 {
387 
388  PxReal linBreakForce, angBreakForce;
390  void* writeback;
395 
399 };
400 
401 
403 {
404 
405  Sc::ShapeInteraction* shapeInteraction;
406  Gu::ContactPoint* contacts;
408 
412 
415 
418 
420 
423 
427 
429 
432 };
433 
434 #if !PX_DOXYGEN
435 }
436 #endif
437 
438 #if PX_VC
439 #pragma warning(pop)
440 #endif
441 
442 #endif
443 
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:416
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
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:402
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:414
PxU32 numRows
The number of rows.
Definition: PxSolverDefs.h:386
PxU32 numFrictionPatches
Total number of friction patches in this pair. Set by friction correlation.
Definition: PxSolverDefs.h:422
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:292
Definition: PxSolverDefs.h:307
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:417
bool hasMaxImpulse
Defines whether this pairs has maxImpulses clamping enabled.
Definition: PxSolverDefs.h:409
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
PxReal maxImpulse
Definition: PxSolverDefs.h:428
#define PX_FORCE_INLINE
Definition: PxPreprocessor.h:351
float PxReal
Definition: PxSimpleTypes.h:78
Definition: PxSolverDefs.h:342
Definition: PxSolverDefs.h:336
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:375
PxVec3 cB2w
Location of anchor point B in world space.
Definition: PxSolverDefs.h:398
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:410
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
Gu::ContactPoint * contacts
The start of the contacts for this pair.
Definition: PxSolverDefs.h:406
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
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:345
const PxTGSSolverBodyData * bodyData0
Definition: PxSolverDefs.h:372
Definition: PxConstraintDesc.h:189
PxReal * contactForces
Out: A buffer for the solver to write applied contact forces to.
Definition: PxSolverDefs.h:419
PxU32 nodeIndex
Definition: PxSolverDefs.h:350
Definition: PxSolverDefs.h:266
PxVec3 cA2w
Location of anchor point A in world space.
Definition: PxSolverDefs.h:397
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:367
bool improvedSlerp
Use improved slerp model.
Definition: PxSolverDefs.h:181
Definition: PxSolverDefs.h:314
PxU32 startContactPatchIndex
The start index of this pair&#39;s contact patches in the correlation buffer. For internal use only...
Definition: PxSolverDefs.h:424
PxU16 maxDynamicPartition
Definition: PxSolverDefs.h:318
PxReal low
Definition: PxSolverDefs.h:304
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: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
PxU32 startFrictionPatchIndex
Start index of friction patch in the correlation buffer. Set by friction correlation.
Definition: PxSolverDefs.h:421
PxU16 axisConstraintCount
Axis constraint count. Defines how many constraint rows this pair has produced. Useful for statistica...
Definition: PxSolverDefs.h:426
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
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: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
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: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 minTorsionalPatchRadius
Definition: PxSolverDefs.h:431
PxReal damping
damping parameter, for spring constraints
Definition: PxConstraintDesc.h:100
PxU16 numContactPatches
Total number of contact patches.
Definition: PxSolverDefs.h:425
class representing a rigid euclidean transform as a quaternion and a vector
Definition: PxTransform.h:48
PxVec3 angularVelocity
Definition: PxSolverDefs.h:319
Definition: PxSolverDefs.h:188
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)
PxU32 numContacts
The total number of contacs this pair references.
Definition: PxSolverDefs.h:407
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
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: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
PxReal torsionalPatchRadius
Definition: PxSolverDefs.h:430
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:411
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:405
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
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: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
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:379
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:413
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
Definition: PxSolverDefs.h:104
PxU32 numRows
The number of rows.
Definition: PxSolverDefs.h:175