Bullet Collision Detection & Physics Library
|
#include "btParallelConstraintSolver.h"
#include "BulletDynamics/ConstraintSolver/btContactSolverInfo.h"
#include "BulletCollision/BroadphaseCollision/btDispatcher.h"
#include "LinearMath/btPoolAllocator.h"
#include "BulletCollision/NarrowPhaseCollision/btPersistentManifold.h"
#include "BulletMultiThreaded/vectormath2bullet.h"
#include "LinearMath/btQuickprof.h"
#include "BulletMultiThreaded/btThreadSupportInterface.h"
#include "vectormath/vmInclude.h"
#include "HeapManager.h"
#include "PlatformDefinitions.h"
#include "LinearMath/btScalar.h"
#include "TrbStateVec.h"
Go to the source code of this file.
Classes | |
struct | btParallelSolverMemoryCache |
Macros | |
#define | TMP_BUFF_BYTES (15*1024*1024) |
#define | PFX_CONTACT_SLOP 0.001f |
Functions | |
void | resolveSingleConstraintRowGeneric (PfxSolverBody &body1, PfxSolverBody &body2, const btSolverConstraint &c) |
static void | pfxSolveLinearConstraintRow (btConstraintRow &constraint, vmVector3 &deltaLinearVelocityA, vmVector3 &deltaAngularVelocityA, float massInvA, const vmMatrix3 &inertiaInvA, const vmVector3 &rA, vmVector3 &deltaLinearVelocityB, vmVector3 &deltaAngularVelocityB, float massInvB, const vmMatrix3 &inertiaInvB, const vmVector3 &rB) |
void | btSolveContactConstraint (btConstraintRow &constraintResponse, btConstraintRow &constraintFriction1, btConstraintRow &constraintFriction2, const vmVector3 &contactPointA, const vmVector3 &contactPointB, PfxSolverBody &solverBodyA, PfxSolverBody &solverBodyB, float friction) |
void | CustomSolveConstraintsTaskParallel (const PfxParallelGroup *contactParallelGroup, const PfxParallelBatch *contactParallelBatches, PfxConstraintPair *contactPairs, uint32_t numContactPairs, btPersistentManifold *offsetContactManifolds, btConstraintRow *offsetContactConstraintRows, const PfxParallelGroup *jointParallelGroup, const PfxParallelBatch *jointParallelBatches, PfxConstraintPair *jointPairs, uint32_t numJointPairs, btSolverConstraint *offsetSolverConstraints, TrbState *offsetRigStates, PfxSolverBody *offsetSolverBodies, uint32_t numRigidBodies, int iteration, unsigned int taskId, unsigned int numTasks, btBarrier *barrier) |
void | CustomPostSolverTask (TrbState *states, PfxSolverBody *solverBodies, uint32_t numRigidBodies) |
void * | SolverlsMemoryFunc () |
static void | pfxGetPlaneSpace (const vmVector3 &n, vmVector3 &p, vmVector3 &q) |
void | btSetupContactConstraint (btConstraintRow &constraintResponse, btConstraintRow &constraintFriction1, btConstraintRow &constraintFriction2, float penetrationDepth, float restitution, float friction, const vmVector3 &contactNormal, const vmVector3 &contactPointA, const vmVector3 &contactPointB, const TrbState &stateA, const TrbState &stateB, PfxSolverBody &solverBodyA, PfxSolverBody &solverBodyB, const vmVector3 &linVelA, const vmVector3 &angVelA, const vmVector3 &linVelB, const vmVector3 &angVelB, float separateBias, float timeStep) |
void | CustomSetupContactConstraintsTask (PfxConstraintPair *contactPairs, uint32_t numContactPairs, btPersistentManifold *offsetContactManifolds, btConstraintRow *offsetContactConstraintRows, TrbState *offsetRigStates, PfxSolverBody *offsetSolverBodies, uint32_t numRigidBodies, float separateBias, float timeStep) |
void | CustomWritebackContactConstraintsTask (PfxConstraintPair *contactPairs, uint32_t numContactPairs, btPersistentManifold *offsetContactManifolds, btConstraintRow *offsetContactConstraintRows, TrbState *offsetRigStates, PfxSolverBody *offsetSolverBodies, uint32_t numRigidBodies, float separateBias, float timeStep) |
void | SolverThreadFunc (void *userPtr, void *lsMemory) |
void | CustomSetupContactConstraintsNew (PfxConstraintPair *contactPairs1, uint32_t numContactPairs, btPersistentManifold *offsetContactManifolds, btConstraintRow *offsetContactConstraintRows, TrbState *offsetRigStates, PfxSolverBody *offsetSolverBodies, uint32_t numRigidBodies, float separationBias, float timeStep, class btThreadSupportInterface *threadSupport, btCriticalSection *criticalSection, btConstraintSolverIO *io, uint8_t cmd) |
void | CustomSplitConstraints (PfxConstraintPair *pairs, uint32_t numPairs, PfxParallelGroup &group, PfxParallelBatch *batches, uint32_t numTasks, uint32_t numRigidBodies, void *poolBuff, uint32_t poolBytes) |
void | CustomSolveConstraintsParallel (PfxConstraintPair *contactPairs, uint32_t numContactPairs, PfxConstraintPair *jointPairs, uint32_t numJointPairs, btPersistentManifold *offsetContactManifolds, btConstraintRow *offsetContactConstraintRows, btSolverConstraint *offsetSolverConstraints, TrbState *offsetRigStates, PfxSolverBody *offsetSolverBodies, uint32_t numRigidBodies, struct btConstraintSolverIO *io, class btThreadSupportInterface *threadSupport, int iteration, void *poolBuf, int poolBytes, class btBarrier *barrier) |
void | BPE_customConstraintSolverSequentialNew (unsigned int new_num, PfxBroadphasePair *new_pairs1, btPersistentManifold *offsetContactManifolds, PfxConstraintRow *offsetContactConstraintRows, TrbState *states, int numRigidBodies, struct PfxSolverBody *solverBodies, PfxConstraintPair *jointPairs, unsigned int numJoints, btSolverConstraint *offsetSolverConstraints, float separateBias, float timeStep, int iteration, btThreadSupportInterface *solverThreadSupport, btCriticalSection *criticalSection, struct btConstraintSolverIO *solverIO, btBarrier *barrier) |
btConstraintSolverIO * | createSolverIO (int numThreads) |
Variables | |
unsigned char | tmp_buff [(15 *1024 *1024)] |
#define PFX_CONTACT_SLOP 0.001f |
Definition at line 330 of file btParallelConstraintSolver.cpp.
#define TMP_BUFF_BYTES (15*1024*1024) |
Definition at line 47 of file btParallelConstraintSolver.cpp.
void BPE_customConstraintSolverSequentialNew | ( | unsigned int | new_num, |
PfxBroadphasePair * | new_pairs1, | ||
btPersistentManifold * | offsetContactManifolds, | ||
PfxConstraintRow * | offsetContactConstraintRows, | ||
TrbState * | states, | ||
int | numRigidBodies, | ||
struct PfxSolverBody * | solverBodies, | ||
PfxConstraintPair * | jointPairs, | ||
unsigned int | numJoints, | ||
btSolverConstraint * | offsetSolverConstraints, | ||
float | separateBias, | ||
float | timeStep, | ||
int | iteration, | ||
btThreadSupportInterface * | solverThreadSupport, | ||
btCriticalSection * | criticalSection, | ||
struct btConstraintSolverIO * | solverIO, | ||
btBarrier * | barrier | ||
) |
Definition at line 1001 of file btParallelConstraintSolver.cpp.
void btSetupContactConstraint | ( | btConstraintRow & | constraintResponse, |
btConstraintRow & | constraintFriction1, | ||
btConstraintRow & | constraintFriction2, | ||
float | penetrationDepth, | ||
float | restitution, | ||
float | friction, | ||
const vmVector3 & | contactNormal, | ||
const vmVector3 & | contactPointA, | ||
const vmVector3 & | contactPointB, | ||
const TrbState & | stateA, | ||
const TrbState & | stateB, | ||
PfxSolverBody & | solverBodyA, | ||
PfxSolverBody & | solverBodyB, | ||
const vmVector3 & | linVelA, | ||
const vmVector3 & | angVelA, | ||
const vmVector3 & | linVelB, | ||
const vmVector3 & | angVelB, | ||
float | separateBias, | ||
float | timeStep | ||
) |
Definition at line 332 of file btParallelConstraintSolver.cpp.
void btSolveContactConstraint | ( | btConstraintRow & | constraintResponse, |
btConstraintRow & | constraintFriction1, | ||
btConstraintRow & | constraintFriction2, | ||
const vmVector3 & | contactPointA, | ||
const vmVector3 & | contactPointB, | ||
PfxSolverBody & | solverBodyA, | ||
PfxSolverBody & | solverBodyB, | ||
float | friction | ||
) |
Definition at line 124 of file btParallelConstraintSolver.cpp.
btConstraintSolverIO* createSolverIO | ( | int | numThreads | ) |
Definition at line 1139 of file btParallelConstraintSolver.cpp.
void CustomPostSolverTask | ( | TrbState * | states, |
PfxSolverBody * | solverBodies, | ||
uint32_t | numRigidBodies | ||
) |
Definition at line 279 of file btParallelConstraintSolver.cpp.
void CustomSetupContactConstraintsNew | ( | PfxConstraintPair * | contactPairs1, |
uint32_t | numContactPairs, | ||
btPersistentManifold * | offsetContactManifolds, | ||
btConstraintRow * | offsetContactConstraintRows, | ||
TrbState * | offsetRigStates, | ||
PfxSolverBody * | offsetSolverBodies, | ||
uint32_t | numRigidBodies, | ||
float | separationBias, | ||
float | timeStep, | ||
class btThreadSupportInterface * | threadSupport, | ||
btCriticalSection * | criticalSection, | ||
btConstraintSolverIO * | io, | ||
uint8_t | cmd | ||
) |
Definition at line 680 of file btParallelConstraintSolver.cpp.
void CustomSetupContactConstraintsTask | ( | PfxConstraintPair * | contactPairs, |
uint32_t | numContactPairs, | ||
btPersistentManifold * | offsetContactManifolds, | ||
btConstraintRow * | offsetContactConstraintRows, | ||
TrbState * | offsetRigStates, | ||
PfxSolverBody * | offsetSolverBodies, | ||
uint32_t | numRigidBodies, | ||
float | separateBias, | ||
float | timeStep | ||
) |
Definition at line 424 of file btParallelConstraintSolver.cpp.
void CustomSolveConstraintsParallel | ( | PfxConstraintPair * | contactPairs, |
uint32_t | numContactPairs, | ||
PfxConstraintPair * | jointPairs, | ||
uint32_t | numJointPairs, | ||
btPersistentManifold * | offsetContactManifolds, | ||
btConstraintRow * | offsetContactConstraintRows, | ||
btSolverConstraint * | offsetSolverConstraints, | ||
TrbState * | offsetRigStates, | ||
PfxSolverBody * | offsetSolverBodies, | ||
uint32_t | numRigidBodies, | ||
struct btConstraintSolverIO * | io, | ||
class btThreadSupportInterface * | threadSupport, | ||
int | iteration, | ||
void * | poolBuf, | ||
int | poolBytes, | ||
class btBarrier * | barrier | ||
) |
Definition at line 860 of file btParallelConstraintSolver.cpp.
void CustomSolveConstraintsTaskParallel | ( | const PfxParallelGroup * | contactParallelGroup, |
const PfxParallelBatch * | contactParallelBatches, | ||
PfxConstraintPair * | contactPairs, | ||
uint32_t | numContactPairs, | ||
btPersistentManifold * | offsetContactManifolds, | ||
btConstraintRow * | offsetContactConstraintRows, | ||
const PfxParallelGroup * | jointParallelGroup, | ||
const PfxParallelBatch * | jointParallelBatches, | ||
PfxConstraintPair * | jointPairs, | ||
uint32_t | numJointPairs, | ||
btSolverConstraint * | offsetSolverConstraints, | ||
TrbState * | offsetRigStates, | ||
PfxSolverBody * | offsetSolverBodies, | ||
uint32_t | numRigidBodies, | ||
int | iteration, | ||
unsigned int | taskId, | ||
unsigned int | numTasks, | ||
btBarrier * | barrier | ||
) |
Definition at line 158 of file btParallelConstraintSolver.cpp.
void CustomSplitConstraints | ( | PfxConstraintPair * | pairs, |
uint32_t | numPairs, | ||
PfxParallelGroup & | group, | ||
PfxParallelBatch * | batches, | ||
uint32_t | numTasks, | ||
uint32_t | numRigidBodies, | ||
void * | poolBuff, | ||
uint32_t | poolBytes | ||
) |
Definition at line 752 of file btParallelConstraintSolver.cpp.
void CustomWritebackContactConstraintsTask | ( | PfxConstraintPair * | contactPairs, |
uint32_t | numContactPairs, | ||
btPersistentManifold * | offsetContactManifolds, | ||
btConstraintRow * | offsetContactConstraintRows, | ||
TrbState * | offsetRigStates, | ||
PfxSolverBody * | offsetSolverBodies, | ||
uint32_t | numRigidBodies, | ||
float | separateBias, | ||
float | timeStep | ||
) |
Definition at line 519 of file btParallelConstraintSolver.cpp.
Definition at line 300 of file btParallelConstraintSolver.cpp.
|
inlinestatic |
Definition at line 103 of file btParallelConstraintSolver.cpp.
|
inline |
Definition at line 53 of file btParallelConstraintSolver.cpp.
void* SolverlsMemoryFunc | ( | ) |
Definition at line 292 of file btParallelConstraintSolver.cpp.
void SolverThreadFunc | ( | void * | userPtr, |
void * | lsMemory | ||
) |
Definition at line 548 of file btParallelConstraintSolver.cpp.
unsigned char tmp_buff[(15 *1024 *1024)] |
Definition at line 48 of file btParallelConstraintSolver.cpp.