RavEngine
Loading...
Searching...
No Matches
physx::Dy Namespace Reference

A header to represent a friction patch for the solver. More...

Classes

struct  ArticulationAttachment
 
class  ArticulationBlockAllocator
 
struct  ArticulationCore
 
class  ArticulationData
 
struct  ArticulationDirtyFlag
 
class  ArticulationFixedTendon
 
struct  ArticulationInternalConstraint
 
struct  ArticulationInternalConstraintBase
 
struct  ArticulationInternalLimit
 
struct  ArticulationInternalTendonConstraint
 
struct  ArticulationJointCore
 
class  ArticulationJointCoreData
 
struct  ArticulationJointCoreDirtyFlag
 
struct  ArticulationJointTargetData
 
struct  ArticulationLink
 
class  ArticulationLinkData
 
struct  ArticulationLoopConstraint
 
class  ArticulationPImpl
 
struct  ArticulationSensor
 
struct  ArticulationSolverDesc
 
struct  ArticulationSortPredicate
 
class  ArticulationSpatialTendon
 
struct  ArticulationStaticConstraintSortPredicate
 
class  ArticulationTask
 
class  ArticulationTendon
 
class  ArticulationTendonJoint
 
class  BatchIterator
 
class  BlockAllocator
 
class  BlockBasedAllocator
 
struct  CompoundContactManager
 
struct  Constraint
 
class  ConstraintHelper
 
struct  ConstraintLess
 
struct  ConstraintPartitionArgs
 
struct  ConstraintWriteback
 
struct  ContactPatch
 
class  ContactReduction
 
class  Context
 
class  CopyBackTask
 
struct  CorrelationBuffer
 
struct  CorrelationListIterator
 
class  DynamicsContext
 Encapsules the data used by the constraint solver. More...
 
class  DynamicsMergeTask
 
class  DynamicsTGSContext
 
class  EndIslandTask
 
struct  EnhancedSortPredicate
 
class  FeatherstoneArticulation
 
class  FEMCloth
 
struct  FEMClothCore
 
struct  FEMClothSolverDesc
 
class  FinishSolveIslandTask
 
struct  FixedTendonSolveData
 
struct  FrictionPatch
 
class  HairSystem
 
struct  HairSystemCore
 
struct  HairSystemDirtyFlag
 
struct  HairSystemSimParameters
 
struct  HairSystemSolverDesc
 
struct  InternalConstraintSolverData
 
struct  InvStIs
 
struct  IslandContext
 Encapsulates an island's context. More...
 
struct  IslandContextStep
 
class  KinematicCopyTask
 
class  KinematicCopyTGSTask
 
class  ParallelSolveTask
 
class  ParticleSystem
 
class  ParticleSystemCore
 
struct  ParticleSystemFlag
 
struct  ParticleSystemSolverDesc
 
class  PartitionTask
 
class  PreIntegrateParallelTask
 
class  PreIntegrateTask
 
class  PxsCreateArticConstraintsSubTask
 
class  PxsCreateArticConstraintsTask
 
class  PxsCreateFinalizeContactsTask
 
class  PxsForceThresholdTask
 
class  PxsParallelSolverTask
 
class  PxsPreIntegrateTask
 
class  PxsSolverConstraintPartitionTask
 
class  PxsSolverConstraintPostProcessTask
 
class  PxsSolverCreateFinalizeConstraintsTask
 
class  PxsSolverEndTask
 
class  PxsSolverSetupSolveTask
 
class  PxsSolverStartTask
 
struct  ReducedContactPatch
 
struct  ScratchData
 
struct  SelfConstraintBlock
 
class  SetStepperTask
 
class  SetupArticulationInternalConstraintsTask
 
class  SetupArticulationTask
 
class  SetupDescsTask
 
class  SetupSolverConstraintsSubTask
 
class  SetupSolverConstraintsTask
 
class  SoftBody
 
struct  SoftBodyCore
 
class  SolveIslandTask
 
class  SolverArticulationUpdateTask
 
class  SolverBodyDataPool
 Solver body data pool (array) that enforces 128-byte alignment for base address of array. More...
 
class  SolverBodyDataStepPool
 
class  SolverBodyPool
 Solver body pool (array) that enforces 128-byte alignment for base address of array. More...
 
class  SolverBodyTxInertiaPool
 
class  SolverBodyVelDataPool
 
struct  SolverConstraint1D
 
struct  SolverConstraint1DBase4
 
struct  SolverConstraint1DDynamic4
 
struct  SolverConstraint1DExt
 
struct  SolverConstraint1DExtStep
 
struct  SolverConstraint1DHeader
 
struct  SolverConstraint1DHeader4
 
struct  SolverConstraint1DHeaderStep
 
struct  SolverConstraint1DHeaderStep4
 
struct  SolverConstraint1DStep
 
struct  SolverConstraint1DStep4
 
class  SolverConstraintDescPool
 
struct  SolverConstraintPrepState
 
struct  SolverConstraintShaderPrepDesc
 
struct  SolverContact4Base
 
struct  SolverContact4Dynamic
 
struct  SolverContactBatchPointBase4
 This represents a batch of 4 contacts with static rolled into a single structure. More...
 
struct  SolverContactBatchPointDynamic4
 Contains the additional data required to represent 4 contacts between 2 dynamic bodies. More...
 
struct  SolverContactCoulombHeader
 
struct  SolverContactCoulombHeader4
 
struct  SolverContactFriction
 A single friction constraint for the solver. More...
 
struct  SolverContactFrictionBase4
 This represents a batch of 4 friction constraints with static rolled into a single structure. More...
 
struct  SolverContactFrictionDynamic4
 Contains the additional data required to represent 4 friction constraints between 2 dynamic bodies. More...
 
struct  SolverContactFrictionExt
 A single extended articulation friction constraint for the solver. More...
 
struct  SolverContactFrictionStep
 
struct  SolverContactFrictionStepBlock
 
struct  SolverContactFrictionStepExt
 
struct  SolverContactHeader
 
struct  SolverContactHeader4
 Batched SOA contact data. Note, we don't support batching with extended contacts for the simple reason that handling multiple articulations would be complex. More...
 
struct  SolverContactHeaderStep
 
struct  SolverContactHeaderStepBlock
 
struct  SolverContactPoint
 A single rigid body contact point for the solver. More...
 
struct  SolverContactPointExt
 A single extended articulation contact point for the solver. More...
 
struct  SolverContactPointStep
 
struct  SolverContactPointStepBlock
 
struct  SolverContactPointStepExt
 
struct  SolverContext
 
class  SolverCore
 
class  SolverCoreGeneral
 
class  SolverCoreGeneralPF
 
class  SolverExtBody
 
class  SolverExtBodyStep
 
struct  SolverFriction4Base
 
struct  SolverFriction4Dynamic
 
struct  SolverFrictionHeader
 
struct  SolverFrictionHeader4
 
struct  SolverFrictionSharedData4
 This represents the shared information of a batch of 4 friction constraints. More...
 
struct  SolverIslandObjects
 
struct  SolverIslandObjectsStep
 
struct  SolverIslandParams
 
class  SolverStepConstraintDescPool
 
struct  SortBoundsPredicateManifold
 
struct  SpatialImpulseResponseMatrix
 
struct  SpatialMatrix
 
struct  SpatialSubspaceMatrix
 
struct  SpatialTransform
 
class  SpInertia
 
struct  Temp6x3Matrix
 
struct  Temp6x6Matrix
 
class  ThreadContext
 
class  ThresholdStream
 
struct  ThresholdStreamElement
 
class  ThresholdTable
 
class  UpdateArticTask
 
class  UpdateContinuationTask
 
class  UpdateContinuationTGSTask
 

Typedefs

