16 #ifndef BT_SEQUENTIAL_IMPULSE_CONSTRAINT_SOLVER_MT_H 17 #define BT_SEQUENTIAL_IMPULSE_CONSTRAINT_SOLVER_MT_H 67 static const int MAX_NUM_CONTACT_POINTS = 4;
70 int solverBodyIds[ 2 ];
73 bool contactHasRollingFriction[ MAX_NUM_CONTACT_POINTS ];
83 void internalInitMultipleJoints(
btTypedConstraint** constraints,
int iBegin,
int iEnd);
95 static const int CACHE_LINE_SIZE = 64;
105 char m_antiFalseSharingPadding[CACHE_LINE_SIZE];
109 virtual void randomizeConstraintOrdering(
int iteration,
int numIterations );
110 virtual btScalar resolveAllJointConstraints(
int iteration );
111 virtual btScalar resolveAllContactConstraints();
112 virtual btScalar resolveAllContactFrictionConstraints();
113 virtual btScalar resolveAllContactConstraintsInterleaved();
114 virtual btScalar resolveAllRollingFrictionConstraints();
116 virtual void setupBatchedContactConstraints();
117 virtual void setupBatchedJointConstraints();
143 void internalSetupContactConstraints(
int iContactConstraint,
const btContactSolverInfo& infoGlobal);
145 void internalWriteBackContacts(
int iBegin,
int iEnd,
const btContactSolverInfo& infoGlobal);
153 #endif //BT_SEQUENTIAL_IMPULSE_CONSTRAINT_SOLVER_MT_H
btPersistentManifold is a contact point cache, it stays persistent as long as objects are overlapping...
btSpinMutex m_bodySolverArrayMutex
The btAlignedObjectArray template class uses a subset of the stl::vector interface for its methods It...
btSpinMutex – lightweight spin-mutex implemented with atomic ops, never puts a thread to sleep becau...
btAlignedObjectArray< int > m_rollingFrictionIndexTable
ManifoldContactPoint collects and maintains persistent contactpoints.
static btBatchedConstraints::BatchingMethod s_jointBatchingMethod
static btBatchedConstraints::BatchingMethod s_contactBatchingMethod
static int s_minimumContactManifoldsForBatching
btSpinMutex m_kinematicBodyUniqueIdToSolverBodyTableMutex
static bool s_allowNestedParallelForLoops
btCollisionObject can be used to manage collision detection objects.
The btIDebugDraw interface class allows hooking up a debug renderer to visually debug simulations...
btSequentialImpulseConstraintSolverMt
btBatchedConstraints m_batchedContactConstraints
The btSequentialImpulseConstraintSolver is a fast SIMD implementation of the Projected Gauss Seidel (...
#define ATTRIBUTE_ALIGNED16(a)
bool m_useObsoleteJointConstraints
btAlignedObjectArray< char > m_scratchMemory
int m_numFrictionDirections
TypedConstraint is the baseclass for Bullet constraints and vehicles.
static int s_maxBatchSize
#define BT_DECLARE_ALIGNED_ALLOCATOR()
btAlignedObjectArray< btContactManifoldCachedInfo > m_manifoldCachedInfoArray
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
btBatchedConstraints m_batchedJointConstraints
static int s_minBatchSize