PxRealreportThreshold;//!< 32 contact force threshold
PxMat33sqrtInvInertia;//!< 68 inverse inertia in world space
PxRealpenBiasClamp;//!< 72 the penetration bias clamp
PxU32nodeIndex;//!< 76 the node idx of this solverBodyData. Used by solver to reference between solver bodies and island bodies. Not required by immediate mode
PxRealmaxContactImpulse;//!< 80 the max contact impulse
PxTransformbody2World;//!< 108 the body's transform
PxRealminResponseThreshold;//!< The minimum response threshold
void*writeback;//!< Pointer to constraint writeback structure. Reports back joint breaking. If not required, set to NULL.
booldisablePreprocessing;//!< Disable joint pre-processing. Pre-processing can improve stability but under certain circumstances, e.g. when some invInertia rows are zero/almost zero, can cause instabilities.
boolimprovedSlerp;//!< Use improved slerp model
booldriveLimitsAreForces;//!< Indicates whether drive limits are forces
boolextendedLimits;//!< Indicates whether we want to use extended limits
boolhasForceThresholds;//!< Defines whether this pair requires force thresholds
PxRealrestDistance;//!< A distance at which the solver should aim to hold the bodies separated. Default is 0
PxRealmaxCCDSeparation;//!< A distance used to configure speculative CCD behavior. Default is PX_MAX_F32. Set internally in PhysX for bodies with eENABLE_SPECULATIVE_CCD on. Do not set directly!
PxU8*frictionPtr;//!< InOut: Friction patch correlation data. Set each frame by solver. Can be retained for improved behavior or discarded each frame.
PxU8frictionCount;//!< The total number of friction patches in this pair
PxReal*contactForces;//!< Out: A buffer for the solver to write applied contact forces to.
PxU32startFrictionPatchIndex;//!< Start index of friction patch in the correlation buffer. Set by friction correlation
PxU32numFrictionPatches;//!< Total number of friction patches in this pair. Set by friction correlation
PxU32startContactPatchIndex;//!< The start index of this pair's contact patches in the correlation buffer. For internal use only
PxU16numContactPatches;//!< Total number of contact patches.
PxU16axisConstraintCount;//!< Axis constraint count. Defines how many constraint rows this pair has produced. Useful for statistical purposes.
PxRealoffsetSlop;//!< Slop value used to snap contact line of action back in-line with the COM.
eFIX=0,//!< All joint axes, i.e. degrees of freedom (DOFs) locked
ePRISMATIC=1,//!< Single linear DOF, e.g. cart on a rail
eREVOLUTE=2,//!< Single rotational DOF, e.g. an elbow joint or a rotational motor, position wrapped at 2pi radians
eREVOLUTE_UNWRAPPED=3,//!< Single rotational DOF, e.g. an elbow joint or a rotational motor, position not wrapped
eSPHERICAL=4,//!< Ball and socket joint with two or three DOFs
eUNDEFINED=5
};
};
structPxArticulationFlag
{
enumEnum
{
eFIX_BASE=(1<<0),//!< Set articulation base to be fixed.
eDRIVE_LIMITS_ARE_FORCES=(1<<1),//!< Limits for drive effort are forces and torques rather than impulses, see PxArticulationDrive::maxForce.
eDISABLE_SELF_COLLISION=(1<<2),//!< Disable collisions between the articulation's links (note that parent/child collisions are disabled internally in either case).
eCOMPUTE_JOINT_FORCES=(1<<3)//!< Enable in order to be able to query joint solver (i.e. constraint) forces using PxArticulationCache::jointSolverForces.
eFORCE=0,//!< The output of the implicit spring drive controller is a force/torque.
eACCELERATION=1,//!< The output of the implicit spring drive controller is a joint acceleration (use this to get (spatial)-inertia-invariant behavior of the drive).
eTARGET=2,//!< Sets the drive gains internally to track a target position almost kinematically (i.e. with very high drive gains).
eVELOCITY=3,//!< Sets the drive gains internally to track a target velocity almost kinematically (i.e. with very high drive gains).
PxRealpenBiasClamp;//!< The penetration bias clamp.
PxRealinvMass;//!< Inverse mass.
PxU32nodeIndex;//!< The node idx of this solverBodyData. Used by solver to reference between solver bodies and island bodies. Not required by immediate mode.
PxRealreportThreshold;//!< Contact force threshold.
PxConstraintInvMassScaleinvMassScales;//!< In: The local mass scaling for this pair.
PxSolverConstraintDesc*desc;//!< Output: The PxSolverConstraintDesc filled in by contact prep
constPxTGSSolverBodyVel*body0;//!< In: The first body. Stores velocity information. Unused unless contact involves articulations.
constPxTGSSolverBodyVel*body1;//!< In: The second body. Stores velocity information. Unused unless contact involves articulations.
constPxTGSSolverBodyTxInertia*body0TxI;//!< In: The first PxTGSSolverBodyTxInertia. Stores the delta body to world transform and sqrtInvInertia for first body.
constPxTGSSolverBodyTxInertia*body1TxI;//!< In: The second PxTGSSolverBodyTxInertia. Stores the delta body to world transform and sqrtInvInertia for second body.
constPxTGSSolverBodyData*bodyData0;//!< In: The first PxTGSSolverBodyData. Stores mass and miscellaneous information for the first body.
constPxTGSSolverBodyData*bodyData1;//!< In: The second PxTGSSolverBodyData. Stores mass and miscellaneous information for the second body.
PxTransformbodyFrame0;//!< In: The world-space transform of the first body.
PxTransformbodyFrame1;//!< In: The world-space transform of the second body.
PxSolverContactDesc::BodyStatebodyState0;//!< In: Defines what kind of actor the first body is
PxSolverContactDesc::BodyStatebodyState1;//!< In: Defines what kind of actor the second body is
PxRealminResponseThreshold;//!< The minimum response threshold
void*writeback;//!< Pointer to constraint writeback structure. Reports back joint breaking. If not required, set to NULL.
booldisablePreprocessing;//!< Disable joint pre-processing. Pre-processing can improve stability but under certain circumstances, e.g. when some invInertia rows are zero/almost zero, can cause instabilities.
boolimprovedSlerp;//!< Use improved slerp model
booldriveLimitsAreForces;//!< Indicates whether drive limits are forces
boolextendedLimits;//!< Indicates whether extended limits are used
booldisableConstraint;//!< Disables constraint
PxVec3pbody0WorldOffset;//!< Body0 world offset
PxVec3pcA2w;//!< Location of anchor point A in world space
PxVec3pcB2w;//!< Location of anchor point B in world space
boolhasForceThresholds;//!< Defines whether this pair requires force thresholds
PxRealrestDistance;//!< A distance at which the solver should aim to hold the bodies separated. Default is 0
PxRealmaxCCDSeparation;//!< A distance used to configure speculative CCD behavior. Default is PX_MAX_F32. Set internally in PhysX for bodies with eENABLE_SPECULATIVE_CCD on. Do not set directly!
PxU8*frictionPtr;//!< InOut: Friction patch correlation data. Set each frame by solver. Can be retained for improved behavior or discarded each frame.
PxU8frictionCount;//!< The total number of friction patches in this pair
PxReal*contactForces;//!< Out: A buffer for the solver to write applied contact forces to.
PxU32startFrictionPatchIndex;//!< Start index of friction patch in the correlation buffer. Set by friction correlation
PxU32numFrictionPatches;//!< Total number of friction patches in this pair. Set by friction correlation
PxU32startContactPatchIndex;//!< The start index of this pair's contact patches in the correlation buffer. For internal use only
PxU16numContactPatches;//!< Total number of contact patches.
PxU16axisConstraintCount;//!< Axis constraint count. Defines how many constraint rows this pair has produced. Useful for statistical purposes.
PxRealmaxImpulse;//!< The maximum impulse the solver is allowed to introduce for this pair of bodies.
PxRealtorsionalPatchRadius;//!< This defines the radius of the contact patch used to apply torsional friction.
PxRealminTorsionalPatchRadius;//!< This defines the minimum radius of the contact patch used to apply torsional friction.
PxRealoffsetSlop;//!< Slop value used to snap contact line of action back in-line with the COM.