typedef PxFlags< ArticulationJointCoreDirtyFlag::Enum, PxU8 > ArticulationJointCoreDirtyFlags
 
typedef PxU64 ArticulationAttachmentBitField
 
typedef size_t FEMClothHandle
 
typedef size_t HairSystemHandle
 
typedef size_t ParticleSystemHandle
 
typedef size_t SoftBodyHandle
 
typedef PxPinnedArray< PxU64 > SoftBodyFilterArray
 
typedef PxPinnedArray< ThresholdStreamElement > ThresholdArray
 
typedef PxU64 ArticulationBitField
 
typedef bool(* PxcCreateFinalizeSolverContactMethod) (CREATE_FINALIZE_SOLVER_CONTACT_METHOD_ARGS)
 
typedef SolverConstraintPrepState::Enum(* PxcCreateFinalizeSolverContactMethod4) (CREATE_FINALIZE_SOVLER_CONTACT_METHOD_ARGS_4)
 
typedef void(* WriteBackMethod) (const PxSolverConstraintDesc &desc, SolverContext &cache, PxSolverBodyData &sbd0, PxSolverBodyData &sbd1)
 
typedef void(* SolveMethod) (const PxSolverConstraintDesc &desc, SolverContext &cache)
 
typedef void(* SolveBlockMethod) (const PxSolverConstraintDesc *desc, const PxU32 constraintCount, SolverContext &cache)
 
typedef void(* SolveWriteBackBlockMethod) (const PxSolverConstraintDesc *desc, const PxU32 constraintCount, SolverContext &cache)
 
typedef void(* WriteBackBlockMethod) (const PxSolverConstraintDesc *desc, const PxU32 constraintCount, SolverContext &cache)
 
typedef void(* TGSSolveBlockMethod) (const PxConstraintBatchHeader &hdr, const PxSolverConstraintDesc *desc, const PxTGSSolverBodyTxInertia *const txInertias, const PxReal minPenetration, const PxReal elapsedTime, SolverContext &cache)
 
typedef void(* TGSWriteBackMethod) (const PxConstraintBatchHeader &hdr, const PxSolverConstraintDesc *desc, SolverContext *cache)
 
typedef void(* TGSSolveConcludeMethod) (const PxConstraintBatchHeader &hdr, const PxSolverConstraintDesc *desc, const PxTGSSolverBodyTxInertia *const txInertias, const PxReal elapsedTime, SolverContext &cache)
 

Functions

void copyToSolverBodyDataStep (const PxVec3 &linearVelocity, const PxVec3 &angularVelocity, const PxReal invMass, const PxVec3 &invInertia, const PxTransform &globalPose, const PxReal maxDepenetrationVelocity, const PxReal maxContactImpulse, const PxU32 nodeIndex, const PxReal reportThreshold, const PxReal maxAngVelSq, PxU32 lockFlags, bool isKinematic, PxTGSSolverBodyVel &solverVel, PxTGSSolverBodyTxInertia &solverBodyTxInertia, PxTGSSolverBodyData &solverBodyData, const PxReal dt, const bool gyroscopicForces)
 
void integrateCoreStep (PxTGSSolverBodyVel &vel, PxTGSSolverBodyTxInertia &txInertia, const PxF32 dt)
 
struct physx::Dy::ArticulationJointCore PX_ALIGN_SUFFIX (16)
 
 PX_COMPILE_TIME_ASSERT (48==sizeof(Constraint))
 
Context * createDynamicsContext (PxcNpMemBlockPool *memBlockPool, PxcScratchAllocator &scratchAllocator, Cm::FlushPool &taskPool, PxvSimStats &simStats, PxTaskManager *taskManager, PxVirtualAllocatorCallback *allocatorCallback, PxsMaterialManager *materialManager, IG::SimpleIslandManager *islandManager, PxU64 contextID, const bool enableStabilization, const bool useEnhancedDeterminism, const PxReal maxBiasCoefficient, const bool frictionEveryIteration, const PxReal lengthScale)
 
Context * createTGSDynamicsContext (PxcNpMemBlockPool *memBlockPool, PxcScratchAllocator &scratchAllocator, Cm::FlushPool &taskPool, PxvSimStats &simStats, PxTaskManager *taskManager, PxVirtualAllocatorCallback *allocatorCallback, PxsMaterialManager *materialManager, IG::SimpleIslandManager *islandManager, PxU64 contextID, const bool enableStabilization, const bool useEnhancedDeterminism, const PxReal lengthScale)
 
struct PX_ALIGN_PREFIX (16) JointSpaceSpatialZ
 
PX_INLINE PX_CUDA_CALLABLE void computeArticJacobianAxes (PxVec3 row[3], const PxQuat &qa, const PxQuat &qb)
 
PX_CUDA_CALLABLE PX_FORCE_INLINE float compAng (PxReal swingYZ, PxReal swingW)
 
class physx::Dy::FeatherstoneArticulation PX_ALIGN_SUFFIX (64)
 
void PxvRegisterArticulationsReducedCoordinate ()
 
PX_FORCE_INLINE void calculateNewVelocity (const PxTransform &newTransform, const PxTransform &oldTransform, const PxReal dt, PxVec3 &linear, PxVec3 &angular)
 
PX_CUDA_CALLABLE PX_FORCE_INLINE void separateSwingTwist (const PxQuat &q, PxQuat &twist, PxQuat &swing1, PxQuat &swing2)
 
PX_CUDA_CALLABLE PX_FORCE_INLINE void separateSwingTwist2 (const PxQuat &q, PxQuat &twist, PxQuat &swing1, PxQuat &swing2)
 
PX_FORCE_INLINE FEMCloth * getFEMCloth (FEMClothHandle handle)
 
PX_FORCE_INLINE HairSystem * getHairSystem (HairSystemHandle handle)
 
PX_FORCE_INLINE ParticleSystem * getParticleSystem (ParticleSystemHandle handle)
 
PX_FORCE_INLINE SoftBody * getSoftBody (SoftBodyHandle handle)
 
Cm::SpatialVector createImpulseResponseVector (const PxVec3 &linear, const PxVec3 &angular, const SolverExtBody &body)
 
Cm::SpatialVectorV createImpulseResponseVector (const aos::Vec3V &linear, const aos::Vec3V &angular, const SolverExtBody &body)
 
PxReal getImpulseResponse (const SolverExtBody &b0, const Cm::SpatialVector &impulse0, Cm::SpatialVector &deltaV0, PxReal dom0, PxReal angDom0, const SolverExtBody &b1, const Cm::SpatialVector &impulse1, Cm::SpatialVector &deltaV1, PxReal dom1, PxReal angDom1, Cm::SpatialVectorF *Z, bool allowSelfCollision)
 
FloatV getImpulseResponse (const SolverExtBody &b0, const Cm::SpatialVectorV &impulse0, Cm::SpatialVectorV &deltaV0, const FloatV &dom0, const FloatV &angDom0, const SolverExtBody &b1, const Cm::SpatialVectorV &impulse1, Cm::SpatialVectorV &deltaV1, const FloatV &dom1, const FloatV &angDom1, Cm::SpatialVectorV *Z, bool)
 
void setupFinalizeExtSolverContacts (const PxContactPoint *buffer, const CorrelationBuffer &c, const PxTransform &bodyFrame0, const PxTransform &bodyFrame1, PxU8 *workspace, const SolverExtBody &b0, const SolverExtBody &b1, const PxReal invDtF32, const PxReal dtF32, PxReal bounceThresholdF32, PxReal invMassScale0, PxReal invInertiaScale0, PxReal invMassScale1, PxReal invInertiaScale1, const PxReal restDist, PxU8 *frictionDataPtr, PxReal ccdMaxContactDist, Cm::SpatialVectorF *Z, const PxReal offsetSlop)
 
