|
Bullet Collision Detection & Physics Library
|
btDiscreteDynamicsWorldMt – a version of DiscreteDynamicsWorld with some minor changes to support solving simulation islands on multiple threads. More...
#include <btDiscreteDynamicsWorldMt.h>


Classes | |
| struct | UpdaterCreatePredictiveContacts |
| struct | UpdaterIntegrateTransforms |
Public Member Functions | |
| BT_DECLARE_ALIGNED_ALLOCATOR () | |
| btDiscreteDynamicsWorldMt (btDispatcher *dispatcher, btBroadphaseInterface *pairCache, btConstraintSolverPoolMt *solverPool, btConstraintSolver *constraintSolverMt, btCollisionConfiguration *collisionConfiguration) | |
| btDiscreteDynamicsWorldMt More... | |
| virtual | ~btDiscreteDynamicsWorldMt () |
| virtual int | stepSimulation (btScalar timeStep, int maxSubSteps, btScalar fixedTimeStep) BT_OVERRIDE |
| if maxSubSteps > 0, it will interpolate motion between fixedTimeStep's More... | |
Public Member Functions inherited from btDiscreteDynamicsWorld | |
| BT_DECLARE_ALIGNED_ALLOCATOR () | |
| btDiscreteDynamicsWorld (btDispatcher *dispatcher, btBroadphaseInterface *pairCache, btConstraintSolver *constraintSolver, btCollisionConfiguration *collisionConfiguration) | |
| this btDiscreteDynamicsWorld constructor gets created objects from the user, and will not delete those More... | |
| virtual | ~btDiscreteDynamicsWorld () |
| virtual void | synchronizeMotionStates () |
| void | synchronizeSingleMotionState (btRigidBody *body) |
| this can be useful to synchronize a single rigid body -> graphics object More... | |
| virtual void | addConstraint (btTypedConstraint *constraint, bool disableCollisionsBetweenLinkedBodies=false) |
| virtual void | removeConstraint (btTypedConstraint *constraint) |
| virtual void | addAction (btActionInterface *) |
| virtual void | removeAction (btActionInterface *) |
| btSimulationIslandManager * | getSimulationIslandManager () |
| const btSimulationIslandManager * | getSimulationIslandManager () const |
| btCollisionWorld * | getCollisionWorld () |
| virtual void | setGravity (const btVector3 &gravity) |
| virtual btVector3 | getGravity () const |
| virtual void | addCollisionObject (btCollisionObject *collisionObject, int collisionFilterGroup=btBroadphaseProxy::StaticFilter, int collisionFilterMask=btBroadphaseProxy::AllFilter ^ btBroadphaseProxy::StaticFilter) |
| virtual void | addRigidBody (btRigidBody *body) |
| virtual void | addRigidBody (btRigidBody *body, int group, int mask) |
| virtual void | removeRigidBody (btRigidBody *body) |
| virtual void | removeCollisionObject (btCollisionObject *collisionObject) |
| removeCollisionObject will first check if it is a rigid body, if so call removeRigidBody otherwise call btCollisionWorld::removeCollisionObject More... | |
| virtual void | debugDrawConstraint (btTypedConstraint *constraint) |
| virtual void | debugDrawWorld () |
| virtual void | setConstraintSolver (btConstraintSolver *solver) |
| virtual btConstraintSolver * | getConstraintSolver () |
| virtual int | getNumConstraints () const |
| virtual btTypedConstraint * | getConstraint (int index) |
| virtual const btTypedConstraint * | getConstraint (int index) const |
| virtual btDynamicsWorldType | getWorldType () const |
| virtual void | clearForces () |
| the forces on each rigidbody is accumulating together with gravity. clear this after each timestep. More... | |
| virtual void | applyGravity () |
| apply gravity, call this once per timestep More... | |
| virtual void | setNumTasks (int numTasks) |
| virtual void | updateVehicles (btScalar timeStep) |
| obsolete, use updateActions instead More... | |
| virtual void | addVehicle (btActionInterface *vehicle) |
| obsolete, use addAction instead More... | |
| virtual void | removeVehicle (btActionInterface *vehicle) |
| obsolete, use removeAction instead More... | |
| virtual void | addCharacter (btActionInterface *character) |
| obsolete, use addAction instead More... | |
| virtual void | removeCharacter (btActionInterface *character) |
| obsolete, use removeAction instead More... | |
| void | setSynchronizeAllMotionStates (bool synchronizeAll) |
| bool | getSynchronizeAllMotionStates () const |
| void | setApplySpeculativeContactRestitution (bool enable) |
| bool | getApplySpeculativeContactRestitution () const |
| virtual void | serialize (btSerializer *serializer) |
| Preliminary serialization test for Bullet 2.76. Loading those files requires a separate parser (see Bullet/Demos/SerializeDemo) More... | |
| void | setLatencyMotionStateInterpolation (bool latencyInterpolation) |
| Interpolate motion state between previous and current transform, instead of current and next transform. More... | |
| bool | getLatencyMotionStateInterpolation () const |
| btAlignedObjectArray< btRigidBody * > & | getNonStaticRigidBodies () |
| const btAlignedObjectArray< btRigidBody * > & | getNonStaticRigidBodies () const |
Public Member Functions inherited from btDynamicsWorld | |
| btDynamicsWorld (btDispatcher *dispatcher, btBroadphaseInterface *broadphase, btCollisionConfiguration *collisionConfiguration) | |
| virtual | ~btDynamicsWorld () |
| void | setInternalTickCallback (btInternalTickCallback cb, void *worldUserInfo=0, bool isPreTick=false) |
| Set the callback for when an internal tick (simulation substep) happens, optional user info. More... | |
| void | setWorldUserInfo (void *worldUserInfo) |
| void * | getWorldUserInfo () const |
| btContactSolverInfo & | getSolverInfo () |
| const btContactSolverInfo & | getSolverInfo () const |
Public Member Functions inherited from btCollisionWorld | |
| btCollisionWorld (btDispatcher *dispatcher, btBroadphaseInterface *broadphasePairCache, btCollisionConfiguration *collisionConfiguration) | |
| for debug drawing More... | |
| virtual | ~btCollisionWorld () |
| void | setBroadphase (btBroadphaseInterface *pairCache) |
| const btBroadphaseInterface * | getBroadphase () const |
| btBroadphaseInterface * | getBroadphase () |
| btOverlappingPairCache * | getPairCache () |
| btDispatcher * | getDispatcher () |
| const btDispatcher * | getDispatcher () const |
| void | updateSingleAabb (btCollisionObject *colObj) |
| virtual void | updateAabbs () |
| virtual void | computeOverlappingPairs () |
| the computeOverlappingPairs is usually already called by performDiscreteCollisionDetection (or stepSimulation) it can be useful to use if you perform ray tests without collision detection/simulation More... | |
| virtual void | setDebugDrawer (btIDebugDraw *debugDrawer) |
| virtual btIDebugDraw * | getDebugDrawer () |
| virtual void | debugDrawObject (const btTransform &worldTransform, const btCollisionShape *shape, const btVector3 &color) |
| int | getNumCollisionObjects () const |
| virtual void | rayTest (const btVector3 &rayFromWorld, const btVector3 &rayToWorld, RayResultCallback &resultCallback) const |
| rayTest performs a raycast on all objects in the btCollisionWorld, and calls the resultCallback This allows for several queries: first hit, all hits, any hit, dependent on the value returned by the callback. More... | |
| void | convexSweepTest (const btConvexShape *castShape, const btTransform &from, const btTransform &to, ConvexResultCallback &resultCallback, btScalar allowedCcdPenetration=btScalar(0.)) const |
| convexTest performs a swept convex cast on all objects in the btCollisionWorld, and calls the resultCallback This allows for several queries: first hit, all hits, any hit, dependent on the value return by the callback. More... | |
| void | contactTest (btCollisionObject *colObj, ContactResultCallback &resultCallback) |
| contactTest performs a discrete collision test between colObj against all objects in the btCollisionWorld, and calls the resultCallback. More... | |
| void | contactPairTest (btCollisionObject *colObjA, btCollisionObject *colObjB, ContactResultCallback &resultCallback) |
| contactTest performs a discrete collision test between two collision objects and calls the resultCallback if overlap if detected. More... | |
| virtual void | refreshBroadphaseProxy (btCollisionObject *collisionObject) |
| btCollisionObjectArray & | getCollisionObjectArray () |
| const btCollisionObjectArray & | getCollisionObjectArray () const |
| virtual void | performDiscreteCollisionDetection () |
| btDispatcherInfo & | getDispatchInfo () |
| const btDispatcherInfo & | getDispatchInfo () const |
| bool | getForceUpdateAllAabbs () const |
| void | setForceUpdateAllAabbs (bool forceUpdateAllAabbs) |
Additional Inherited Members | |
Static Public Member Functions inherited from btCollisionWorld | |
| static void | rayTestSingle (const btTransform &rayFromTrans, const btTransform &rayToTrans, btCollisionObject *collisionObject, const btCollisionShape *collisionShape, const btTransform &colObjWorldTransform, RayResultCallback &resultCallback) |
| rayTestSingle performs a raycast call and calls the resultCallback. More... | |
| static void | rayTestSingleInternal (const btTransform &rayFromTrans, const btTransform &rayToTrans, const btCollisionObjectWrapper *collisionObjectWrap, RayResultCallback &resultCallback) |
| static void | objectQuerySingle (const btConvexShape *castShape, const btTransform &rayFromTrans, const btTransform &rayToTrans, btCollisionObject *collisionObject, const btCollisionShape *collisionShape, const btTransform &colObjWorldTransform, ConvexResultCallback &resultCallback, btScalar allowedPenetration) |
| objectQuerySingle performs a collision detection query and calls the resultCallback. It is used internally by rayTest. More... | |
| static void | objectQuerySingleInternal (const btConvexShape *castShape, const btTransform &convexFromTrans, const btTransform &convexToTrans, const btCollisionObjectWrapper *colObjWrap, ConvexResultCallback &resultCallback, btScalar allowedPenetration) |
btDiscreteDynamicsWorldMt – a version of DiscreteDynamicsWorld with some minor changes to support solving simulation islands on multiple threads.
Should function exactly like btDiscreteDynamicsWorld. Also 3 methods that iterate over all of the rigidbodies can run in parallel:
Definition at line 82 of file btDiscreteDynamicsWorldMt.h.
| btDiscreteDynamicsWorldMt::btDiscreteDynamicsWorldMt | ( | btDispatcher * | dispatcher, |
| btBroadphaseInterface * | pairCache, | ||
| btConstraintSolverPoolMt * | solverPool, | ||
| btConstraintSolver * | constraintSolverMt, | ||
| btCollisionConfiguration * | collisionConfiguration | ||
| ) |
Definition at line 148 of file btDiscreteDynamicsWorldMt.cpp.
|
virtual |
Definition at line 169 of file btDiscreteDynamicsWorldMt.cpp.
| btDiscreteDynamicsWorldMt::BT_DECLARE_ALIGNED_ALLOCATOR | ( | ) |
|
protectedvirtual |
Reimplemented from btDiscreteDynamicsWorld.
Definition at line 225 of file btDiscreteDynamicsWorldMt.cpp.
|
protectedvirtual |
Reimplemented from btDiscreteDynamicsWorld.
Definition at line 240 of file btDiscreteDynamicsWorldMt.cpp.
|
protectedvirtual |
Reimplemented from btDiscreteDynamicsWorld.
Definition at line 212 of file btDiscreteDynamicsWorldMt.cpp.
|
protectedvirtual |
solve all the constraints for this island
Reimplemented from btDiscreteDynamicsWorld.
Definition at line 173 of file btDiscreteDynamicsWorldMt.cpp.
|
virtual |
if maxSubSteps > 0, it will interpolate motion between fixedTimeStep's
Reimplemented from btDiscreteDynamicsWorld.
Definition at line 254 of file btDiscreteDynamicsWorldMt.cpp.
|
protected |
Definition at line 86 of file btDiscreteDynamicsWorldMt.h.
1.8.16