Blender
V3.3
|
#include "btSequentialImpulseConstraintSolver.h"
#include "btBatchedConstraints.h"
#include "LinearMath/btThreads.h"
Go to the source code of this file.
Classes | |
struct | btContactManifoldCachedInfo |
struct | JointParams |
|
protected |
Definition at line 513 of file btSequentialImpulseConstraintSolverMt.cpp.
References BT_PROFILE, btParallelFor(), btAlignedObjectArray< T >::capacity(), btContactManifoldCachedInfo::contactHasRollingFriction, btContactManifoldCachedInfo::contactIndex, infoGlobal, internalCollectContactManifoldCachedInfo(), m_numFrictionDirections, m_rollingFrictionIndexTable, m_tmpSolverContactConstraintPool, m_tmpSolverContactFrictionConstraintPool, m_tmpSolverContactRollingFrictionConstraintPool, manifoldPtr, numManifolds, btContactManifoldCachedInfo::numTouchingContacts, btAlignedObjectArray< T >::reserve(), btAlignedObjectArray< T >::resizeNoInitialize(), and btContactManifoldCachedInfo::rollingFrictionIndex.
BT_DECLARE_ALIGNED_ALLOCATOR | ( | ) |
btSequentialImpulseConstraintSolverMt::btSequentialImpulseConstraintSolverMt | ( | ) |
Definition at line 32 of file btSequentialImpulseConstraintSolverMt.cpp.
References m_numFrictionDirections, m_useBatching, and m_useObsoleteJointConstraints.
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
|
protected |
Definition at line 297 of file btSequentialImpulseConstraintSolverMt.cpp.
References btAssert, btSolverBody, initSolverBody(), btSpinMutex::lock(), m_bodySolverArrayMutex, m_fixedBodyId, m_kinematicBodyUniqueIdToSolverBodyTable, m_kinematicBodyUniqueIdToSolverBodyTableMutex, NULL, btAlignedObjectArray< T >::resize(), btAlignedObjectArray< T >::size(), uniqueId, btSpinMutex::unlock(), and btRigidBody::upcast().
Referenced by internalCollectContactManifoldCachedInfo().
void btSequentialImpulseConstraintSolverMt::internalAllocContactConstraints | ( | const btContactManifoldCachedInfo * | cachedInfoArray, |
int | numManifolds | ||
) |
Definition at line 450 of file btSequentialImpulseConstraintSolverMt.cpp.
References BT_PROFILE, btSolverConstraint, btContactManifoldCachedInfo::contactHasRollingFriction, btContactManifoldCachedInfo::contactIndex, btContactManifoldCachedInfo::contactPoints, m_numFrictionDirections, m_rollingFrictionIndexTable, m_tmpSolverContactConstraintPool, m_tmpSolverContactFrictionConstraintPool, m_tmpSolverContactRollingFrictionConstraintPool, numManifolds, btContactManifoldCachedInfo::numTouchingContacts, btContactManifoldCachedInfo::rollingFrictionIndex, and btContactManifoldCachedInfo::solverBodyIds.
void btSequentialImpulseConstraintSolverMt::internalCollectContactManifoldCachedInfo | ( | btContactManifoldCachedInfo * | cachedInfoArray, |
btPersistentManifold ** | manifoldPtr, | ||
int | numManifolds, | ||
const btContactSolverInfo & | infoGlobal | ||
) |
Definition at line 389 of file btSequentialImpulseConstraintSolverMt.cpp.
References BT_PROFILE, btAssert, btCollisionObject, btPersistentManifold(), btSolverBody, btContactManifoldCachedInfo::contactHasRollingFriction, btContactManifoldCachedInfo::contactPoints, btManifoldPoint::getDistance(), getOrInitSolverBodyThreadsafe(), infoGlobal, btManifoldPoint::m_combinedRollingFriction, m_invMass, btContactSolverInfoData::m_timeStep, manifoldPtr, numManifolds, btContactManifoldCachedInfo::numTouchingContacts, and btContactManifoldCachedInfo::solverBodyIds.
Referenced by allocAllContactConstraints().
void btSequentialImpulseConstraintSolverMt::internalConvertBodies | ( | btCollisionObject ** | bodies, |
int | iBegin, | ||
int | iEnd, | ||
const btContactSolverInfo & | infoGlobal | ||
) |
Definition at line 747 of file btSequentialImpulseConstraintSolverMt.cpp.
References BT_ENABLE_GYROSCOPIC_FORCE_EXPLICIT, BT_ENABLE_GYROSCOPIC_FORCE_IMPLICIT_BODY, BT_ENABLE_GYROSCOPIC_FORCE_IMPLICIT_WORLD, BT_PROFILE, btCollisionObject, btSolverBody, btVector3, btRigidBody::computeGyroscopicForceExplicit(), btRigidBody::computeGyroscopicImpulseImplicit_Body(), btRigidBody::computeGyroscopicImpulseImplicit_World(), btRigidBody::getFlags(), btRigidBody::getInvInertiaTensorWorld(), btRigidBody::getInvMass(), infoGlobal, initSolverBody(), btContactSolverInfoData::m_maxGyroscopicForce, btContactSolverInfoData::m_timeStep, and btRigidBody::upcast().
void btSequentialImpulseConstraintSolverMt::internalConvertMultipleJoints | ( | const btAlignedObjectArray< JointParams > & | jointParamsArray, |
btTypedConstraint ** | constraints, | ||
int | iBegin, | ||
int | iEnd, | ||
const btContactSolverInfo & | infoGlobal | ||
) |
Definition at line 643 of file btSequentialImpulseConstraintSolverMt.cpp.
References BT_PROFILE, btAssert, btSolverConstraint, btTypedConstraint(), constraints, convertJoint(), infoGlobal, JointParams::m_solverBodyA, JointParams::m_solverBodyB, JointParams::m_solverConstraint, m_tmpConstraintSizesPool, m_tmpSolverNonContactConstraintPool, and btAlignedObjectArray< T >::size().
void btSequentialImpulseConstraintSolverMt::internalInitMultipleJoints | ( | btTypedConstraint ** | constraints, |
int | iBegin, | ||
int | iEnd | ||
) |
Definition at line 598 of file btSequentialImpulseConstraintSolverMt.cpp.
References BT_PROFILE, btJointFeedback, btTypedConstraint(), constraints, fb(), and m_tmpConstraintSizesPool.
void btSequentialImpulseConstraintSolverMt::internalSetupContactConstraints | ( | int | iContactConstraint, |
const btContactSolverInfo & | infoGlobal | ||
) |
Bullet has several options to set the friction directions By default, each contact has only a single friction direction that is recomputed automatically very frame based on the relative linear velocity. If the relative velocity it zero, it will automatically compute a friction direction.
You can also enable two friction directions, using the SOLVER_USE_2_FRICTION_DIRECTIONS. In that case, the second friction direction will be orthogonal to both contact normal and first friction direction.
If you choose SOLVER_DISABLE_VELOCITY_DEPENDENT_FRICTION_DIRECTION, then the friction will be independent from the relative projected velocity.
The user can manually override the friction directions for certain contacts using a contact callback, and set the cp.m_lateralFrictionInitialized to true In that case, you can set the target relative motion in each friction direction (cp.m_contactMotion1 and cp.m_contactMotion2) this will give a conveyor belt effect
Definition at line 65 of file btSequentialImpulseConstraintSolverMt.cpp.
References applyAnisotropicFriction(), BT_CONTACT_FLAG_LATERAL_FRICTION_INITIALIZED, btAssert, btPlaneSpace1(), btSolverBody, btSolverConstraint, btSqrt(), btSwap(), btVector3, CF_ANISOTROPIC_FRICTION, CF_ANISOTROPIC_ROLLING_FRICTION, btManifoldPoint::getPositionWorldOnA(), btManifoldPoint::getPositionWorldOnB(), infoGlobal, length2(), btManifoldPoint::m_combinedRollingFriction, btManifoldPoint::m_combinedSpinningFriction, btManifoldPoint::m_contactMotion1, btManifoldPoint::m_contactMotion2, btManifoldPoint::m_contactPointFlags, btManifoldPoint::m_frictionCFM, btManifoldPoint::m_lateralFrictionDir1, btManifoldPoint::m_lateralFrictionDir2, btManifoldPoint::m_normalWorldOnB, m_rollingFrictionIndexTable, btContactSolverInfoData::m_solverMode, m_tmpSolverContactConstraintPool, m_tmpSolverContactFrictionConstraintPool, m_tmpSolverContactRollingFrictionConstraintPool, NULL, setFrictionConstraintImpulse(), setupContactConstraint(), setupFrictionConstraint(), setupTorsionalFrictionConstraint(), SIMD_EPSILON, SOLVER_DISABLE_VELOCITY_DEPENDENT_FRICTION_DIRECTION, SOLVER_ENABLE_FRICTION_DIRECTION_CACHING, and SOLVER_USE_2_FRICTION_DIRECTIONS.
Referenced by setupAllContactConstraints().
void btSequentialImpulseConstraintSolverMt::internalWriteBackBodies | ( | int | iBegin, |
int | iEnd, | ||
const btContactSolverInfo & | infoGlobal | ||
) |
Definition at line 1471 of file btSequentialImpulseConstraintSolverMt.cpp.
References BT_PROFILE, infoGlobal, and writeBackBodies().
void btSequentialImpulseConstraintSolverMt::internalWriteBackContacts | ( | int | iBegin, |
int | iEnd, | ||
const btContactSolverInfo & | infoGlobal | ||
) |
Definition at line 1447 of file btSequentialImpulseConstraintSolverMt.cpp.
References BT_PROFILE, infoGlobal, and writeBackContacts().
void btSequentialImpulseConstraintSolverMt::internalWriteBackJoints | ( | int | iBegin, |
int | iEnd, | ||
const btContactSolverInfo & | infoGlobal | ||
) |
Definition at line 1465 of file btSequentialImpulseConstraintSolverMt.cpp.
References BT_PROFILE, infoGlobal, and writeBackJoints().
|
protected |
Definition at line 1168 of file btSequentialImpulseConstraintSolverMt.cpp.
References batch, btAssert, btRandInt2(), btBatchedConstraints::m_batches, btBatchedConstraints::m_constraintIndices, btBatchedConstraints::m_phaseOrder, btAlignedObjectArray< T >::size(), and btAlignedObjectArray< T >::swap().
Referenced by randomizeConstraintOrdering().
|
protectedvirtual |
Definition at line 1192 of file btSequentialImpulseConstraintSolverMt.cpp.
References m_batchedContactConstraints, m_batchedJointConstraints, and randomizeBatchedConstraintOrdering().
|
protectedvirtual |
Definition at line 1268 of file btSequentialImpulseConstraintSolverMt.cpp.
References btBatchedConstraints::Range::begin, BT_PROFILE, btParallelSum(), btBatchedConstraints::Range::end, m_batchedContactConstraints, btBatchedConstraints::m_phaseGrainSize, btBatchedConstraints::m_phaseOrder, and btBatchedConstraints::m_phases.
|
protectedvirtual |
Definition at line 1346 of file btSequentialImpulseConstraintSolverMt.cpp.
References btBatchedConstraints::Range::begin, BT_PROFILE, btParallelSum(), btBatchedConstraints::Range::end, m_batchedContactConstraints, btBatchedConstraints::m_phaseOrder, and btBatchedConstraints::m_phases.
|
protectedvirtual |
Definition at line 1307 of file btSequentialImpulseConstraintSolverMt.cpp.
References btBatchedConstraints::Range::begin, BT_PROFILE, btParallelSum(), btBatchedConstraints::Range::end, m_batchedContactConstraints, btBatchedConstraints::m_phaseGrainSize, btBatchedConstraints::m_phaseOrder, and btBatchedConstraints::m_phases.
|
protectedvirtual |
Definition at line 1229 of file btSequentialImpulseConstraintSolverMt.cpp.
References btBatchedConstraints::Range::begin, BT_PROFILE, btParallelSum(), btBatchedConstraints::Range::end, m_batchedJointConstraints, btBatchedConstraints::m_phaseOrder, and btBatchedConstraints::m_phases.
|
protectedvirtual |
Definition at line 1385 of file btSequentialImpulseConstraintSolverMt.cpp.
References btBatchedConstraints::Range::begin, BT_PROFILE, btParallelSum(), btSolverConstraint, btBatchedConstraints::Range::end, m_batchedContactConstraints, btBatchedConstraints::m_phaseOrder, btBatchedConstraints::m_phases, m_tmpSolverContactConstraintPool, m_tmpSolverContactRollingFrictionConstraintPool, resolveSingleConstraintRowGeneric(), and btAlignedObjectArray< T >::size().
btScalar btSequentialImpulseConstraintSolverMt::resolveMultipleContactConstraints | ( | const btAlignedObjectArray< int > & | consIndices, |
int | batchBegin, | ||
int | batchEnd | ||
) |
Definition at line 1013 of file btSequentialImpulseConstraintSolverMt.cpp.
References btSolverBody, btSolverConstraint, m_tmpSolverContactConstraintPool, and resolveSingleConstraintRowLowerLimit().
btScalar btSequentialImpulseConstraintSolverMt::resolveMultipleContactConstraintsInterleaved | ( | const btAlignedObjectArray< int > & | contactIndices, |
int | batchBegin, | ||
int | batchEnd | ||
) |
Definition at line 1099 of file btSequentialImpulseConstraintSolverMt.cpp.
References btAssert, btSolverBody, btSolverConstraint, m_numFrictionDirections, m_rollingFrictionIndexTable, m_tmpSolverContactConstraintPool, m_tmpSolverContactFrictionConstraintPool, m_tmpSolverContactRollingFrictionConstraintPool, resolveSingleConstraintRowGeneric(), resolveSingleConstraintRowLowerLimit(), and btAlignedObjectArray< T >::size().
btScalar btSequentialImpulseConstraintSolverMt::resolveMultipleContactFrictionConstraints | ( | const btAlignedObjectArray< int > & | consIndices, |
int | batchBegin, | ||
int | batchEnd | ||
) |
Definition at line 1028 of file btSequentialImpulseConstraintSolverMt.cpp.
References btAssert, btSolverBody, btSolverConstraint, m_numFrictionDirections, m_tmpSolverContactConstraintPool, m_tmpSolverContactFrictionConstraintPool, and resolveSingleConstraintRowGeneric().
btScalar btSequentialImpulseConstraintSolverMt::resolveMultipleContactRollingFrictionConstraints | ( | const btAlignedObjectArray< int > & | consIndices, |
int | batchBegin, | ||
int | batchEnd | ||
) |
Definition at line 1059 of file btSequentialImpulseConstraintSolverMt.cpp.
References btSolverConstraint, m_rollingFrictionIndexTable, m_tmpSolverContactConstraintPool, m_tmpSolverContactRollingFrictionConstraintPool, and resolveSingleConstraintRowGeneric().
btScalar btSequentialImpulseConstraintSolverMt::resolveMultipleContactSplitPenetrationImpulseConstraints | ( | const btAlignedObjectArray< int > & | consIndices, |
int | batchBegin, | ||
int | batchEnd | ||
) |
Definition at line 858 of file btSequentialImpulseConstraintSolverMt.cpp.
References btSolverBody, btSolverConstraint, m_tmpSolverContactConstraintPool, and resolveSplitPenetrationImpulse().
btScalar btSequentialImpulseConstraintSolverMt::resolveMultipleJointConstraints | ( | const btAlignedObjectArray< int > & | consIndices, |
int | batchBegin, | ||
int | batchEnd, | ||
int | iteration | ||
) |
Definition at line 995 of file btSequentialImpulseConstraintSolverMt.cpp.
References btSolverBody, btSolverConstraint, m_tmpSolverNonContactConstraintPool, and resolveSingleConstraintRowGeneric().
|
protected |
Definition at line 273 of file btSequentialImpulseConstraintSolverMt.cpp.
References btBatchedConstraints::Range::begin, BT_PROFILE, btParallelFor(), btBatchedConstraints::Range::end, infoGlobal, internalSetupContactConstraints(), m_batchedContactConstraints, btBatchedConstraints::m_phaseOrder, btBatchedConstraints::m_phases, m_tmpSolverContactConstraintPool, m_useBatching, and btAlignedObjectArray< T >::size().
|
protectedvirtual |
Definition at line 43 of file btSequentialImpulseConstraintSolverMt.cpp.
References BT_PROFILE, m_batchedContactConstraints, m_scratchMemory, m_tmpSolverContactConstraintPool, s_contactBatchingMethod, s_maxBatchSize, s_minBatchSize, and btBatchedConstraints::setup().
|
protectedvirtual |
Definition at line 54 of file btSequentialImpulseConstraintSolverMt.cpp.
References BT_PROFILE, m_batchedJointConstraints, m_scratchMemory, m_tmpSolverNonContactConstraintPool, s_jointBatchingMethod, s_maxBatchSize, s_minBatchSize, and btBatchedConstraints::setup().
|
virtual |
|
virtual |
|
virtual |
|
virtual |
Definition at line 39 of file btSequentialImpulseConstraintSolverMt.cpp.
btSequentialImpulseConstraintSolverMt
A multithreaded variant of the sequential impulse constraint solver. The constraints to be solved are grouped into batches and phases where each batch of constraints within a given phase can be solved in parallel with the rest. Ideally we want as few phases as possible, and each phase should have many batches, and all of the batches should have about the same number of constraints. This method works best on a large island of many constraints.
Supports all of the features of the normal sequential impulse solver such as:
When the SOLVER_INTERLEAVE_CONTACT_AND_FRICTION_CONSTRAINTS flag is enabled, unlike the normal SequentialImpulse solver, the rolling friction is interleaved as well. Interleaving the contact penetration constraints with friction reduces the number of parallel loops that need to be done, which reduces threading overhead so it can be a performance win, however, it does seem to produce a less stable simulation, at least on stacks of blocks.
When the SOLVER_RANDMIZE_ORDER flag is enabled, the ordering of phases, and the ordering of constraints within each batch is randomized, however it does not swap constraints between batches. This is to avoid regenerating the batches for each solver iteration which would be quite costly in performance.
Note that a non-zero leastSquaresResidualThreshold could possibly affect the determinism of the simulation if the task scheduler's parallelSum operation is non-deterministic. The parallelSum operation can be non-deterministic because floating point addition is not associative due to rounding errors. The task scheduler can and should ensure that the result of any parallelSum operation is deterministic.
Definition at line 57 of file btSequentialImpulseConstraintSolverMt.h.
btSequentialImpulseConstraintSolverMt int btPersistentManifold int btTypedConstraint int const btContactSolverInfo btIDebugDraw* debugDrawer BT_OVERRIDE |
Definition at line 60 of file btSequentialImpulseConstraintSolverMt.h.
|
staticprotected |
Definition at line 96 of file btSequentialImpulseConstraintSolverMt.h.
btSequentialImpulseConstraintSolverMt int btPersistentManifold int btTypedConstraint** constraints |
Definition at line 60 of file btSequentialImpulseConstraintSolverMt.h.
Referenced by btSimulationIslandManagerMt::addConstraintsToIslands(), BKE_constraint_apply_and_remove_for_object(), BKE_constraint_apply_and_remove_for_pose(), blender::deg::DepsgraphRelationBuilder::build_constraints(), btSimulationIslandManagerMt::buildAndProcessIslands(), calcBatchCost(), constraint_apply_exec(), constraint_copy_exec(), constraint_find_original(), constraint_list_find_from_target(), convertJoints(), debugDrawAllBatches(), debugDrawPhase(), debugDrawSingleBatch(), initBatchedConstraintInfo(), initBatchedConstraintInfoArray(), InitJointsLoop::InitJointsLoop(), internalConvertMultipleJoints(), internalInitMultipleJoints(), InplaceSolverIslandCallback::processConstraints(), MultiBodyInplaceSolverIslandCallback::processConstraints(), DeformableBodyInplaceSolverIslandCallback::processConstraints(), ReadSolverConstraintsLoop::ReadSolverConstraintsLoop(), btBatchedConstraints::setup(), setupSpatialGridBatchesMt(), solveDeformableBodyGroup(), solveDeformableGroupIterations(), btConstraintSolverPoolMt::solveGroup(), btMultiBodyMLCPConstraintSolver::solveGroupCacheFriendlyIterations(), btMLCPSolver::solveGroupCacheFriendlyIterations(), btMLCPSolver::solveGroupCacheFriendlySetup(), btMultiBodyMLCPConstraintSolver::solveGroupCacheFriendlySetup(), solveMultiBodyGroup(), solveSingleIteration(), uiTemplateConstraints(), btBatchedConstraints::validate(), and version_liboverride_rnacollections_insertion_object_constraints().
btSequentialImpulseConstraintSolverMt int btPersistentManifold int btTypedConstraint int const btContactSolverInfo& infoGlobal |
Definition at line 60 of file btSequentialImpulseConstraintSolverMt.h.
Referenced by addFrictionConstraint(), addMultiBodyFrictionConstraint(), addMultiBodySpinningFrictionConstraint(), addMultiBodyTorsionalFrictionConstraint(), allocAllContactConstraints(), CollectContactManifoldCachedInfoLoop::CollectContactManifoldCachedInfoLoop(), convertBodies(), convertContact(), convertContacts(), convertJoint(), convertJoints(), convertMultiBodyContact(), btMultiBodyFixedConstraint::createConstraintRows(), btMultiBodyGearConstraint::createConstraintRows(), btMultiBodyJointLimitConstraint::createConstraintRows(), btMultiBodyJointMotor::createConstraintRows(), btMultiBodySliderConstraint::createConstraintRows(), btMultiBodySphericalJointMotor::createConstraintRows(), btMLCPSolver::createMLCP(), btMultiBodyMLCPConstraintSolver::createMLCPFast(), btMLCPSolver::createMLCPFast(), btMultiBodyMLCPConstraintSolver::createMLCPFastMultiBody(), btMultiBodyMLCPConstraintSolver::createMLCPFastRigidBody(), fillMultiBodyConstraint(), internalCollectContactManifoldCachedInfo(), internalConvertBodies(), internalConvertMultipleJoints(), internalSetupContactConstraints(), internalWriteBackBodies(), internalWriteBackContacts(), internalWriteBackJoints(), btDeformableMultiBodyDynamicsWorld::positionCorrection(), btDeformableBackwardEulerObjective::setConstraints(), btDeformableBodySolver::setConstraints(), btDeformableContactProjection::setConstraints(), setFrictionConstraintImpulse(), setupAllContactConstraints(), setupContactConstraint(), SetupContactConstraintsLoop::SetupContactConstraintsLoop(), setupFrictionConstraint(), setupMultiBodyContactConstraint(), setupMultiBodyTorsionalFrictionConstraint(), btDeformableRigidContactConstraint::solveConstraint(), btDeformableBodySolver::solveContactConstraints(), solveDeformableGroupIterations(), solveGroupCacheFriendlyFinish(), btMultiBodyMLCPConstraintSolver::solveGroupCacheFriendlyIterations(), btMLCPSolver::solveGroupCacheFriendlyIterations(), btMLCPSolver::solveGroupCacheFriendlySetup(), btMultiBodyMLCPConstraintSolver::solveGroupCacheFriendlySetup(), solveGroupCacheFriendlySplitImpulseIterations(), btMultiBodyMLCPConstraintSolver::solveMLCP(), btMLCPSolver::solveMLCP(), solveSingleIteration(), btDeformableContactProjection::solveSplitImpulse(), btDeformableRigidContactConstraint::solveSplitImpulse(), btSimpleDynamicsWorld::stepSimulation(), btDeformableContactProjection::update(), writeBackBodies(), writeBackContacts(), writeBackJoints(), WriteBodiesLoop::WriteBodiesLoop(), WriteContactPointsLoop::WriteContactPointsLoop(), WriteJointsLoop::WriteJointsLoop(), and writeToSolverBody().
|
protected |
Definition at line 106 of file btSequentialImpulseConstraintSolverMt.h.
|
protected |
Definition at line 98 of file btSequentialImpulseConstraintSolverMt.h.
Referenced by randomizeConstraintOrdering(), resolveAllContactConstraints(), resolveAllContactConstraintsInterleaved(), resolveAllContactFrictionConstraints(), resolveAllRollingFrictionConstraints(), setupAllContactConstraints(), and setupBatchedContactConstraints().
|
protected |
Definition at line 99 of file btSequentialImpulseConstraintSolverMt.h.
Referenced by randomizeConstraintOrdering(), resolveAllJointConstraints(), and setupBatchedJointConstraints().
|
protected |
Definition at line 105 of file btSequentialImpulseConstraintSolverMt.h.
Referenced by getOrInitSolverBodyThreadsafe().
|
protected |
Definition at line 107 of file btSequentialImpulseConstraintSolverMt.h.
Referenced by getOrInitSolverBodyThreadsafe().
|
protected |
Definition at line 103 of file btSequentialImpulseConstraintSolverMt.h.
|
protected |
|
protected |
|
protected |
Definition at line 108 of file btSequentialImpulseConstraintSolverMt.h.
Referenced by setupBatchedContactConstraints(), and setupBatchedJointConstraints().
|
protected |
Definition at line 101 of file btSequentialImpulseConstraintSolverMt.h.
Referenced by btSequentialImpulseConstraintSolverMt(), and setupAllContactConstraints().
|
protected |
Definition at line 102 of file btSequentialImpulseConstraintSolverMt.h.
Referenced by btSequentialImpulseConstraintSolverMt().
btSequentialImpulseConstraintSolverMt int btPersistentManifold** manifoldPtr |
Definition at line 60 of file btSequentialImpulseConstraintSolverMt.h.
Referenced by allocAllContactConstraints(), CollectContactManifoldCachedInfoLoop::CollectContactManifoldCachedInfoLoop(), convertContacts(), internalCollectContactManifoldCachedInfo(), btManifoldResult::setPersistentManifold(), solveDeformableGroupIterations(), btMultiBodyMLCPConstraintSolver::solveGroupCacheFriendlyIterations(), btMLCPSolver::solveGroupCacheFriendlyIterations(), btMLCPSolver::solveGroupCacheFriendlySetup(), btMultiBodyMLCPConstraintSolver::solveGroupCacheFriendlySetup(), and btSimpleDynamicsWorld::stepSimulation().
btSequentialImpulseConstraintSolverMt int numBodies |
Definition at line 60 of file btSequentialImpulseConstraintSolverMt.h.
Referenced by btSimulationIslandManagerMt::addBodiesToIslands(), btSimulationIslandManagerMt::allocateIsland(), convertBodies(), ConvertBodiesLoop::ConvertBodiesLoop(), btMLCPSolver::createMLCP(), btMLCPSolver::createMLCPFast(), btMultiBodyMLCPConstraintSolver::createMLCPFastRigidBody(), createPredictiveContactsInternal(), findMaxDynamicConstraintExtent(), integrateTransformsInternal(), btSimulationIslandManagerMt::mergeIslands(), InplaceSolverIslandCallback::processIsland(), MultiBodyInplaceSolverIslandCallback::processIsland(), solveDeformableBodyGroup(), solveDeformableGroupIterations(), btConstraintSolverPoolMt::solveGroup(), solveGroupCacheFriendlyFinish(), btMultiBodyMLCPConstraintSolver::solveGroupCacheFriendlyIterations(), btMLCPSolver::solveGroupCacheFriendlyIterations(), btMultiBodyMLCPConstraintSolver::solveGroupCacheFriendlySetup(), solveMultiBodyGroup(), and writeToSolverBody().
btSequentialImpulseConstraintSolverMt int btPersistentManifold int btTypedConstraint int numConstraints |
Definition at line 60 of file btSequentialImpulseConstraintSolverMt.h.
Referenced by btMultiBodyDynamicsWorld::calculateSimulationIslands(), convertJoints(), expandConstraintRows(), expandConstraintRowsInPlace(), expandConstraintRowsMt(), findMaxDynamicConstraintExtent(), initBatchedConstraintInfo(), initBatchedConstraintInfoArray(), btSimulationIslandManagerMt::mergeIslands(), runLengthEncodeConstraintInfo(), InplaceSolverIslandCallback::setup(), MultiBodyInplaceSolverIslandCallback::setup(), setupSingleBatch(), setupSpatialGridBatchesMt(), solveDeformableBodyGroup(), solveDeformableGroupIterations(), btConstraintSolverPoolMt::solveGroup(), btMultiBodyMLCPConstraintSolver::solveGroupCacheFriendlyIterations(), btMLCPSolver::solveGroupCacheFriendlyIterations(), btMLCPSolver::solveGroupCacheFriendlySetup(), btMultiBodyMLCPConstraintSolver::solveGroupCacheFriendlySetup(), solveMultiBodyGroup(), solveSingleIteration(), updateConstraintBatchIdsForMerges(), updateConstraintBatchIdsForMergesMt(), writeOutBatches(), writeOutConstraintIndicesForRangeOfBatches(), WriteOutConstraintIndicesLoop::WriteOutConstraintIndicesLoop(), and writeOutConstraintIndicesMt().
btSequentialImpulseConstraintSolverMt int btPersistentManifold int numManifolds |
Definition at line 60 of file btSequentialImpulseConstraintSolverMt.h.
Referenced by allocAllContactConstraints(), convertContacts(), btCollisionWorld::debugDrawWorld(), internalAllocContactConstraints(), internalCollectContactManifoldCachedInfo(), btSimulationIslandManagerMt::mergeIslands(), InplaceSolverIslandCallback::processIsland(), MultiBodyInplaceSolverIslandCallback::processIsland(), btSimulationIslandManager::processIslands(), btCollisionWorld::serializeContactManifolds(), solveDeformableBodyGroup(), solveDeformableGroupIterations(), btConstraintSolverPoolMt::solveGroup(), btMultiBodyMLCPConstraintSolver::solveGroupCacheFriendlyIterations(), btMLCPSolver::solveGroupCacheFriendlyIterations(), btMLCPSolver::solveGroupCacheFriendlySetup(), btMultiBodyMLCPConstraintSolver::solveGroupCacheFriendlySetup(), solveMultiBodyGroup(), and btSimpleDynamicsWorld::stepSimulation().
|
static |
Definition at line 88 of file btSequentialImpulseConstraintSolverMt.h.
|
static |
Definition at line 90 of file btSequentialImpulseConstraintSolverMt.h.
Referenced by setupBatchedContactConstraints().
|
static |
Definition at line 91 of file btSequentialImpulseConstraintSolverMt.h.
Referenced by setupBatchedJointConstraints().
|
static |
Definition at line 93 of file btSequentialImpulseConstraintSolverMt.h.
Referenced by setupBatchedContactConstraints(), and setupBatchedJointConstraints().
|
static |
Definition at line 92 of file btSequentialImpulseConstraintSolverMt.h.
Referenced by setupBatchedContactConstraints(), and setupBatchedJointConstraints().
|
static |
Definition at line 89 of file btSequentialImpulseConstraintSolverMt.h.
Referenced by btSimulationIslandManagerMt::parallelIslandDispatch().