bool setupFinalizeExtSolverContactsCoulomb (const PxContactBuffer &buffer, const CorrelationBuffer &c, const PxTransform &bodyFrame0, const PxTransform &bodyFrame1, PxU8 *workspace, PxReal invDt, PxReal dtF32, PxReal bounceThreshold, const SolverExtBody &b0, const SolverExtBody &b1, PxU32 frictionCountPerPoint, PxReal invMassScale0, PxReal invInertiaScale0, PxReal invMassScale1, PxReal invInertiaScale1, PxReal restDist, PxReal ccdMaxContactDist, Cm::SpatialVectorF *Z, const PxReal solverOffsetSlop)
 
PX_FORCE_INLINE PxU32 ArticulationLowestSetBit (ArticulationBitField val)
 
PX_FORCE_INLINE PxU32 ArticulationHighestSetBit (ArticulationBitField val)
 
PX_FORCE_INLINE Cm::SpatialVector & unsimdRef (Cm::SpatialVectorV &v)
 
PX_FORCE_INLINE const Cm::SpatialVector & unsimdRef (const Cm::SpatialVectorV &v)
 
PX_FORCE_INLINE void bodyCoreComputeUnconstrainedVelocity (const PxVec3 &gravity, const PxReal dt, const PxReal linearDamping, const PxReal angularDamping, const PxReal accelScale, const PxReal maxLinearVelocitySq, const PxReal maxAngularVelocitySq, PxVec3 &inOutLinearVelocity, PxVec3 &inOutAngularVelocity, bool disableGravity)
 
PX_FORCE_INLINE void integrateCore (PxVec3 &motionLinearVelocity, PxVec3 &motionAngularVelocity, PxSolverBody &solverBody, PxSolverBodyData &solverBodyData, const PxF32 dt, const PxU32 lockFlags)
 
PX_FORCE_INLINE PxReal _updateWakeCounter (PxsRigidBody *originalBody, PxReal dt, PxReal, const bool enableStabilization, const Cm::SpatialVector &motionVelocity, bool hasStaticTouch)
 
PX_FORCE_INLINE void sleepCheck (PxsRigidBody *originalBody, const PxReal dt, const PxReal intDt, const bool enableStabilization, const Cm::SpatialVector &motionVelocity, bool hasStaticTouch)
 
template<typename Classification >
PxU32 normalizePartitions (PxArray< PxU32 > &accumulatedConstraintsPerPartition, PxSolverConstraintDesc *PX_RESTRICT eaOrderedConstraintDescriptors, const PxU32 numConstraintDescriptors, PxArray< PxU32 > &bitField, const Classification &classification, const PxU32 numBodies, const PxU32 numArticulations)
 
PxU32 partitionContactConstraints (ConstraintPartitionArgs &args)
 
void processOverflowConstraints (PxU8 *bodies, PxU32 bodyStride, PxU32 numBodies, Dy::ArticulationSolverDesc *articulationDescs, PxU32 numArticulations, PxSolverConstraintDesc *constraints, const PxU32 numConstraints)
 
SolverConstraintPrepState::Enum setupSolverConstraint4 (SolverConstraintShaderPrepDesc *PX_RESTRICT constraintShaderDescs, PxSolverConstraintPrepDesc *PX_RESTRICT constraintDescs, const PxReal dt, const PxReal recipdt, PxU32 &totalRows, PxConstraintAllocator &allocator)
 
SolverConstraintPrepState::Enum setupSolverConstraint4 (PxSolverConstraintPrepDesc *PX_RESTRICT constraintDescs, const PxReal dt, const PxReal recipdt, PxU32 &totalRows, PxConstraintAllocator &allocator, PxU32 maxRows)
 
PxU32 SetupSolverConstraint (SolverConstraintShaderPrepDesc &shaderDesc, PxSolverConstraintPrepDesc &prepDesc, PxConstraintAllocator &allocator, PxReal dt, PxReal invdt, Cm::SpatialVectorF *Z)
 
template<class PrepDescT >
PX_FORCE_INLINE void setupConstraintFlags (PrepDescT &prepDesc, PxU16 flags)
 
void preprocessRows (Px1DConstraint **sorted, Px1DConstraint *rows, PxVec4 *angSqrtInvInertia0, PxVec4 *angSqrtInvInertia1, PxU32 rowCount, const PxMat33 &sqrtInvInertia0F32, const PxMat33 &sqrtInvInertia1F32, const PxReal invMass0, const PxReal invMass1, const PxConstraintInvMassScale &ims, bool disablePreprocessing, bool diagonalizeDrive)
 
PX_FORCE_INLINE void setupConstraintRows (Px1DConstraint *PX_RESTRICT rows, PxU32 size)
 
PX_FORCE_INLINE Vec3V M33MulV4 (const Mat33V &a, const Vec4V b)
 
PX_FORCE_INLINE void computeBlockStreamByteSizes (const bool useExtContacts, const CorrelationBuffer &c, PxU32 &_solverConstraintByteSize, PxU32 &_frictionPatchByteSize, PxU32 &_numFrictionPatches, PxU32 &_axisConstraintCount)
 
bool createFinalizeSolverContacts (PxSolverContactDesc &contactDesc, CorrelationBuffer &c, const PxReal invDtF32, const PxReal dtF32, PxReal bounceThresholdF32, PxReal frictionOffsetThreshold, PxReal correlationDistance, PxConstraintAllocator &constraintAllocator, Cm::SpatialVectorF *Z)
 
FloatV setupExtSolverContact (const SolverExtBody &b0, const SolverExtBody &b1, const FloatV &d0, const FloatV &d1, const FloatV &angD0, const FloatV &angD1, const Vec3V &bodyFrame0p, const Vec3V &bodyFrame1p, const Vec3VArg normal, const FloatVArg invDt, const FloatVArg invDtp8, const FloatVArg dt, const FloatVArg restDistance, const FloatVArg maxPenBias, const FloatVArg restitution, const FloatVArg bounceThreshold, const PxContactPoint &contact, SolverContactPointExt &solverContact, const FloatVArg ccdMaxSeparation, Cm::SpatialVectorF *zVector, const Cm::SpatialVectorV &v0, const Cm::SpatialVectorV &v1, const FloatV &cfm, const Vec3VArg solverOffsetSlop, const FloatVArg norVel0, const FloatVArg norVel1, const FloatVArg damping)
 
bool createFinalizeSolverContacts (PxSolverContactDesc &contactDesc, PxsContactManagerOutput &output, ThreadContext &threadContext, const PxReal invDtF32, const PxReal dtF32, PxReal bounceThresholdF32, PxReal frictionOffsetThreshold, PxReal correlationDistance, PxConstraintAllocator &constraintAllocator, Cm::SpatialVectorF *Z)
 
PxU32 getContactManagerConstraintDesc (const PxsContactManagerOutput &cmOutput, const PxsContactManager &, PxSolverConstraintDesc &desc)
 
SolverConstraintPrepState::Enum createFinalizeSolverContacts4 (PxsContactManagerOutput **outputs, ThreadContext &threadContext, PxSolverContactDesc *blockDescs, const PxReal invDtF32, const PxReal dtF32, PxReal bounceThresholdF32, PxReal frictionOffsetThreshold, PxReal correlationDistance, PxConstraintAllocator &constraintAllocator)
 
SolverConstraintPrepState::Enum createFinalizeSolverContacts4 (Dy::CorrelationBuffer &c, PxSolverContactDesc *blockDescs, const PxReal invDtF32, const PxReal dtF32, PxReal bounceThresholdF32, PxReal frictionOffsetThreshold, PxReal correlationDistance, PxConstraintAllocator &constraintAllocator)
 
