29#ifndef DY_SOLVER_CONSTRAINT_1D_STEP_H
30#define DY_SOLVER_CONSTRAINT_1D_STEP_H
32#include "foundation/PxVec3.h"
34#include "DyArticulationUtils.h"
35#include "DySolverConstraintTypes.h"
36#include "DySolverBody.h"
37#include "PxConstraintDesc.h"
38#include "DySolverConstraintDesc.h"
47 enum DySolverContactFlags
49 eHAS_FORCE_THRESHOLDS = 0x1
55 PxU8 numFrictionConstr;
61 Vec4V staticFrictionX_dynamicFrictionY_dominance0Z_dominance1W;
66 PxReal minNormalForce;
68 PxU8* frictionBrokenWritebackByte;
74 PX_FORCE_INLINE FloatV getStaticFriction()
const {
return V4GetX(staticFrictionX_dynamicFrictionY_dominance0Z_dominance1W); }
75 PX_FORCE_INLINE FloatV getDynamicFriction()
const {
return V4GetY(staticFrictionX_dynamicFrictionY_dominance0Z_dominance1W); }
76 PX_FORCE_INLINE FloatV getDominance0()
const {
return V4GetZ(staticFrictionX_dynamicFrictionY_dominance0Z_dominance1W); }
77 PX_FORCE_INLINE FloatV getDominance1()
const {
return V4GetW(staticFrictionX_dynamicFrictionY_dominance0Z_dominance1W); }
87 PxF32 biasCoefficient;
102 Vec4V normalXYZ_ErrorW;
103 Vec4V raXnI_targetVelW;
104 Vec4V rbXnI_velMultiplierW;
107 PxReal frictionScale;
127 PxReal linBreakImpulse;
128 PxReal angBreakImpulse;
135 PxReal linearInvMassScale0;
138 PxReal angularInvMassScale0;
140 PxReal linearInvMassScale1;
141 PxReal angularInvMassScale1;
145 PxVec4 angOrthoAxis0_recipResponseW[3];
147 PxVec4 angOrthoAxis1_Error[3];
156 h.type = PxU8(isExtended ? DY_SC_TYPE_EXT_1D : DY_SC_TYPE_RB_1D);
159 h.linearInvMassScale0 = ims.
linear0;
160 h.angularInvMassScale0 = ims.
angular0;
161 h.linearInvMassScale1 = -ims.
linear1;
162 h.angularInvMassScale1 = -ims.
angular1;
188 PxReal recipResponse;
189 PxReal angularErrorScale;
191 } PX_ALIGN_SUFFIX(16);
203 PxReal _minImpulse, PxReal _maxImpulse)
211 c.minImpulse = _minImpulse;
212 c.maxImpulse = _maxImpulse;
215 c.angularErrorScale = 1.f;
3 Element vector class.
Definition PxVec3.h:50
PX_CUDA_CALLABLE PX_INLINE bool isFinite() const
returns true if all 3 elems of the vector are finite (not NAN or INF, etc.)
Definition PxVec3.h:156
Definition ScShapeInteraction.h:54
#define PX_FORCE_INLINE
Definition PxPreprocessor.h:335
Sorts an array of objects in ascending order, assuming that the predicate implements the < operator:
Definition PxBoxController.h:39
Definition CmSpatialVector.h:483
Definition DySolverConstraint1DStep.h:194
Definition DySolverConstraint1DStep.h:168
PxVec3 lin1
linear velocity projection (body 1)
Definition DySolverConstraint1DStep.h:173
PxReal maxImpulse
Upper bound on impulse magnitude.
Definition DySolverConstraint1DStep.h:183
PxVec3 ang0
angular velocity projection (body 0)
Definition DySolverConstraint1DStep.h:176
PxReal appliedForce
applied force to correct velocity+bias
Definition DySolverConstraint1DStep.h:184
PxReal velMultiplier
constraint velocity multiplier
Definition DySolverConstraint1DStep.h:177
PxVec3 lin0
linear velocity projection (body 0)
Definition DySolverConstraint1DStep.h:170
PxReal error
constraint error term - must be scaled by biasScale. Can be adjusted at run-time
Definition DySolverConstraint1DStep.h:171
PxReal biasScale
constraint constant bias scale. Constant
Definition DySolverConstraint1DStep.h:174
PxReal minImpulse
Lower bound on impulse magnitude
Definition DySolverConstraint1DStep.h:182
PxReal velTarget
Scaled target velocity of the constraint drive.
Definition DySolverConstraint1DStep.h:180
PxVec3 ang1
angular velocity projection (body 1)
Definition DySolverConstraint1DStep.h:179
Struct for specifying mass scaling for a pair of rigids.
Definition PxConstraintDesc.h:184
PxReal angular1
multiplier for inverse MoI of body1
Definition PxConstraintDesc.h:195
PxReal linear0
multiplier for inverse mass of body0
Definition PxConstraintDesc.h:192
PxReal angular0
multiplier for inverse MoI of body0
Definition PxConstraintDesc.h:193
PxReal linear1
multiplier for inverse mass of body1
Definition PxConstraintDesc.h:194
Definition PxVecMathAoSScalar.h:52
Definition PxVecMathAoSScalar.h:77
Definition PxVecMathAoSScalar.h:65