RavEngine
Loading...
Searching...
No Matches
PxSolverDefs.h
1// Redistribution and use in source and binary forms, with or without
2// modification, are permitted provided that the following conditions
3// are met:
4// * Redistributions of source code must retain the above copyright
5// notice, this list of conditions and the following disclaimer.
6// * Redistributions in binary form must reproduce the above copyright
7// notice, this list of conditions and the following disclaimer in the
8// documentation and/or other materials provided with the distribution.
9// * Neither the name of NVIDIA CORPORATION nor the names of its
10// contributors may be used to endorse or promote products derived
11// from this software without specific prior written permission.
12//
13// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY
14// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
17// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24//
25// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved.
26// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
27// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
28
29#ifndef PX_SOLVER_DEFS_H
30#define PX_SOLVER_DEFS_H
31
32#include "PxPhysXConfig.h"
33#include "foundation/PxVec3.h"
34#include "foundation/PxMat33.h"
35#include "foundation/PxTransform.h"
36#include "PxConstraintDesc.h"
37#include "geomutils/PxContactPoint.h"
38
39#if PX_VC
40#pragma warning(push)
41#pragma warning(disable : 4324) // structure was padded due to alignment
42#endif
43
44#if !PX_DOXYGEN
45namespace physx
46{
47#endif
48
49struct PxTGSSolverBodyVel;
50
68PX_COMPILE_TIME_ASSERT(sizeof(PxSolverBody) == 32);
69
74{
75 PX_ALIGN(16, PxVec3 linearVelocity);
76 PxReal invMass;
80 PxReal penBiasClamp;
81 PxU32 nodeIndex;
84 PxU16 pad;
85
86 PX_FORCE_INLINE PxReal projectVelocity(const PxVec3& lin, const PxVec3& ang) const
87 {
88 return linearVelocity.dot(lin) + angularVelocity.dot(ang);
89 }
90};
91PX_COMPILE_TIME_ASSERT(0 == (sizeof(PxSolverBodyData) & 15));
92
93//----------------------------------
103
108{
109 static const PxU16 RIGID_BODY = 0xffff;
110
116
117 union
118 {
122 };
123
124 union
125 {
129 };
132
136 void* writeBack;
137
138 PxU16 progressA;
139 PxU16 progressB;
141 PxU8 padding[10];
142};
143
148{
149 enum BodyState
150 {
151 eDYNAMIC_BODY = 1 << 0,
152 eSTATIC_BODY = 1 << 1,
153 eKINEMATIC_BODY = 1 << 2,
154 eARTICULATION = 1 << 3
155 };
156
158
160
163
166
169
170 BodyState bodyState0;
171 BodyState bodyState1;
172};
173
193
225
227{
228public:
234 virtual PxU8* reserveConstraintData(const PxU32 byteSize) = 0;
235
242 virtual PxU8* reserveFrictionData(const PxU32 byteSize) = 0;
243
244 virtual ~PxConstraintAllocator() {}
245};
246
250{
251 enum Enum
252 {
253 eTWIST = 0,
256 eX = 3,
257 eY = 4,
258 eZ = 5,
259 eCOUNT = 6
260 };
261};
262
263PX_FLAGS_OPERATORS(PxArticulationAxis::Enum, PxU8)
264
266{
267 enum Enum
268 {
269 eLOCKED = 0,
270 eLIMITED = 1,
271 eFREE = 2
272 };
273};
274
275typedef PxFlags<PxArticulationMotion::Enum, PxU8> PxArticulationMotions;
276PX_FLAGS_OPERATORS(PxArticulationMotion::Enum, PxU8)
277
279{
280 enum Enum
281 {
282 eFIX = 0,
283 ePRISMATIC = 1,
284 eREVOLUTE = 2,
285 eREVOLUTE_UNWRAPPED = 3,
286 eSPHERICAL = 4,
287 eUNDEFINED = 5
288 };
289};
290
292{
300};
301
302typedef PxFlags<PxArticulationFlag::Enum, PxU8> PxArticulationFlags;
303PX_FLAGS_OPERATORS(PxArticulationFlag::Enum, PxU8)
304
306{
307 enum Enum
308 {
309 eFORCE = 0,
310 eACCELERATION = 1,
311 eTARGET = 2,
312 eVELOCITY = 3,
313 eNONE = 4
314 };
315};
316
327{
329
330 PxArticulationLimit(const PxReal low_, const PxReal high_)
331 {
332 low = low_;
333 high = high_;
334 }
335
342 PxReal low;
343
350 PxReal high;
351};
352
359{
361
362 PxArticulationDrive(const PxReal stiffness_, const PxReal damping_, const PxReal maxForce_, PxArticulationDriveType::Enum driveType_=PxArticulationDriveType::eFORCE)
363 {
364 stiffness = stiffness_;
365 damping = damping_;
366 maxForce = maxForce_;
367 driveType = driveType_;
368 }
369
381 PxReal stiffness;
382
394 PxReal damping;
395
407 PxReal maxForce;
408
415};
419{
420 PX_ALIGN(16, PxVec3) linearVelocity; //12
421 PxU16 nbStaticInteractions; //14 Used to accumulate the number of static interactions
422 PxU16 maxDynamicPartition; //16 Used to accumulate the max partition of dynamic interactions
423 PxVec3 angularVelocity; //28
424 PxU32 partitionMask; //32 Used in partitioning as a bit-field
425 PxVec3 deltaAngDt; //44
426 PxReal maxAngVel; //48
427 PxVec3 deltaLinDt; //60
428 PxU16 lockFlags; //62
429 bool isKinematic; //63
430 PxU8 pad; //64
431
432 PX_FORCE_INLINE PxReal projectVelocity(const PxVec3& lin, const PxVec3& ang) const
433 {
434 return linearVelocity.dot(lin) + angularVelocity.dot(ang);
435 }
436};
437
438//Needed only by prep, integration and 1D constraints
440{
441 PxTransform deltaBody2World;
443};
444
446{
447 PX_ALIGN(16, PxVec3) originalLinearVelocity;
451
452 PxReal invMass;
453 PxU32 nodeIndex;
455 PxU32 pad;
456
457 PxReal projectVelocity(const PxVec3& linear, const PxVec3& angular) const
458 {
459 return originalLinearVelocity.dot(linear) + originalAngularVelocity.dot(angular);
460 }
461};
462
484
503
535
536#if !PX_DOXYGEN
537}
538#endif
539
540#if PX_VC
541#pragma warning(pop)
542#endif
543
544#endif
545
Definition PxSolverDefs.h:227
virtual PxU8 * reserveFrictionData(const PxU32 byteSize)=0
Allocates friction data. Friction data can be retained by the application for a given pair and provid...
virtual PxU8 * reserveConstraintData(const PxU32 byteSize)=0
Allocates constraint data. It is the application's responsibility to release this memory after PxSolv...
3x3 matrix class
Definition PxMat33.h:91
class representing a rigid euclidean transform as a quaternion and a vector
Definition PxTransform.h:49
A padded version of PxVec3, to safely load its data using SIMD.
Definition PxVec3.h:392
3 Element vector class.
Definition PxVec3.h:50
PX_CUDA_CALLABLE PX_FORCE_INLINE float dot(const PxVec3 &v) const
returns the scalar product of this and other.
Definition PxVec3.h:276
#define PX_FORCE_INLINE
Definition PxPreprocessor.h:335
#define PX_ALIGN(alignment, decl)
Definition PxPreprocessor.h:402
#define PX_COMPILE_TIME_ASSERT(exp)
Definition PxPreprocessor.h:428
Sorts an array of objects in ascending order, assuming that the predicate implements the < operator:
Definition PxBoxController.h:39
A one-dimensional constraint.
Definition PxConstraintDesc.h:134
Definition PxSolverDefs.h:250
Enum
Definition PxSolverDefs.h:252
@ eSWING2
Rotational about eZ.
Definition PxSolverDefs.h:255
@ eTWIST
Rotational about eX.
Definition PxSolverDefs.h:253
@ eSWING1
Rotational about eY.
Definition PxSolverDefs.h:254
@ eY
Linear in eY.
Definition PxSolverDefs.h:257
@ eX
Linear in eX.
Definition PxSolverDefs.h:256
@ eZ
Linear in eZ.
Definition PxSolverDefs.h:258
Definition PxSolverDefs.h:306
Enum
Definition PxSolverDefs.h:308
@ eFORCE
The output of the implicit spring drive controller is a force/torque.
Definition PxSolverDefs.h:309
Data structure for articulation joint drive configuration.
Definition PxSolverDefs.h:359
PxArticulationDriveType::Enum driveType
The drive type.
Definition PxSolverDefs.h:414
PxReal stiffness
The drive stiffness, i.e. the proportional gain of the implicit PD controller.
Definition PxSolverDefs.h:381
PxReal damping
The drive damping, i.e. the derivative gain of the implicit PD controller.
Definition PxSolverDefs.h:394
PxReal maxForce
The drive force limit.
Definition PxSolverDefs.h:407
Definition PxSolverDefs.h:292
Enum
Definition PxSolverDefs.h:294
@ eFIX_BASE
Set articulation base to be fixed.
Definition PxSolverDefs.h:295
@ eCOMPUTE_JOINT_FORCES
Enable in order to be able to query joint solver (i.e. constraint) forces using PxArticulationCache::...
Definition PxSolverDefs.h:298
@ eDRIVE_LIMITS_ARE_FORCES
Limits for drive effort are forces and torques rather than impulses, see PxArticulationDrive::maxForc...
Definition PxSolverDefs.h:296
@ eDISABLE_SELF_COLLISION
Disable collisions between the articulation's links (note that parent/child collisions are disabled i...
Definition PxSolverDefs.h:297
Definition PxSolverDefs.h:279
Enum
Definition PxSolverDefs.h:281
Data structure to set articulation joint limits.
Definition PxSolverDefs.h:327
PxReal high
The higher limit on the joint axis position.
Definition PxSolverDefs.h:350
PxReal low
The lower limit on the joint axis position.
Definition PxSolverDefs.h:342
Definition PxSolverDefs.h:266
Enum
Definition PxSolverDefs.h:268
A header that defines the size of a specific batch of constraints (of same type and without dependenc...
Definition PxSolverDefs.h:98
PxU16 stride
Number of constraints in this batch (range: 1-4)
Definition PxSolverDefs.h:100
PxU32 startIndex
Start index for this batch.
Definition PxSolverDefs.h:99
PxU16 constraintType
The type of constraint this batch references.
Definition PxSolverDefs.h:101
Struct for specifying mass scaling for a pair of rigids.
Definition PxConstraintDesc.h:184
Definition PxContactPoint.h:40
Struct that the solver uses to store the state and other properties of a body.
Definition PxSolverDefs.h:74
PxTransform body2World
108 the body's transform
Definition PxSolverDefs.h:83
PxVec3 angularVelocity
28 Pre-solver angular velocity
Definition PxSolverDefs.h:77
PxReal penBiasClamp
72 the penetration bias clamp
Definition PxSolverDefs.h:80
PxU32 nodeIndex
76 the node idx of this solverBodyData. Used by solver to reference between solver bodies and island ...
Definition PxSolverDefs.h:81
PxReal maxContactImpulse
80 the max contact impulse
Definition PxSolverDefs.h:82
PxReal reportThreshold
32 contact force threshold
Definition PxSolverDefs.h:78
PX_ALIGN(16, PxVec3 linearVelocity)
12 Pre-solver linear velocity
PxMat33 sqrtInvInertia
68 inverse inertia in world space
Definition PxSolverDefs.h:79
PxReal invMass
16 inverse mass
Definition PxSolverDefs.h:76
PxU16 pad
112 pad
Definition PxSolverDefs.h:84
Struct that the solver uses to store velocity updates for a body.
Definition PxSolverDefs.h:55
PxVec3 angularState
Delta angular velocity state computed by the solver.
Definition PxSolverDefs.h:60
PxU16 maxSolverFrictionProgress
Progress counter used by constraint batching and parallel island solver.
Definition PxSolverDefs.h:58
PX_ALIGN(16, PxVec3) linearVelocity
Delta linear velocity computed by the solver.
PxU32 solverProgress
Progress counter used by constraint batching and parallel island solver.
Definition PxSolverDefs.h:62
PxU16 maxSolverNormalProgress
Progress counter used by constraint batching and parallel island solver.
Definition PxSolverDefs.h:57
Constraint descriptor used inside the solver.
Definition PxSolverDefs.h:108
ConstraintType
Definition PxSolverDefs.h:112
@ eCONTACT_CONSTRAINT
Defines this pair is a contact constraint.
Definition PxSolverDefs.h:113
@ eJOINT_CONSTRAINT
Defines this pair is a joint constraint.
Definition PxSolverDefs.h:114
PxSolverBody * bodyA
bodyA pointer
Definition PxSolverDefs.h:119
PxTGSSolverBodyVel * tgsBodyA
bodyA pointer
Definition PxSolverDefs.h:120
void * articulationA
Articulation pointer for body A.
Definition PxSolverDefs.h:121
void * articulationB
Articulation pointer for body B.
Definition PxSolverDefs.h:128
PxU32 bodyBDataIndex
Body B's index into the SolverBodyData array.
Definition PxSolverDefs.h:131
PxU8 * constraint
Pointer to the constraint rows to be solved.
Definition PxSolverDefs.h:135
PxTGSSolverBodyVel * tgsBodyB
BodyB pointer.
Definition PxSolverDefs.h:127
PxU16 constraintLengthOver16
constraintLength/16, max constraint length is 1MB, allows PxSolverConstraintDesc to fit in 32 bytes
Definition PxSolverDefs.h:140
PxSolverBody * bodyB
BodyB pointer.
Definition PxSolverDefs.h:126
PxU32 linkIndexB
Link index defining which link in Articulation B this constraint affects. If not an articulation,...
Definition PxSolverDefs.h:134
void * writeBack
Pointer to the writeback structure results for this given constraint are to be written to.
Definition PxSolverDefs.h:136
PxU32 bodyADataIndex
Body A's index into the SolverBodyData array.
Definition PxSolverDefs.h:130
PxU16 progressB
Internal progress counter.
Definition PxSolverDefs.h:139
PxU32 linkIndexA
Link index defining which link in Articulation A this constraint affects. If not an articulation,...
Definition PxSolverDefs.h:133
PxU16 progressA
Internal progress counter.
Definition PxSolverDefs.h:138
Data structure used for preparing constraints before solving them.
Definition PxSolverDefs.h:148
const PxSolverBodyData * data1
In: The second PxSolverBodyData. Stores mass and miscellaneous information for the second body.
Definition PxSolverDefs.h:165
const PxSolverBody * body0
In: The first body. Stores velocity information. Unused unless contact involves articulations.
Definition PxSolverDefs.h:161
PxSolverConstraintDesc * desc
Output: The PxSolverConstraintDesc filled in by contact prep.
Definition PxSolverDefs.h:159
PxConstraintInvMassScale invMassScales
In: The local mass scaling for this pair.
Definition PxSolverDefs.h:157
const PxSolverBodyData * data0
In: The first PxSolverBodyData. Stores mass and miscellaneous information for the first body.
Definition PxSolverDefs.h:164
PxTransform bodyFrame0
In: The world-space transform of the first body.
Definition PxSolverDefs.h:167
BodyState bodyState1
In: Defines what kind of actor the second body is.
Definition PxSolverDefs.h:171
const PxSolverBody * body1
In: The second body. Stores velocity information. Unused unless contact involves articulations.
Definition PxSolverDefs.h:162
BodyState bodyState0
In: Defines what kind of actor the first body is.
Definition PxSolverDefs.h:170
PxTransform bodyFrame1
In: The world-space transform of the second body.
Definition PxSolverDefs.h:168
Data structure used for preparing constraints before solving them.
Definition PxSolverDefs.h:178
PxU32 numRows
The number of rows.
Definition PxSolverDefs.h:180
PX_ALIGN(16, Px1DConstraint *rows)
The start of the constraint rows.
bool driveLimitsAreForces
Indicates whether drive limits are forces.
Definition PxSolverDefs.h:187
void * writeback
Pointer to constraint writeback structure. Reports back joint breaking. If not required,...
Definition PxSolverDefs.h:184
PxReal minResponseThreshold
The minimum response threshold.
Definition PxSolverDefs.h:183
bool extendedLimits
Indicates whether we want to use extended limits.
Definition PxSolverDefs.h:188
PxVec3p body0WorldOffset
Body0 world offset.
Definition PxSolverDefs.h:191
bool disableConstraint
Disables constraint.
Definition PxSolverDefs.h:189
bool improvedSlerp
Use improved slerp model.
Definition PxSolverDefs.h:186
bool disablePreprocessing
Disable joint pre-processing. Pre-processing can improve stability but under certain circumstances,...
Definition PxSolverDefs.h:185
PxReal angBreakForce
Break forces.
Definition PxSolverDefs.h:182
Data structure used for preparing constraints before solving them.
Definition PxSolverDefs.h:198
bool disableStrongFriction
Defines whether this pair disables strong friction (sticky friction correlation)
Definition PxSolverDefs.h:204
PxU8 * frictionPtr
InOut: Friction patch correlation data. Set each frame by solver. Can be retained for improved behavi...
Definition PxSolverDefs.h:210
PxReal restDistance
A distance at which the solver should aim to hold the bodies separated. Default is 0.
Definition PxSolverDefs.h:207
PxU32 startFrictionPatchIndex
Start index of friction patch in the correlation buffer. Set by friction correlation.
Definition PxSolverDefs.h:215
void * shapeInteraction
Pointer to shape interaction. Used for force threshold reports in solver. Set to NULL if using immedi...
Definition PxSolverDefs.h:199
bool hasMaxImpulse
Defines whether this pairs has maxImpulses clamping enabled.
Definition PxSolverDefs.h:203
PxReal maxCCDSeparation
A distance used to configure speculative CCD behavior. Default is PX_MAX_F32. Set internally in PhysX...
Definition PxSolverDefs.h:208
PxU32 numContacts
The total number of contacts this pair references.
Definition PxSolverDefs.h:201
PxU32 startContactPatchIndex
The start index of this pair's contact patches in the correlation buffer. For internal use only.
Definition PxSolverDefs.h:218
PxU16 axisConstraintCount
Axis constraint count. Defines how many constraint rows this pair has produced. Useful for statistica...
Definition PxSolverDefs.h:220
PxReal * contactForces
Out: A buffer for the solver to write applied contact forces to.
Definition PxSolverDefs.h:213
PxReal offsetSlop
Slop value used to snap contact line of action back in-line with the COM.
Definition PxSolverDefs.h:222
PxU16 numContactPatches
Total number of contact patches.
Definition PxSolverDefs.h:219
PxContactPoint * contacts
The start of the contacts for this pair.
Definition PxSolverDefs.h:200
bool hasForceThresholds
Defines whether this pair requires force thresholds.
Definition PxSolverDefs.h:205
PxU32 numFrictionPatches
Total number of friction patches in this pair. Set by friction correlation.
Definition PxSolverDefs.h:216
PxU8 frictionCount
The total number of friction patches in this pair.
Definition PxSolverDefs.h:211
Definition PxSolverDefs.h:446
PxReal penBiasClamp
The penetration bias clamp.
Definition PxSolverDefs.h:450
PxReal maxContactImpulse
The max contact impulse.
Definition PxSolverDefs.h:448
PxVec3 originalAngularVelocity
Pre-solver angular velocity.
Definition PxSolverDefs.h:449
PxU32 nodeIndex
The node idx of this solverBodyData. Used by solver to reference between solver bodies and island bod...
Definition PxSolverDefs.h:453
PX_ALIGN(16, PxVec3) originalLinearVelocity
Pre-solver linear velocity.
PxReal reportThreshold
Contact force threshold.
Definition PxSolverDefs.h:454
PxReal invMass
Inverse mass.
Definition PxSolverDefs.h:452
Definition PxSolverDefs.h:440
PxMat33 sqrtInvInertia
inverse inertia in world space
Definition PxSolverDefs.h:442
Definition PxSolverDefs.h:419
Definition PxSolverDefs.h:464
PxSolverContactDesc::BodyState bodyState0
In: Defines what kind of actor the first body is.
Definition PxSolverDefs.h:481
const PxTGSSolverBodyTxInertia * body0TxI
In: The first PxTGSSolverBodyTxInertia. Stores the delta body to world transform and sqrtInvInertia f...
Definition PxSolverDefs.h:472
const PxTGSSolverBodyVel * body0
In: The first body. Stores velocity information. Unused unless contact involves articulations.
Definition PxSolverDefs.h:469
const PxTGSSolverBodyData * bodyData0
In: The first PxTGSSolverBodyData. Stores mass and miscellaneous information for the first body.
Definition PxSolverDefs.h:475
PxTransform bodyFrame0
In: The world-space transform of the first body.
Definition PxSolverDefs.h:478
const PxTGSSolverBodyData * bodyData1
In: The second PxTGSSolverBodyData. Stores mass and miscellaneous information for the second body.
Definition PxSolverDefs.h:476
const PxTGSSolverBodyTxInertia * body1TxI
In: The second PxTGSSolverBodyTxInertia. Stores the delta body to world transform and sqrtInvInertia ...
Definition PxSolverDefs.h:473
PxTransform bodyFrame1
In: The world-space transform of the second body.
Definition PxSolverDefs.h:479
PxSolverContactDesc::BodyState bodyState1
In: Defines what kind of actor the second body is.
Definition PxSolverDefs.h:482
const PxTGSSolverBodyVel * body1
In: The second body. Stores velocity information. Unused unless contact involves articulations.
Definition PxSolverDefs.h:470
PxConstraintInvMassScale invMassScales
In: The local mass scaling for this pair.
Definition PxSolverDefs.h:465
PxSolverConstraintDesc * desc
Output: The PxSolverConstraintDesc filled in by contact prep.
Definition PxSolverDefs.h:467
Definition PxSolverDefs.h:486
PxReal angBreakForce
Break forces.
Definition PxSolverDefs.h:490
bool disableConstraint
Disables constraint.
Definition PxSolverDefs.h:497
PxVec3p cA2w
Location of anchor point A in world space.
Definition PxSolverDefs.h:500
bool extendedLimits
Indicates whether extended limits are used.
Definition PxSolverDefs.h:496
PxReal minResponseThreshold
The minimum response threshold.
Definition PxSolverDefs.h:491
bool disablePreprocessing
Disable joint pre-processing. Pre-processing can improve stability but under certain circumstances,...
Definition PxSolverDefs.h:493
void * writeback
Pointer to constraint writeback structure. Reports back joint breaking. If not required,...
Definition PxSolverDefs.h:492
PxVec3p body0WorldOffset
Body0 world offset.
Definition PxSolverDefs.h:499
PxVec3p cB2w
Location of anchor point B in world space.
Definition PxSolverDefs.h:501
PxU32 numRows
The number of rows.
Definition PxSolverDefs.h:488
bool driveLimitsAreForces
Indicates whether drive limits are forces.
Definition PxSolverDefs.h:495
Px1DConstraint * rows
The start of the constraint rows.
Definition PxSolverDefs.h:487
bool improvedSlerp
Use improved slerp model.
Definition PxSolverDefs.h:494
Definition PxSolverDefs.h:505
PxReal maxImpulse
The maximum impulse the solver is allowed to introduce for this pair of bodies.
Definition PxSolverDefs.h:529
PxReal restDistance
A distance at which the solver should aim to hold the bodies separated. Default is 0.
Definition PxSolverDefs.h:514
PxReal minTorsionalPatchRadius
This defines the minimum radius of the contact patch used to apply torsional friction.
Definition PxSolverDefs.h:532
PxReal torsionalPatchRadius
This defines the radius of the contact patch used to apply torsional friction.
Definition PxSolverDefs.h:531
PxU16 axisConstraintCount
Axis constraint count. Defines how many constraint rows this pair has produced. Useful for statistica...
Definition PxSolverDefs.h:527
PxReal offsetSlop
Slop value used to snap contact line of action back in-line with the COM.
Definition PxSolverDefs.h:533
bool hasMaxImpulse
Defines whether this pairs has maxImpulses clamping enabled.
Definition PxSolverDefs.h:510
bool disableStrongFriction
Defines whether this pair disables strong friction (sticky friction correlation)
Definition PxSolverDefs.h:511
PxU32 startContactPatchIndex
The start index of this pair's contact patches in the correlation buffer. For internal use only.
Definition PxSolverDefs.h:525
void * shapeInteraction
Pointer to shape interaction. Used for force threshold reports in solver. Set to NULL if using immedi...
Definition PxSolverDefs.h:506
PxU32 numContacts
The total number of contacts this pair references.
Definition PxSolverDefs.h:508
PxU32 startFrictionPatchIndex
Start index of friction patch in the correlation buffer. Set by friction correlation.
Definition PxSolverDefs.h:522
PxU8 frictionCount
The total number of friction patches in this pair.
Definition PxSolverDefs.h:518
PxU8 * frictionPtr
InOut: Friction patch correlation data. Set each frame by solver. Can be retained for improved behavi...
Definition PxSolverDefs.h:517
PxU32 numFrictionPatches
Total number of friction patches in this pair. Set by friction correlation.
Definition PxSolverDefs.h:523
PxReal * contactForces
Out: A buffer for the solver to write applied contact forces to.
Definition PxSolverDefs.h:520
PxReal maxCCDSeparation
A distance used to configure speculative CCD behavior. Default is PX_MAX_F32. Set internally in PhysX...
Definition PxSolverDefs.h:515
bool hasForceThresholds
Defines whether this pair requires force thresholds.
Definition PxSolverDefs.h:512
PxContactPoint * contacts
The start of the contacts for this pair.
Definition PxSolverDefs.h:507
PxU16 numContactPatches
Total number of contact patches.
Definition PxSolverDefs.h:526