bool createFinalizeSolverContactsCoulomb1D (PxSolverContactDesc &contactDesc, PxsContactManagerOutput &output, ThreadContext &threadContext, const PxReal invDtF32, const PxReal dtF32, PxReal bounceThresholdF32, PxReal frictionOffsetThreshold, PxReal correlationDistance, PxConstraintAllocator &constraintAllocator, Cm::SpatialVectorF *Z)
 
bool createFinalizeSolverContactsCoulomb2D (PxSolverContactDesc &contactDesc, PxsContactManagerOutput &output, ThreadContext &threadContext, const PxReal invDtF32, const PxReal dtF32, PxReal bounceThresholdF32, PxReal frictionOffsetThreshold, PxReal correlationDistance, PxConstraintAllocator &constraintAllocator, Cm::SpatialVectorF *Z)
 
SolverConstraintPrepState::Enum createFinalizeSolverContacts4Coulomb1D (PxsContactManagerOutput **outputs, ThreadContext &threadContext, PxSolverContactDesc *blockDescs, const PxReal invDtF32, const PxReal dtF32, PxReal bounceThresholdF32, PxReal frictionOffsetThreshold, PxReal correlationDistance, PxConstraintAllocator &constraintAllocator)
 
SolverConstraintPrepState::Enum createFinalizeSolverContacts4Coulomb2D (PxsContactManagerOutput **outputs, ThreadContext &threadContext, PxSolverContactDesc *blockDescs, const PxReal invDtF32, const PxReal dtF32, PxReal bounceThresholdF32, PxReal frictionOffsetThreshold, PxReal correlationDistance, PxConstraintAllocator &constraintAllocator)
 
bool ValidateVec4 (const Vec4V v)
 
PX_FORCE_INLINE void computeBlockStreamFrictionByteSizes (const CorrelationBuffer &c, PxU32 &_frictionPatchByteSize, PxU32 &_numFrictionPatches, PxU32 frictionPatchStartIndex, PxU32 frictionPatchEndIndex)
 
void computeBlockStreamByteSizes4 (PxSolverContactDesc *descs, PxU32 &_solverConstraintByteSize, PxU32 *_axisConstraintCount, const CorrelationBuffer &c)
 
SolverConstraintPrepState::Enum createFinalizeSolverContacts4Coulomb (PxsContactManagerOutput **outputs, ThreadContext &threadContext, PxSolverContactDesc *blockDescs, const PxReal invDtF32, const PxReal dtF32, PxReal bounceThresholdF32, PxReal frictionOffsetThreshold, PxReal correlationDistance, PxConstraintAllocator &constraintAllocator, PxFrictionType::Enum frictionType)
 
void computeBlockStreamByteSizesCoulomb4 (PxSolverContactDesc *descs, ThreadContext &threadContext, const CorrelationBuffer &c, const PxU32 numFrictionPerPoint, PxU32 &_solverConstraintByteSize, PxU32 *_axisConstraintCount, PxU32 &_numContactPoints4)
 
bool createFinalizeSolverContactsCoulomb (PxSolverContactDesc &contactDesc, PxsContactManagerOutput &output, ThreadContext &threadContext, const PxReal invDtF32, const PxReal dtF32, PxReal bounceThresholdF32, PxReal frictionOffsetThreshold, PxReal correlationDistance, PxConstraintAllocator &constraintAllocator, PxFrictionType::Enum frictionType, Cm::SpatialVectorF *Z)
 
template<class PxSolverContactDescT >
PX_FORCE_INLINE Sc::ShapeInteraction * getInteraction (const PxSolverContactDescT &desc)
 
PX_FORCE_INLINE bool pointsAreClose (const PxTransform &body1ToBody0, const PxVec3 &localAnchor0, const PxVec3 &localAnchor1, const PxVec3 &axis, float correlDist)
 
PX_FORCE_INLINE bool isSeparated (const FrictionPatch &patch, const PxTransform &body1ToBody0, const PxReal correlationDistance)
 
bool getFrictionPatches (CorrelationBuffer &c, const PxU8 *frictionCookie, PxU32 frictionPatchCount, const PxTransform &bodyFrame0, const PxTransform &bodyFrame1, PxReal correlationDistance)
 
PX_FORCE_INLINE PxU32 extractContacts (PxContactBuffer &buffer, PxsContactManagerOutput &npOutput, bool &hasMaxImpulse, bool &hasTargetVelocity, PxReal &invMassScale0, PxReal &invMassScale1, PxReal &invInertiaScale0, PxReal &invInertiaScale1, PxReal defaultMaxImpulse)
 
PX_FORCE_INLINE void constructContactConstraint (const Mat33V &invSqrtInertia0, const Mat33V &invSqrtInertia1, const FloatVArg invMassNorLenSq0, const FloatVArg invMassNorLenSq1, const FloatVArg angD0, const FloatVArg angD1, const Vec3VArg bodyFrame0p, const Vec3VArg bodyFrame1p, const Vec3VArg normal, const FloatVArg norVel, const VecCrossV &norCross, const Vec3VArg angVel0, const Vec3VArg angVel1, const FloatVArg invDt, const FloatVArg invDtp8, const FloatVArg dt, const FloatVArg restDistance, const FloatVArg maxPenBias, const FloatVArg restitution, const FloatVArg bounceThreshold, const PxContactPoint &contact, SolverContactPoint &solverContact, const FloatVArg ccdMaxSeparation, const Vec3VArg solverOffsetSlop, const FloatVArg damping)
 
bool createContactPatches (CorrelationBuffer &fb, const PxContactPoint *cb, PxU32 contactCount, PxReal normalTolerance)
 
bool correlatePatches (CorrelationBuffer &fb, const PxContactPoint *cb, const PxTransform &bodyFrame0, const PxTransform &bodyFrame1, PxReal normalTolerance, PxU32 startContactPatchIndex, PxU32 startFrictionPatchIndex)
 
void growPatches (CorrelationBuffer &fb, const PxContactPoint *buffer, const PxTransform &bodyFrame0, const PxTransform &bodyFrame1, PxU32 frictionPatchStartIndex, PxReal frictionOffsetThreshold)
 
void chainTasks (PxLightCpuTask *first, PxLightCpuTask *next)
 
PxBaseTask * createSolverTaskChain (DynamicsContext &dynamicContext, const SolverIslandObjects &objects, const PxsIslandIndices &counts, const PxU32 solverBodyOffset, IG::SimpleIslandManager &islandManager, PxU32 *bodyRemapTable, PxsMaterialManager *materialManager, PxBaseTask *continuation, PxsContactManagerOutputIterator &iterator, bool useEnhancedDeterminism)
 
void WaitBodyRequiredState (volatile PxU32 *state, PxU32 requiredState)
 
void solveParallel (SOLVER_PARALLEL_METHOD_ARGS)
 
void solveParallelCouloumFriction (SOLVER_PARALLEL_METHOD_ARGS)
 
void SolverCoreRegisterArticulationFns ()
 
void SolverCoreRegisterArticulationFnsCoulomb ()
 
void PxcFsFlushVelocity (FeatherstoneArticulation &articulation, Cm::SpatialVectorF *deltaV, bool computeForces)
 
PxQuat computeSphericalJointPositions (const PxQuat &relativeQuat, const PxQuat &newRot, const PxQuat &pBody2WorldRot, PxReal *jPositions, const Cm::UnAlignedSpatialVector *motionMatrix, const PxU32 dofs)
 
PxQuat computeSphericalJointPositions (const PxQuat &relativeQuat, const PxQuat &newRot, const PxQuat &pBody2WorldRot)
 
PX_CUDA_CALLABLE PX_FORCE_INLINE Cm::SpatialVectorF translateImpulse (const Cm::SpatialVectorF &s, const PxVec3 &offset)
 
