|
| void | destroy () |
| | Destroys this DynamicsContext.
|
| |
| PX_FORCE_INLINE Cm::FlushPool & | getTaskPool () |
| | Returns the static world solver body.
|
| |
|
PX_FORCE_INLINE ThresholdStream & | getThresholdStream () |
| |
|
PX_FORCE_INLINE PxvSimStats & | getSimStats () |
| |
| virtual PX_CATCH_UNDEFINED_ENABLE_SIM_STATS void | update (IG::SimpleIslandManager &simpleIslandManager, PxBaseTask *continuation, PxBaseTask *lostTouchTask, PxvNphaseImplementationContext *nphase, const PxU32 maxPatchesPerCM, const PxU32 maxArticulationLinks, const PxReal dt, const PxVec3 &gravity, PxBitMapPinned &changedHandleMap) |
| | The entry point for the constraint solver.
|
| |
|
void | updatePostKinematic (IG::SimpleIslandManager &simpleIslandManager, PxBaseTask *continuation, PxBaseTask *lostTouchTask, const PxU32 maxLinks) |
| |
| virtual void | processLostPatches (IG::SimpleIslandManager &, PxsContactManager **, PxU32, PxsContactManagerOutputCounts *) |
| |
| virtual void | processFoundPatches (IG::SimpleIslandManager &, PxsContactManager **, PxU32, PxsContactManagerOutputCounts *) |
| |
| virtual void | updateBodyCore (PxBaseTask *continuation) |
| | This method copy gpu solver body data to cpu body core.
|
| |
| virtual void | setSimulationController (PxsSimulationController *simulationController) |
| |
| virtual void | mergeResults () |
| | This method combines the results of several islands, e.g. constructing scene-level simulation statistics and merging together threshold streams for contact notification.
|
| |
| virtual void | getDataStreamBase (void *&, void *&, void *&) |
| |
| virtual PxSolverType::Enum | getSolverType () const |
| |
| PX_FORCE_INLINE ThreadContext * | getThreadContext () |
| | Allocates and returns a thread context object.
|
| |
| void | putThreadContext (ThreadContext *context) |
| | Returns a thread context to the thread context pool.
|
| |
|
PX_FORCE_INLINE PxU32 | getKinematicCount () const |
| |
|
PX_FORCE_INLINE PxU64 | getContextId () const |
| |
|
PX_FORCE_INLINE PxReal | getLengthScale () const |
| |
|
PX_FORCE_INLINE PxReal | getMaxBiasCoefficient () const |
| |
|
PX_FORCE_INLINE void | setMaxBiasCoefficient (PxReal coeff) |
| |
| PX_FORCE_INLINE PxReal | getBounceThreshold () const |
| | Returns the bounce threshold.
|
| |
| PX_FORCE_INLINE PxReal | getFrictionOffsetThreshold () const |
| | Returns the friction offset threshold.
|
| |
| PX_FORCE_INLINE PxReal | getCorrelationDistance () const |
| | Returns the correlation distance.
|
| |
| PX_FORCE_INLINE PxReal | getCCDSeparationThreshold () const |
| | Returns the CCD separation threshold.
|
| |
| PX_FORCE_INLINE PxReal | getLengthScale () const |
| | Returns the length scale.
|
| |
| PX_FORCE_INLINE void | setBounceThreshold (PxReal f) |
| | Sets the bounce threshold.
|
| |
| PX_FORCE_INLINE void | setCorrelationDistance (PxReal f) |
| | Sets the correlation distance.
|
| |
| PX_FORCE_INLINE void | setFrictionOffsetThreshold (PxReal offset) |
| | Sets the friction offset threshold.
|
| |
| PX_FORCE_INLINE void | setCCDSeparationThreshold (PxReal offset) |
| | Sets the friction offset threshold.
|
| |
| PX_FORCE_INLINE PxU32 | getSolverBatchSize () const |
| | Returns the solver batch size.
|
| |
| PX_FORCE_INLINE void | setSolverBatchSize (PxU32 f) |
| | Sets the solver batch size.
|
| |
| PX_FORCE_INLINE PxU32 | getSolverArticBatchSize () const |
| | Returns the solver batch size.
|
| |
| PX_FORCE_INLINE void | setSolverArticBatchSize (PxU32 f) |
| | Sets the solver batch size.
|
| |
| PX_FORCE_INLINE PxU32 | getMaxSolverConstraintSize () const |
| | Returns the maximum solver constraint size.
|
| |
| PX_FORCE_INLINE PxFrictionType::Enum | getFrictionType () const |
| | Returns the friction model being used.
|
| |
| PX_FORCE_INLINE ThresholdStream & | getThresholdStream () |
| | Returns the threshold stream.
|
| |
|
PX_FORCE_INLINE ThresholdStream & | getForceChangedThresholdStream () |
| |
| PX_FORCE_INLINE ThresholdTable & | getThresholdTable () |
| | Returns the threshold table.
|
| |
| PX_FORCE_INLINE void | setFrictionType (PxFrictionType::Enum f) |
| | Sets the friction model to be used.
|
| |
|
PX_FORCE_INLINE PxcDataStreamPool & | getContactStreamPool () |
| |
|
PX_FORCE_INLINE PxcDataStreamPool & | getPatchStreamPool () |
| |
|
PX_FORCE_INLINE PxcDataStreamPool & | getForceStreamPool () |
| |
|
PX_FORCE_INLINE PxPinnedArray< Dy::ConstraintWriteback > & | getConstraintWriteBackPool () |
| |
| PX_FORCE_INLINE PxReal | getDt () const |
| | Returns the current frame's timestep.
|
| |
| PX_FORCE_INLINE PxReal | getInvDt () const |
| | Returns 1/(current frame's timestep)
|
| |
|
PX_FORCE_INLINE PxVec3 | getGravity () const |
| |
|
void | createThresholdStream (PxVirtualAllocatorCallback &callback) |
| |
|
void | createForceChangeThresholdStream (PxVirtualAllocatorCallback &callback) |
| |
|
void | setStateDirty (bool dirty) |
| |
|
bool | isStateDirty () |
| |
|
void | setSuppressReadback (bool suppressReadback) |
| |
|
bool | getSuppressReadback () |
| |
|
void | setDt (const PxReal dt) |
| |
|
|
| DynamicsTGSContext (PxcNpMemBlockPool *memBlockPool, PxcScratchAllocator &scratchAllocator, Cm::FlushPool &taskPool, PxvSimStats &simStats, PxTaskManager *taskManager, PxVirtualAllocatorCallback *allocator, PxsMaterialManager *materialManager, IG::SimpleIslandManager *islandManager, PxU64 contextID, const bool enableStabilization, const bool useEnhancedDeterminism, const PxReal lengthScale) |
| | Constructor for DynamicsContext.
|
| |
|
virtual | ~DynamicsTGSContext () |
| | Destructor for DynamicsContext.
|
| |
| void | computeUnconstrainedVelocity (PxsRigidBody *atom) const |
| | Computes the unconstrained velocity for a given PxsRigidBody.
|
| |
| void | setDescFromIndices (PxSolverConstraintDesc &desc, const IG::IslandSim &islandSim, const PxsIndexedInteraction &constraint, const PxU32 solverBodyOffset, PxTGSSolverBodyVel *solverBodies) |
| | fills in a PxSolverConstraintDesc from an indexed interaction
|
| |
|
void | setDescFromIndices (PxSolverConstraintDesc &desc, IG::EdgeIndex edgeIndex, const IG::SimpleIslandManager &islandManager, PxU32 *bodyRemapTable, const PxU32 solverBodyOffset, PxTGSSolverBodyVel *solverBodies) |
| |
|
void | solveIsland (const SolverIslandObjectsStep &objects, const PxsIslandIndices &counts, const PxU32 solverBodyOffset, IG::SimpleIslandManager &islandManager, PxU32 *bodyRemapTable, PxsMaterialManager *materialManager, PxsContactManagerOutputIterator &iterator, PxBaseTask *continuation) |
| |
|
void | prepareBodiesAndConstraints (const SolverIslandObjectsStep &objects, IG::SimpleIslandManager &islandManager, IslandContextStep &islandContext) |
| |
|
void | setupDescs (IslandContextStep &islandContext, const SolverIslandObjectsStep &objects, PxU32 *mBodyRemapTable, PxU32 mSolverBodyOffset, PxsContactManagerOutputIterator &outputs) |
| |
|
void | preIntegrateBodies (PxsBodyCore **bodyArray, PxsRigidBody **originalBodyArray, PxTGSSolverBodyVel *solverBodyVelPool, PxTGSSolverBodyTxInertia *solverBodyTxInertia, PxTGSSolverBodyData *solverBodyDataPool2, PxU32 *nodeIndexArray, const PxU32 bodyCount, const PxVec3 &gravity, const PxReal dt, PxU32 &posIters, PxU32 &velIters, PxU32 iteration) |
| |
|
void | setupArticulations (IslandContextStep &islandContext, const PxVec3 &gravity, const PxReal dt, PxU32 &posIters, PxU32 &velIters, PxBaseTask *continuation) |
| |
|
PxU32 | setupArticulationInternalConstraints (IslandContextStep &islandContext, PxReal dt, PxReal invStepDt) |
| |
|
void | createSolverConstraints (PxSolverConstraintDesc *contactDescPtr, PxConstraintBatchHeader *headers, const PxU32 nbHeaders, PxsContactManagerOutputIterator &outputs, Dy::ThreadContext &islandThreadContext, Dy::ThreadContext &threadContext, PxReal stepDt, PxReal totalDt, PxReal invStepDt, const PxReal biasCoefficient, PxI32 velIters) |
| |
|
void | solveConstraintsIteration (const PxSolverConstraintDesc *const contactDescPtr, const PxConstraintBatchHeader *const batchHeaders, const PxU32 nbHeaders, PxReal invStepDt, const PxTGSSolverBodyTxInertia *const solverTxInertia, const PxReal elapsedTime, const PxReal minPenetration, SolverContext &cache) |
| |
|
template<bool TSync> |
| void | solveConcludeConstraintsIteration (const PxSolverConstraintDesc *const contactDescPtr, const PxConstraintBatchHeader *const batchHeaders, const PxU32 nbHeaders, PxTGSSolverBodyTxInertia *solverTxInertia, const PxReal elapsedTime, SolverContext &cache, const PxU32 iterCount) |
| |
|
template<bool Sync> |
| void | parallelSolveConstraints (const PxSolverConstraintDesc *const contactDescPtr, const PxConstraintBatchHeader *const batchHeaders, const PxU32 nbHeaders, PxTGSSolverBodyTxInertia *solverTxInertia, const PxReal elapsedTime, const PxReal minPenetration, SolverContext &cache, const PxU32 iterCount) |
| |
|
void | writebackConstraintsIteration (const PxConstraintBatchHeader *const hdrs, const PxSolverConstraintDesc *const contactDescPtr, const PxU32 nbHeaders) |
| |
|
void | parallelWritebackConstraintsIteration (const PxSolverConstraintDesc *const contactDescPtr, const PxConstraintBatchHeader *const batchHeaders, const PxU32 nbHeaders) |
| |
|
void | integrateBodies (const SolverIslandObjectsStep &objects, const PxU32 count, PxTGSSolverBodyVel *vels, PxTGSSolverBodyTxInertia *txInertias, const PxTGSSolverBodyData *const bodyDatas, PxReal dt, PxReal invTotalDt, bool averageBodies, const PxReal ratio) |
| |
|
void | parallelIntegrateBodies (PxTGSSolverBodyVel *vels, PxTGSSolverBodyTxInertia *txInertias, const PxTGSSolverBodyData *const bodyDatas, const PxU32 count, PxReal dt, const PxU32 iteration, PxReal invTotalDt, bool average, const PxReal ratio) |
| |
|
void | copyBackBodies (const SolverIslandObjectsStep &objects, PxTGSSolverBodyVel *vels, PxTGSSolverBodyTxInertia *txInertias, PxTGSSolverBodyData *solverBodyData, PxReal invDt, IG::IslandSim &islandSim, PxU32 startIdx, PxU32 endIdx) |
| |
|
void | updateArticulations (Dy::ThreadContext &threadContext, const PxU32 startIdx, const PxU32 endIdx, PxReal dt) |
| |
|
void | stepArticulations (Dy::ThreadContext &threadContext, const PxsIslandIndices &counts, PxReal dt, PxReal stepInvDt) |
| |
|
void | iterativeSolveIsland (const SolverIslandObjectsStep &objects, const PxsIslandIndices &counts, ThreadContext &mThreadContext, const PxReal stepDt, const PxReal invStepDt, const PxU32 posIters, const PxU32 velIters, SolverContext &cache, const PxReal ratio, const PxReal biasCoefficient) |
| |
|
void | iterativeSolveIslandParallel (const SolverIslandObjectsStep &objects, const PxsIslandIndices &counts, ThreadContext &mThreadContext, const PxReal stepDt, const PxU32 posIters, const PxU32 velIters, PxI32 *solverCounts, PxI32 *integrationCounts, PxI32 *articulationIntegrationCounts, PxI32 *solverProgressCount, PxI32 *integrationProgressCount, PxI32 *articulationProgressCount, PxU32 solverUnrollSize, PxU32 integrationUnrollSize, const PxReal ratio, const PxReal biasCoefficient) |
| |
|
void | endIsland (ThreadContext &mThreadContext) |
| |
|
void | finishSolveIsland (ThreadContext &mThreadContext, const SolverIslandObjectsStep &objects, const PxsIslandIndices &counts, IG::SimpleIslandManager &islandManager, PxBaseTask *continuation) |
| |
|
void | resetThreadContexts () |
| | Resets the thread contexts.
|
| |
| PX_FORCE_INLINE PxcScratchAllocator & | getScratchAllocator () |
| | Returns the scratch memory allocator.
|
| |
|
| Context (IG::SimpleIslandManager *islandManager, PxVirtualAllocatorCallback *allocatorCallback, PxvSimStats &simStats, bool enableStabilization, bool useEnhancedDeterminism, const PxReal maxBiasCoefficient, const PxReal lengthScale) |
| |