bool createFinalizeSolverContactsStep (PxTGSSolverContactDesc &contactDesc, PxsContactManagerOutput &output, ThreadContext &threadContext, const PxReal invDtF32, const PxReal invTotalDt, const PxReal totalDt, const PxReal stepDt, const PxReal bounceThresholdF32, const PxReal frictionOffsetThreshold, const PxReal correlationDistance, const PxReal biasCoefficient, PxConstraintAllocator &constraintAllocator)
 
void setupComplexLimit (ArticulationLink *links, Cm::SpatialVectorF *Z, ArticulationData &data, const PxU32 linkID, const PxReal angle, const PxReal lowLimit, const PxReal highLimit, const PxVec3 &axis, const PxReal cfm, ArticulationInternalConstraint &complexConstraint, ArticulationInternalLimit &limit)
 
void solveExtContact (const PxSolverConstraintDesc &desc, Vec3V &linVel0, Vec3V &linVel1, Vec3V &angVel0, Vec3V &angVel1, Vec3V &linImpulse0, Vec3V &linImpulse1, Vec3V &angImpulse0, Vec3V &angImpulse1, bool doFriction)
 
void solveExt1D (const PxSolverConstraintDesc &desc, Vec3V &linVel0, Vec3V &linVel1, Vec3V &angVel0, Vec3V &angVel1, Vec3V &li0, Vec3V &li1, Vec3V &ai0, Vec3V &ai1)
 
void solveExt1D (const PxSolverConstraintDesc &desc, Vec3V &linVel0, Vec3V &linVel1, Vec3V &angVel0, Vec3V &angVel1, const Vec3V &linMotion0, const Vec3V &linMotion1, const Vec3V &angMotion0, const Vec3V &angMotion1, const QuatV &rotA, const QuatV &rotB, const PxReal elapsedTimeF32, Vec3V &linImpulse0, Vec3V &linImpulse1, Vec3V &angImpulse0, Vec3V &angImpulse1)
 
void solveExtContactStep (const PxSolverConstraintDesc &desc, Vec3V &linVel0, Vec3V &linVel1, Vec3V &angVel0, Vec3V &angVel1, Vec3V &linDelta0, Vec3V &linDelta1, Vec3V &angDelta0, Vec3V &angDelta1, Vec3V &linImpulse0, Vec3V &linImpulse1, Vec3V &angImpulse0, Vec3V &angImpulse1, bool doFriction, const PxReal minPenetration, const PxReal elapsedTimeF32)
 
void solveStaticConstraint (const PxSolverConstraintDesc &desc, Cm::SpatialVectorF &linkV, Cm::SpatialVectorF &impulse, Cm::SpatialVectorF &deltaV, const Cm::SpatialVectorF &motion, const PxQuat &rot, bool isTGS, PxReal elapsedTime, const PxReal minPenetration)
 
void writeBackContact (const PxSolverConstraintDesc &desc, SolverContext &cache, PxSolverBodyData &bd0, PxSolverBodyData &bd1)
 
void writeBack1D (const PxSolverConstraintDesc &desc, SolverContext &, PxSolverBodyData &, PxSolverBodyData &)
 
void writeBackContact (const PxSolverConstraintDesc &desc, SolverContext *cache)
 
void writeBack1D (const PxSolverConstraintDesc &desc)
 
void concludeContact (const PxSolverConstraintDesc &desc, SolverContext &cache)
 
void conclude1D (const PxSolverConstraintDesc &desc, SolverContext &cache)
 
void concludeContact (const PxSolverConstraintDesc &desc)
 
void conclude1DStep (const PxSolverConstraintDesc &desc)
 
void solveExt1D (const PxSolverConstraintDesc &desc, SolverContext &cache)
 
void clearExt1D (const PxSolverConstraintDesc &desc, SolverContext &cache)
 
PxU32 computeHi (ArticulationData &data, const PxU32 linkID, PxReal *massMatrix, Cm::SpatialVectorF *f)
 
PX_FORCE_INLINE PxVec3 computeSafeSqrtInertia (const PxVec3 &v)
 
void copyToSolverBodyData (const PxVec3 &linearVelocity, const PxVec3 &angularVelocity, const PxReal invMass, const PxVec3 &invInertia, const PxTransform &globalPose, const PxReal maxDepenetrationVelocity, const PxReal maxContactImpulse, const PxU32 nodeIndex, const PxReal reportThreshold, PxSolverBodyData &solverBodyData, PxU32 lockFlags, const PxReal dt, bool gyroscopicForces)
 
 PX_COMPILE_TIME_ASSERT (sizeof(SolverConstraint1DHeader)==48)
 
 PX_COMPILE_TIME_ASSERT (sizeof(SolverConstraint1D)==96)
 
 PX_COMPILE_TIME_ASSERT (sizeof(SolverConstraint1DExt)==160)
 
PX_FORCE_INLINE void init (SolverConstraint1DHeader &h, PxU8 count, bool isExtended, const PxConstraintInvMassScale &ims)
 
PX_FORCE_INLINE void init (SolverConstraint1D &c, const PxVec3 &_linear0, const PxVec3 &_linear1, const PxVec3 &_angular0, const PxVec3 &_angular1, PxReal _minImpulse, PxReal _maxImpulse)
 
PX_FORCE_INLINE bool needsNormalVel (const Px1DConstraint &c)
 
PX_FORCE_INLINE void setSolverConstants (PxReal &constant, PxReal &unbiasedConstant, PxReal &velMultiplier, PxReal &impulseMultiplier, const Px1DConstraint &c, PxReal normalVel, PxReal unitResponse, PxReal minRowResponse, PxReal erp, PxReal dt, PxReal recipdt)
 
 PX_COMPILE_TIME_ASSERT (sizeof(SolverConstraint1DBase4)==272)
 
 PX_COMPILE_TIME_ASSERT (sizeof(SolverConstraint1DDynamic4)==368)
 
PX_FORCE_INLINE void init (SolverConstraint1DHeaderStep &h, PxU8 count, bool isExtended, const PxConstraintInvMassScale &ims)
 
PX_FORCE_INLINE void init (SolverConstraint1DStep &c, const PxVec3 &_linear0, const PxVec3 &_linear1, const PxVec3 &_angular0, const PxVec3 &_angular1, PxReal _minImpulse, PxReal _maxImpulse)
 
PX_FORCE_INLINE bool isArticulationConstraint (const PxSolverConstraintDesc &desc)
 
PX_FORCE_INLINE void setConstraintLength (PxSolverConstraintDesc &desc, const PxU32 constraintLength)
 
PX_FORCE_INLINE PxU32 getConstraintLength (const PxSolverConstraintDesc &desc)
 
PX_FORCE_INLINE Dy::FeatherstoneArticulation * getArticulationA (const PxSolverConstraintDesc &desc)
 
PX_FORCE_INLINE Dy::FeatherstoneArticulation * getArticulationB (const PxSolverConstraintDesc &desc)
 
 PX_COMPILE_TIME_ASSERT (0==(0x0f &sizeof(PxSolverConstraintDesc)))
 
void solve1D (const PxSolverConstraintDesc &desc, SolverContext &cache)
 
void solveContact (const PxSolverConstraintDesc &desc, SolverContext &cache)
 
void solveContact_BStatic (const PxSolverConstraintDesc &desc, SolverContext &cache)
 
void solve1DBlock (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solve1DConcludeBlock (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solve1DBlockWriteBack (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void writeBack1DBlock (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveContactBlock (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveContactConcludeBlock (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveContactBlockWriteBack (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveContact_BStaticBlock (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveContact_BStaticConcludeBlock (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveContact_BStaticBlockWriteBack (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
FloatV solveExtContacts (SolverContactPointExt *contacts, const PxU32 nbContactPoints, const Vec3VArg contactNormal, Vec3V &linVel0, Vec3V &angVel0, Vec3V &linVel1, Vec3V &angVel1, Vec3V &li0, Vec3V &ai0, Vec3V &li1, Vec3V &ai1, PxF32 *PX_RESTRICT appliedForceBuffer)
 
void solveExtContact (const PxSolverConstraintDesc &desc, SolverContext &cache)
 
void solveExtContactBlock (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveExtContactConcludeBlock (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveExtContactBlockWriteBack (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveExt1DBlock (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveExt1DConcludeBlock (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveExt1DBlockWriteBack (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void ext1DBlockWriteBack (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveConcludeExtContact (const PxSolverConstraintDesc &desc, SolverContext &cache)
 
void solveConcludeExt1D (const PxSolverConstraintDesc &desc, SolverContext &cache)
 
void solveConclude1D (const PxSolverConstraintDesc &desc, SolverContext &cache)
 
void solveConcludeContact (const PxSolverConstraintDesc &desc, SolverContext &cache)
 
void solveConcludeContact_BStatic (const PxSolverConstraintDesc &desc, SolverContext &cache)
 
void writeBackContact4_Block (const PxSolverConstraintDesc *PX_RESTRICT desc, SolverContext &cache, const PxSolverBodyData **PX_RESTRICT bd0, const PxSolverBodyData **PX_RESTRICT bd1)
 
void writeBack1D4 (const PxSolverConstraintDesc *PX_RESTRICT desc, SolverContext &, const PxSolverBodyData **PX_RESTRICT, const PxSolverBodyData **PX_RESTRICT)
 
void solveContactPreBlock (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32, SolverContext &cache)
 
void solveContactPreBlock_Static (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32, SolverContext &cache)
 
void solveContactPreBlock_Conclude (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32, SolverContext &cache)
 
void solveContactPreBlock_ConcludeStatic (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32, SolverContext &cache)
 
void solveContactPreBlock_WriteBack (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32, SolverContext &cache)
 
void solveContactPreBlock_WriteBackStatic (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32, SolverContext &cache)
 
void solve1D4_Block (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32, SolverContext &cache)
 
void solve1D4Block_Conclude (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32, SolverContext &cache)
 
void solve1D4Block_WriteBack (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32, SolverContext &cache)
 
void writeBack1D4Block (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32, SolverContext &cache)
 
 PX_COMPILE_TIME_ASSERT (sizeof(SolverContactHeader)==64)
 
 PX_COMPILE_TIME_ASSERT (sizeof(SolverContactPoint)==48)
 
 PX_COMPILE_TIME_ASSERT (sizeof(SolverContactPointExt)==112)
 
 PX_COMPILE_TIME_ASSERT (sizeof(SolverContactFriction)==64)
 
 PX_COMPILE_TIME_ASSERT (sizeof(SolverContactFrictionExt)==128)
 
 PX_COMPILE_TIME_ASSERT (sizeof(SolverContactHeader4)==192)
 
 PX_COMPILE_TIME_ASSERT (sizeof(SolverContactBatchPointBase4)==112)
 
 PX_COMPILE_TIME_ASSERT (sizeof(SolverContactBatchPointDynamic4)==160)
 
 PX_COMPILE_TIME_ASSERT (sizeof(SolverFrictionSharedData4)==128)
 
 PX_COMPILE_TIME_ASSERT (sizeof(SolverContactFrictionBase4)==96)
 
 PX_COMPILE_TIME_ASSERT (sizeof(SolverContactFrictionDynamic4)==144)
 
 PX_COMPILE_TIME_ASSERT (sizeof(SolverContactCoulombHeader)==48)
 
 PX_COMPILE_TIME_ASSERT (sizeof(SolverFrictionHeader)==32)
 
 PX_COMPILE_TIME_ASSERT (sizeof(SolverContactCoulombHeader4)==160)
 
 PX_COMPILE_TIME_ASSERT (sizeof(SolverContact4Base)==128)
 
 PX_COMPILE_TIME_ASSERT (sizeof(SolverContact4Dynamic)==176)
 
 PX_COMPILE_TIME_ASSERT (sizeof(SolverFrictionHeader4)==96)
 
 PX_COMPILE_TIME_ASSERT (sizeof(SolverFriction4Base)==144)
 
 PX_COMPILE_TIME_ASSERT (sizeof(SolverFriction4Dynamic)==192)
 
void contactBlockWriteBack (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void extContactBlockWriteBack (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void contactPreBlock_WriteBack (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
SolveBlockMethod * getSolveBlockTable ()
 
SolveBlockMethod * getSolverConcludeBlockTable ()
 
SolveWriteBackBlockMethod * getSolveWritebackBlockTable ()
 
void solveVBlock (SOLVEV_BLOCK_METHOD_ARGS)
 
void BusyWaitState (volatile PxU32 *state, const PxU32 requiredState)
 
void WaitBodyRequiredState (PxU32 *state, const PxU32 requiredState)
 
void BusyWaitStates (volatile PxU32 *stateA, volatile PxU32 *stateB, const PxU32 requiredStateA, const PxU32 requiredStateB)
 
void SolveBlockParallel (PxSolverConstraintDesc *PX_RESTRICT constraintList, const PxI32 batchCount, const PxI32 index, const PxI32 headerCount, SolverContext &cache, BatchIterator &iterator, SolveBlockMethod solveTable[], const PxI32 iteration)
 
void solveFrictionBlock (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveFriction_BStaticBlock (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveExtFrictionBlock (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveContactCoulombBlock (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveExtContactCoulombBlock (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveContactCoulomb_BStaticBlock (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveContactCoulombConcludeBlock (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveExtContactCoulombConcludeBlock (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveContactCoulomb_BStaticConcludeBlock (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveContactCoulombBlockWriteBack (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveExtContactCoulombBlockWriteBack (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveContactCoulomb_BStaticBlockWriteBack (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveFrictionBlockWriteBack (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveFriction_BStaticBlockWriteBack (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveExtFrictionBlockWriteBack (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveContactCoulombPreBlock (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveContactCoulombPreBlock_Static (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveContactCoulombPreBlock_Conclude (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveContactCoulombPreBlock_ConcludeStatic (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveContactCoulombPreBlock_WriteBack (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveContactCoulombPreBlock_WriteBackStatic (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveFrictionCoulombPreBlock (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveFrictionCoulombPreBlock_Static (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveFrictionCoulombPreBlock_Conclude (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveFrictionCoulombPreBlock_ConcludeStatic (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveFrictionCoulombPreBlock_WriteBack (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveFrictionCoulombPreBlock_WriteBackStatic (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
PX_INLINE void WaitForProgressCount (volatile PxI32 *pGlobalIndex, const PxI32 targetIndex)
 
void solveContactCoulomb (const PxSolverConstraintDesc &desc, SolverContext &)
 
void solveFriction (const PxSolverConstraintDesc &desc, SolverContext &)
 
void solveContactCoulomb_BStatic (const PxSolverConstraintDesc &desc, SolverContext &)
 
void solveFriction_BStatic (const PxSolverConstraintDesc &desc, SolverContext &)
 
void concludeContactCoulomb (const PxSolverConstraintDesc &desc, SolverContext &)
 
void writeBackContactCoulomb (const PxSolverConstraintDesc &desc, SolverContext &cache, PxSolverBodyData &bd0, PxSolverBodyData &bd1)
 
void solveFriction_BStaticConcludeBlock (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveExtContactCoulomb (const PxSolverConstraintDesc &desc, SolverContext &cache)
 
void solveExtFriction (const PxSolverConstraintDesc &desc, SolverContext &cache)
 
void solveExtFrictionConcludeBlock (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxU32 constraintCount, SolverContext &cache)
 
void solveConcludeExtContactCoulomb (const PxSolverConstraintDesc &desc, SolverContext &cache)
 
void solveConcludeContactCoulomb (const PxSolverConstraintDesc &desc, SolverContext &cache)
 
void solveConcludeContactCoulomb_BStatic (const PxSolverConstraintDesc &desc, SolverContext &cache)
 
void writeBackContactCoulomb4 (const PxSolverConstraintDesc *desc, SolverContext &cache, const PxSolverBodyData **PX_RESTRICT bd0, const PxSolverBodyData **PX_RESTRICT bd1)
 
PX_FORCE_INLINE PxReal safeRecip (const PxReal x)
 
PX_FORCE_INLINE void computeBlockStreamByteSizesStep (const bool useExtContacts, const CorrelationBuffer &c, PxU32 &_solverConstraintByteSize, PxU32 &_frictionPatchByteSize, PxU32 &_numFrictionPatches, PxU32 &_axisConstraintCount, PxReal torsionalPatchRadius)
 
Cm::SpatialVector createImpulseResponseVector (const PxVec3 &linear, const PxVec3 &angular, const SolverExtBodyStep &body)
 
Cm::SpatialVectorV createImpulseResponseVector (const aos::Vec3V &linear, const aos::Vec3V &angular, const SolverExtBodyStep &body)
 
PxReal getImpulseResponse (const SolverExtBodyStep &b0, const Cm::SpatialVector &impulse0, Cm::SpatialVector &deltaV0, PxReal dom0, PxReal angDom0, const SolverExtBodyStep &b1, const Cm::SpatialVector &impulse1, Cm::SpatialVector &deltaV1, PxReal dom1, PxReal angDom1, bool allowSelfCollision)
 
FloatV getImpulseResponse (const SolverExtBodyStep &b0, const Cm::SpatialVectorV &impulse0, Cm::SpatialVectorV &deltaV0, const FloatV &dom0, const FloatV &angDom0, const SolverExtBodyStep &b1, const Cm::SpatialVectorV &impulse1, Cm::SpatialVectorV &deltaV1, const FloatV &dom1, const FloatV &angDom1, bool)
 
void setupFinalizeExtSolverContactsStep (const PxContactPoint *buffer, const CorrelationBuffer &c, const PxTransform &bodyFrame0, const PxTransform &bodyFrame1, PxU8 *workspace, const SolverExtBodyStep &b0, const SolverExtBodyStep &b1, const PxReal invDtF32, const PxReal invTotalDtF32, const PxReal totalDtF32, const PxReal dtF32, PxReal bounceThresholdF32, PxReal invMassScale0, PxReal invInertiaScale0, PxReal invMassScale1, PxReal invInertiaScale1, const PxReal restDist, PxU8 *frictionDataPtr, PxReal ccdMaxContactDist, const PxReal torsionalPatchRadiusF32, const PxReal minTorsionalPatchRadiusF32, const PxReal biasCoefficient, const PxReal solverOffsetSlop)
 
bool createFinalizeSolverContactsStep (PxTGSSolverContactDesc &contactDesc, CorrelationBuffer &c, const PxReal invDtF32, const PxReal invTotalDtF32, const PxReal totalDtF32, const PxReal dtF32, const PxReal bounceThresholdF32, const PxReal frictionOffsetThreshold, const PxReal correlationDistance, const PxReal biasCoefficient, PxConstraintAllocator &constraintAllocator)
 
void solveContact (const PxSolverConstraintDesc &desc, bool doFriction, const PxReal minPenetration, const PxReal elapsedTimeF32)
 
PX_FORCE_INLINE Vec3V V3FromV4 (Vec4V x)
 
PX_FORCE_INLINE Vec3V V3FromV4Unsafe (Vec4V x)
 
PX_FORCE_INLINE Vec4V V4FromV3 (Vec3V x)
 
void setSolverConstantsStep (PxReal &error, PxReal &biasScale, PxReal &targetVel, PxReal &maxBias, PxReal &velMultiplier, PxReal &rcpResponse, const Px1DConstraint &c, PxReal normalVel, PxReal unitResponse, PxReal minRowResponse, PxReal erp, PxReal dt, PxReal totalDt, PxReal biasClamp, PxReal recipdt, PxReal recipTotalDt, PxReal velTarget)
 
PxU32 setupSolverConstraintStep (const PxTGSSolverConstraintPrepDesc &prepDesc, PxConstraintAllocator &allocator, const PxReal dt, const PxReal totalDt, const PxReal invdt, const PxReal invTotalDt, const PxReal lengthScale, const PxReal biasCoefficient)
 
PxU32 SetupSolverConstraintStep (SolverConstraintShaderPrepDesc &shaderDesc, PxTGSSolverConstraintPrepDesc &prepDesc, PxConstraintAllocator &allocator, const PxReal dt, const PxReal totalDt, const PxReal invdt, const PxReal invTotalDt, const PxReal lengthScale, const PxReal biasCoefficient)
 
void solveExt1DStep (const PxSolverConstraintDesc &desc, const PxReal elapsedTimeF32, SolverContext &cache, const PxTGSSolverBodyTxInertia *const txInertias)
 
void solve1DStep (const PxSolverConstraintDesc &desc, const PxTGSSolverBodyTxInertia *const txInertias, const PxReal elapsedTime)
 
void solveExtContactStep (const PxSolverConstraintDesc &desc, bool doFriction, const PxReal minPenetration, const PxReal elapsedTimeF32, SolverContext &cache)
 
void solveContactBlock (const PxConstraintBatchHeader &hdr, const PxSolverConstraintDesc *desc, const PxTGSSolverBodyTxInertia *const, const PxReal minPenetration, const PxReal elapsedTime, SolverContext &)
 
void solve1DBlock (const PxConstraintBatchHeader &hdr, const PxSolverConstraintDesc *desc, const PxTGSSolverBodyTxInertia *const txInertias, const PxReal, const PxReal elapsedTime, SolverContext &)
 
void solveExtContactBlock (const PxConstraintBatchHeader &hdr, const PxSolverConstraintDesc *desc, const PxTGSSolverBodyTxInertia *const, const PxReal minPenetration, const PxReal elapsedTime, SolverContext &cache)
 
void solveExt1DBlock (const PxConstraintBatchHeader &hdr, const PxSolverConstraintDesc *desc, const PxTGSSolverBodyTxInertia *const txInertias, const PxReal, const PxReal elapsedTime, SolverContext &cache)
 
void writeBackContact (const PxConstraintBatchHeader &hdr, const PxSolverConstraintDesc *desc, SolverContext *cache)
 
void writeBack1D (const PxConstraintBatchHeader &hdr, const PxSolverConstraintDesc *desc, SolverContext *)
 
void solveConclude1DBlock (const PxConstraintBatchHeader &hdr, const PxSolverConstraintDesc *desc, const PxTGSSolverBodyTxInertia *const txInertias, const PxReal elapsedTime, SolverContext &)
 
void solveConclude1DBlockExt (const PxConstraintBatchHeader &hdr, const PxSolverConstraintDesc *desc, const PxTGSSolverBodyTxInertia *const txInertias, const PxReal elapsedTime, SolverContext &cache)
 
void solveConcludeContactBlock (const PxConstraintBatchHeader &hdr, const PxSolverConstraintDesc *desc, const PxTGSSolverBodyTxInertia *const, const PxReal elapsedTime, SolverContext &)
 
void solveConcludeContactExtBlock (const PxConstraintBatchHeader &hdr, const PxSolverConstraintDesc *desc, const PxTGSSolverBodyTxInertia *const, const PxReal elapsedTime, SolverContext &cache)
 
SolverConstraintPrepState::Enum setupSolverConstraintStep4 (PxTGSSolverConstraintPrepDesc *PX_RESTRICT constraintDescs, const PxReal dt, const PxReal totalDt, const PxReal recipdt, const PxReal recipTotalDt, PxU32 &totalRows, PxConstraintAllocator &allocator, PxU32 maxRows, const PxReal lengthScale, const PxReal biasCoefficient)
 
SolverConstraintPrepState::Enum setupSolverConstraintStep4 (SolverConstraintShaderPrepDesc *PX_RESTRICT constraintShaderDescs, PxTGSSolverConstraintPrepDesc *PX_RESTRICT constraintDescs, const PxReal dt, const PxReal totalDt, const PxReal recipdt, const PxReal recipTotalDt, PxU32 &totalRows, PxConstraintAllocator &allocator, const PxReal lengthScale, const PxReal biasCoefficient)
 
SolverConstraintPrepState::Enum createFinalizeSolverContacts4Step (PxsContactManagerOutput **cmOutputs, ThreadContext &threadContext, PxTGSSolverContactDesc *blockDescs, const PxReal invDtF32, const PxReal totalDtF32, const PxReal invTotalDtF32, const PxReal dt, const PxReal bounceThresholdF32, const PxReal frictionOffsetThreshold, const PxReal correlationDistance, const PxReal biasCoefficient, PxConstraintAllocator &constraintAllocator)
 
SolverConstraintPrepState::Enum createFinalizeSolverContacts4Step (Dy::CorrelationBuffer &c, PxTGSSolverContactDesc *blockDescs, const PxReal invDtF32, const PxReal totalDt, const PxReal invTotalDtF32, const PxReal dt, const PxReal bounceThresholdF32, const PxReal frictionOffsetThreshold, const PxReal correlationDistance, const PxReal biasCoefficient, PxConstraintAllocator &constraintAllocator)
 
PX_FORCE_INLINE void QuatRotate4 (const Vec4VArg qx, const Vec4VArg qy, const Vec4VArg qz, const Vec4VArg qw, const Vec4VArg vx, const Vec4VArg vy, const Vec4VArg vz, Vec4V &rX, Vec4V &rY, Vec4V &rZ)
 
void computeBlockStreamByteSizes4 (PxTGSSolverContactDesc *descs, PxU32 &_solverConstraintByteSize, PxU32 *_axisConstraintCount, const CorrelationBuffer &c)
 
void solveContact4_Block (const PxSolverConstraintDesc *PX_RESTRICT desc, const bool doFriction, const PxReal minPenetration, const PxReal elapsedTimeF32)
 
void writeBackContact4_Block (const PxSolverConstraintDesc *PX_RESTRICT desc, SolverContext *cache)
 
void solveContact4 (const PxConstraintBatchHeader &hdr, const PxSolverConstraintDesc *PX_RESTRICT desc, const PxTGSSolverBodyTxInertia *const, const PxReal minPenetration, const PxReal elapsedTime, SolverContext &)
 
void writeBackContact4 (const PxConstraintBatchHeader &hdr, const PxSolverConstraintDesc *PX_RESTRICT desc, SolverContext *cache)
 
PX_FORCE_INLINE Vec4V V4Dot3 (const Vec4V &x0, const Vec4V &y0, const Vec4V &z0, const Vec4V &x1, const Vec4V &y1, const Vec4V &z1)
 
void solve1DStep4 (const PxSolverConstraintDesc *PX_RESTRICT desc, const PxTGSSolverBodyTxInertia *const txInertias, const PxReal elapsedTimeF32)
 
void solve1D4 (const PxConstraintBatchHeader &hdr, const PxSolverConstraintDesc *PX_RESTRICT desc, const PxTGSSolverBodyTxInertia *const txInertias, const PxReal, const PxReal elapsedTime, SolverContext &)
 
void writeBack1D4 (const PxConstraintBatchHeader &hdr, const PxSolverConstraintDesc *PX_RESTRICT desc, SolverContext *)
 
void concludeContact4_Block (const PxSolverConstraintDesc *PX_RESTRICT desc)
 
void conclude1DStep4 (const PxSolverConstraintDesc *PX_RESTRICT desc)
 
void solveConcludeContact4 (const PxConstraintBatchHeader &hdr, const PxSolverConstraintDesc *desc, const PxTGSSolverBodyTxInertia *const, const PxReal elapsedTime, SolverContext &)
 
void solveConclude1D4 (const PxConstraintBatchHeader &hdr, const PxSolverConstraintDesc *desc, const PxTGSSolverBodyTxInertia *const txInertias, const PxReal elapsedTime, SolverContext &)
 
PX_FORCE_INLINE PxVec3 safeRecip (const PxVec3 &v)
 
void copyToSolverBodyDataStepKinematic (const PxVec3 &linearVelocity, const PxVec3 &angularVelocity, const PxTransform &globalPose, const PxReal maxDepenetrationVelocity, const PxReal maxContactImpulse, const PxU32 nodeIndex, const PxReal reportThreshold, const PxReal maxAngVelSq, PxTGSSolverBodyVel &solverVel, PxTGSSolverBodyTxInertia &solverBodyTxInertia, PxTGSSolverBodyData &solverBodyData)
 
void averageVelocity (PxTGSSolverBodyVel &vel, const PxF32 invDt, const PxReal ratio)
 

Variables

PxcCreateFinalizeSolverContactMethod createFinalizeMethods [3]
 
PxcCreateFinalizeSolverContactMethod4 createFinalizeMethods4 [3]
 
physx::Dy::SolverConstraint1DExt PX_ALIGN_SUFFIX
 
TGSSolveBlockMethod g_SolveTGSMethods []
 
TGSWriteBackMethod g_WritebackTGSMethods []
 
TGSSolveConcludeMethod g_SolveConcludeTGSMethods []
 

Detailed Description

A header to represent a friction patch for the solver.

Typedef Documentation

◆ PxcCreateFinalizeSolverContactMethod

typedef bool(* physx::Dy::PxcCreateFinalizeSolverContactMethod) (CREATE_FINALIZE_SOLVER_CONTACT_METHOD_ARGS)

Method prototype for create finalize solver contact

Variable Documentation

◆ createFinalizeMethods

PxcCreateFinalizeSolverContactMethod physx::Dy::createFinalizeMethods
Initial value:
=
{
createFinalizeSolverContacts,
createFinalizeSolverContactsCoulomb1D,
createFinalizeSolverContactsCoulomb2D
}

◆ createFinalizeMethods4

PxcCreateFinalizeSolverContactMethod4 physx::Dy::createFinalizeMethods4
Initial value:
=
{
createFinalizeSolverContacts4,
createFinalizeSolverContacts4Coulomb1D,
createFinalizeSolverContacts4Coulomb2D
}

◆ g_SolveConcludeTGSMethods

TGSSolveConcludeMethod physx::Dy::g_SolveConcludeTGSMethods
Initial value:
=
{
0,
solveConcludeContactBlock,
solveConclude1DBlock,
solveConcludeContactExtBlock,
solveConclude1DBlockExt,
solveConcludeContactBlock,
solveConcludeContactBlock,
solveConcludeContact4,
solveConcludeContact4,
solveConclude1D4,
}

◆ g_SolveTGSMethods

TGSSolveBlockMethod physx::Dy::g_SolveTGSMethods
Initial value:
=
{
0,
solveContactBlock,
solve1DBlock,
solveExtContactBlock,
solveExt1DBlock,
solveContactBlock,
solveContactBlock,
solveContact4,
solveContact4,
solve1D4,
}

◆ g_WritebackTGSMethods

TGSWriteBackMethod physx::Dy::g_WritebackTGSMethods
Initial value:
=
{
0,
writeBackContact,
writeBack1D,
writeBackContact,
writeBack1D,
writeBackContact,
writeBackContact,
writeBackContact4,
writeBackContact4,
writeBack1D4,
}