|
Blender V4.3
|
#include "btDynamicsWorld.h"#include "LinearMath/btAlignedObjectArray.h"#include "LinearMath/btThreads.h"Go to the source code of this file.
Functions | |
| virtual void | predictUnconstraintMotion (btScalar timeStep) |
| void | integrateTransformsInternal (btRigidBody **bodies, int numBodies, btScalar timeStep) |
| virtual void | integrateTransforms (btScalar timeStep) |
| virtual void | calculateSimulationIslands () |
| virtual void | updateActivationState (btScalar timeStep) |
| void | updateActions (btScalar timeStep) |
| void | startProfiling (btScalar timeStep) |
| virtual void | internalSingleStepSimulation (btScalar timeStep) |
| void | releasePredictiveContacts () |
| void | createPredictiveContactsInternal (btRigidBody **bodies, int numBodies, btScalar timeStep) |
| virtual void | createPredictiveContacts (btScalar timeStep) |
| virtual void | saveKinematicState (btScalar timeStep) |
| void | serializeRigidBodies (btSerializer *serializer) |
| void | serializeDynamicsWorldInfo (btSerializer *serializer) |
| 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 | |
| virtual | ~btDiscreteDynamicsWorld () |
| virtual int | stepSimulation (btScalar timeStep, int maxSubSteps=1, btScalar fixedTimeStep=btScalar(1.)/btScalar(60.)) |
| if maxSubSteps > 0, it will interpolate motion between fixedTimeStep's | |
| virtual void | solveConstraints (btContactSolverInfo &solverInfo) |
| virtual void | synchronizeMotionStates () |
| void | synchronizeSingleMotionState (btRigidBody *body) |
| this can be useful to synchronize a single rigid body -> graphics object | |
| virtual void | addConstraint (btTypedConstraint *constraint, bool disableCollisionsBetweenLinkedBodies=false) |
| virtual void | removeConstraint (btTypedConstraint *constraint) |
| virtual void | addAction (btActionInterface *) |
| virtual void | removeAction (btActionInterface *) |
| btSimulationIslandManager * | getSimulationIslandManager () |
| 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 | |
| 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 btDynamicsWorldType | getWorldType () const |
| virtual void | clearForces () |
| the forces on each rigidbody is accumulating together with gravity. clear this after each timestep. | |
| virtual void | applyGravity () |
| apply gravity, call this once per timestep | |
| virtual void | setNumTasks (int numTasks) |
| virtual void | updateVehicles (btScalar timeStep) |
| obsolete, use updateActions instead | |
| virtual void | addVehicle (btActionInterface *vehicle) |
| obsolete, use addAction instead | |
| virtual void | removeVehicle (btActionInterface *vehicle) |
| obsolete, use removeAction instead | |
| virtual void | addCharacter (btActionInterface *character) |
| obsolete, use addAction instead | |
| virtual void | removeCharacter (btActionInterface *character) |
| obsolete, use removeAction instead | |
| 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) | |
| void | setLatencyMotionStateInterpolation (bool latencyInterpolation) |
| bool | getLatencyMotionStateInterpolation () const |
| btAlignedObjectArray< btRigidBody * > & | getNonStaticRigidBodies () |
|
virtual |
|
virtual |
obsolete, use addAction instead
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
obsolete, use addAction instead
|
virtual |
apply gravity, call this once per timestep
| BT_DECLARE_ALIGNED_ALLOCATOR | ( | ) |
| btDiscreteDynamicsWorld::btDiscreteDynamicsWorld | ( | btDispatcher * | dispatcher, |
| btBroadphaseInterface * | pairCache, | ||
| btConstraintSolver * | constraintSolver, | ||
| btCollisionConfiguration * | collisionConfiguration ) |
this btDiscreteDynamicsWorld constructor gets created objects from the user, and will not delete those
Definition at line 191 of file btDiscreteDynamicsWorld.cpp.
References btAlignedAlloc, m_constraintSolver, m_islandManager, m_ownsConstraintSolver, m_ownsIslandManager, and m_solverIslandCallback.
Referenced by RB_dworld_new().
|
virtual |
|
virtual |
the forces on each rigidbody is accumulating together with gravity. clear this after each timestep.
|
virtual |
Definition at line 941 of file btDiscreteDynamicsWorld.cpp.
References BT_PROFILE, createPredictiveContactsInternal(), m_nonStaticRigidBodies, and releasePredictiveContacts().
| void btDiscreteDynamicsWorld::createPredictiveContactsInternal | ( | btRigidBody ** | bodies, |
| int | numBodies, | ||
| btScalar | timeStep ) |
Definition at line 849 of file btDiscreteDynamicsWorld.cpp.
References BT_PROFILE, btMutexLock(), btMutexUnlock(), btPersistentManifold(), btSphereShape(), btTransform, btVector3, convexSweepTest(), gCalculateCombinedFrictionCallback, btRigidBody::getBroadphaseProxy(), btRigidBody::getCollisionShape(), gNumClampedCcdMotions, length2(), btManifoldPoint::m_combinedFriction, btManifoldPoint::m_combinedRestitution, btManifoldPoint::m_positionWorldOnA, btManifoldPoint::m_positionWorldOnB, m_predictiveManifolds, m_predictiveManifoldsMutex, btClosestNotMeConvexResultCallback::needsCollision(), needsCollision(), numBodies, btRigidBody::predictIntegratedTransform(), and btAlignedObjectArray< T >::push_back().
Referenced by createPredictiveContacts().
|
virtual |
note: the code for D6_SPRING_2_CONSTRAINT_TYPE is identical to D6_CONSTRAINT_TYPE, the D6_CONSTRAINT_TYPE+D6_SPRING_CONSTRAINT_TYPE will likely become obsolete/deprecated at some stage
Definition at line 1117 of file btDiscreteDynamicsWorld.cpp.
References btConeTwistConstraint(), btCos(), btGeneric6DofConstraint(), btGeneric6DofSpring2Constraint(), btHingeConstraint(), btPoint2PointConstraint(), btSin(), btSliderConstraint(), btTransform, btVector3, CONETWIST_CONSTRAINT_TYPE, D6_CONSTRAINT_TYPE, D6_SPRING_2_CONSTRAINT_TYPE, D6_SPRING_CONSTRAINT_TYPE, btIDebugDraw::DBG_DrawConstraintLimits, btIDebugDraw::DBG_DrawConstraints, HINGE_CONSTRAINT_TYPE, POINT2POINT_CONSTRAINT_TYPE, SIMD_2_PI, SIMD_PI, and SLIDER_CONSTRAINT_TYPE.
|
virtual |
| bool getApplySpeculativeContactRestitution | ( | ) | const |
Definition at line 214 of file btDiscreteDynamicsWorld.h.
References m_applySpeculativeContactRestitution.
| btCollisionWorld * getCollisionWorld | ( | ) |
Definition at line 135 of file btDiscreteDynamicsWorld.h.
Referenced by btMultiBodyDynamicsWorld::buildIslands(), btMultiBodyDynamicsWorld::calculateSimulationIslands(), btDeformableMultiBodyDynamicsWorld::setupConstraints(), btDeformableMultiBodyDynamicsWorld::solveContactConstraints(), and btMultiBodyDynamicsWorld::solveExternalForces().
|
virtual |
|
virtual |
|
virtual |
| bool getLatencyMotionStateInterpolation | ( | ) | const |
Definition at line 228 of file btDiscreteDynamicsWorld.h.
References m_latencyMotionStateInterpolation.
| const btAlignedObjectArray< btRigidBody * > & getNonStaticRigidBodies | ( | ) |
Definition at line 233 of file btDiscreteDynamicsWorld.h.
References m_nonStaticRigidBodies.
|
virtual |
| const btSimulationIslandManager * getSimulationIslandManager | ( | ) |
Definition at line 125 of file btDiscreteDynamicsWorld.h.
References m_islandManager.
Referenced by btMultiBodyDynamicsWorld::calculateSimulationIslands().
| bool getSynchronizeAllMotionStates | ( | ) | const |
Definition at line 204 of file btDiscreteDynamicsWorld.h.
References m_synchronizeAllMotionStates.
|
virtual |
Definition at line 169 of file btDiscreteDynamicsWorld.h.
References BT_DISCRETE_DYNAMICS_WORLD.
|
virtual |
| void btDiscreteDynamicsWorld::integrateTransformsInternal | ( | btRigidBody ** | bodies, |
| int | numBodies, | ||
| btScalar | timeStep ) |
Definition at line 951 of file btDiscreteDynamicsWorld.cpp.
References BT_PROFILE, btSphereShape(), btTransform, convexSweepTest(), btRigidBody::getBroadphaseProxy(), btRigidBody::getCollisionShape(), btRigidBody::getLinearVelocity(), gNumClampedCcdMotions, length2(), btClosestNotMeConvexResultCallback::needsCollision(), needsCollision(), numBodies, btRigidBody::predictIntegratedTransform(), printf, btRigidBody::proceedToTransform(), and btRigidBody::setLinearVelocity().
|
virtual |
|
virtual |
| void btDiscreteDynamicsWorld::releasePredictiveContacts | ( | ) |
Definition at line 929 of file btDiscreteDynamicsWorld.cpp.
References BT_PROFILE, btPersistentManifold(), btAlignedObjectArray< T >::clear(), m_predictiveManifolds, and btAlignedObjectArray< T >::size().
Referenced by createPredictiveContacts().
|
virtual |
|
virtual |
obsolete, use removeAction instead
|
virtual |
removeCollisionObject will first check if it is a rigid body, if so call removeRigidBody otherwise call btCollisionWorld::removeCollisionObject
|
virtual |
|
virtual |
|
virtual |
obsolete, use removeAction instead
|
virtual |
Referenced by btDeformableMultiBodyDynamicsWorld::stepSimulation().
|
virtual |
Preliminary serialization test for Bullet 2.76. Loading those files requires a separate parser (see Bullet/Demos/SerializeDemo)
| void btDiscreteDynamicsWorld::serializeDynamicsWorldInfo | ( | btSerializer * | serializer | ) |
Definition at line 1405 of file btDiscreteDynamicsWorld.cpp.
References btSerializer::allocate(), BT_DYNAMICSWORLD_CODE, btSerializer::finalizeChunk(), len, btContactSolverInfoDoubleData::m_damping, btContactSolverInfoDoubleData::m_erp, btContactSolverInfoDoubleData::m_erp2, btContactSolverInfoDoubleData::m_friction, btContactSolverInfoDoubleData::m_globalCfm, btDynamicsWorldDoubleData::m_gravity, m_gravity, btContactSolverInfoDoubleData::m_linearSlop, btContactSolverInfoDoubleData::m_maxErrorReduction, btContactSolverInfoDoubleData::m_maxGyroscopicForce, btContactSolverInfoDoubleData::m_minimumSolverBatchSize, btContactSolverInfoDoubleData::m_numIterations, btChunk::m_oldPtr, btContactSolverInfoDoubleData::m_restingContactRestitutionThreshold, btContactSolverInfoDoubleData::m_restitution, btContactSolverInfoDoubleData::m_singleAxisRollingFrictionThreshold, btDynamicsWorldDoubleData::m_solverInfo, btContactSolverInfoDoubleData::m_solverMode, btContactSolverInfoDoubleData::m_sor, btContactSolverInfoDoubleData::m_splitImpulse, btContactSolverInfoDoubleData::m_splitImpulsePenetrationThreshold, btContactSolverInfoDoubleData::m_splitImpulseTurnErp, btContactSolverInfoDoubleData::m_tau, btContactSolverInfoDoubleData::m_timeStep, and btContactSolverInfoDoubleData::m_warmstartingFactor.
Referenced by btMultiBodyDynamicsWorld::serialize(), btSoftMultiBodyDynamicsWorld::serialize(), and btSoftRigidDynamicsWorld::serialize().
| void btDiscreteDynamicsWorld::serializeRigidBodies | ( | btSerializer * | serializer | ) |
Definition at line 1379 of file btDiscreteDynamicsWorld.cpp.
References btSerializer::allocate(), BT_CONSTRAINT_CODE, BT_RIGIDBODY_CODE, btSerializer::finalizeChunk(), len, m_constraints, btChunk::m_oldPtr, and btAlignedObjectArray< T >::size().
Referenced by btMultiBodyDynamicsWorld::serialize(), btSoftMultiBodyDynamicsWorld::serialize(), and btSoftRigidDynamicsWorld::serialize().
| void setApplySpeculativeContactRestitution | ( | bool | enable | ) |
Definition at line 209 of file btDiscreteDynamicsWorld.h.
References m_applySpeculativeContactRestitution.
|
virtual |
|
virtual |
| void setLatencyMotionStateInterpolation | ( | bool | latencyInterpolation | ) |
Interpolate motion state between previous and current transform, instead of current and next transform. This can relieve discontinuities in the rendering, due to penetrations
Definition at line 224 of file btDiscreteDynamicsWorld.h.
References m_latencyMotionStateInterpolation.
|
virtual |
Definition at line 180 of file btDiscreteDynamicsWorld.h.
| void setSynchronizeAllMotionStates | ( | bool | synchronizeAll | ) |
Definition at line 200 of file btDiscreteDynamicsWorld.h.
References m_synchronizeAllMotionStates.
|
virtual |
| void btDiscreteDynamicsWorld::startProfiling | ( | btScalar | timeStep | ) |
Definition at line 1108 of file btDiscreteDynamicsWorld.cpp.
Referenced by btDeformableMultiBodyDynamicsWorld::stepSimulation().
|
virtual |
if maxSubSteps > 0, it will interpolate motion between fixedTimeStep's
|
virtual |
Referenced by btDeformableMultiBodyDynamicsWorld::stepSimulation().
| void btDiscreteDynamicsWorld::synchronizeSingleMotionState | ( | btRigidBody * | body | ) |
this can be useful to synchronize a single rigid body -> graphics object
Definition at line 335 of file btDiscreteDynamicsWorld.cpp.
References btAssert, btTransform, btRigidBody::getMotionState(), btTransformUtil::integrateTransform(), m_fixedTimeStep, m_latencyMotionStateInterpolation, m_localTime, and btMotionState::setWorldTransform().
| void btDiscreteDynamicsWorld::updateActions | ( | btScalar | timeStep | ) |
Definition at line 584 of file btDiscreteDynamicsWorld.cpp.
References BT_PROFILE, and m_actions.
Referenced by updateVehicles().
|
virtual |
|
virtual |
obsolete, use updateActions instead
Definition at line 186 of file btDiscreteDynamicsWorld.h.
References updateActions().
|
virtual |
Definition at line 229 of file btDiscreteDynamicsWorld.cpp.
References btAlignedFree, m_constraintSolver, m_islandManager, m_ownsConstraintSolver, m_ownsIslandManager, m_solverIslandCallback, btConstraintSolver::~btConstraintSolver(), and btSimulationIslandManager::~btSimulationIslandManager().
| btDiscreteDynamicsWorld __pad0__ |
btDiscreteDynamicsWorld provides discrete rigid body simulation those classes replace the obsolete CcdPhysicsEnvironment/CcdPhysicsController
Definition at line 37 of file btDiscreteDynamicsWorld.h.
| btAlignedObjectArray<btActionInterface*> m_actions |
Definition at line 63 of file btDiscreteDynamicsWorld.h.
Referenced by updateActions().
| bool m_applySpeculativeContactRestitution |
Definition at line 61 of file btDiscreteDynamicsWorld.h.
Referenced by getApplySpeculativeContactRestitution(), and setApplySpeculativeContactRestitution().
| btAlignedObjectArray<btTypedConstraint*> m_constraints |
Definition at line 47 of file btDiscreteDynamicsWorld.h.
Referenced by btMultiBodyDynamicsWorld::calculateSimulationIslands(), serializeRigidBodies(), btMultiBodyDynamicsWorld::solveExternalForces(), and btDeformableMultiBodyDynamicsWorld::sortConstraints().
| btConstraintSolver* m_constraintSolver |
| btScalar m_fixedTimeStep |
Definition at line 55 of file btDiscreteDynamicsWorld.h.
Referenced by btDeformableMultiBodyDynamicsWorld::stepSimulation(), and synchronizeSingleMotionState().
| btVector3 m_gravity |
Definition at line 51 of file btDiscreteDynamicsWorld.h.
| btSimulationIslandManager* m_islandManager |
Definition at line 45 of file btDiscreteDynamicsWorld.h.
Referenced by btDiscreteDynamicsWorld(), btDiscreteDynamicsWorldMt(), btMultiBodyDynamicsWorld::buildIslands(), getSimulationIslandManager(), btDeformableMultiBodyDynamicsWorld::setupConstraints(), btDeformableMultiBodyDynamicsWorld::solveContactConstraints(), and ~btDiscreteDynamicsWorld().
| bool m_latencyMotionStateInterpolation |
Definition at line 67 of file btDiscreteDynamicsWorld.h.
Referenced by getLatencyMotionStateInterpolation(), setLatencyMotionStateInterpolation(), btDeformableMultiBodyDynamicsWorld::stepSimulation(), and synchronizeSingleMotionState().
| btScalar m_localTime |
Definition at line 54 of file btDiscreteDynamicsWorld.h.
Referenced by btDeformableMultiBodyDynamicsWorld::stepSimulation(), and synchronizeSingleMotionState().
| btAlignedObjectArray<btRigidBody*> m_nonStaticRigidBodies |
Definition at line 49 of file btDiscreteDynamicsWorld.h.
Referenced by btDeformableMultiBodyDynamicsWorld::applyRigidBodyGravity(), btDeformableMultiBodyDynamicsWorld::clearGravity(), createPredictiveContacts(), getNonStaticRigidBodies(), and btDeformableMultiBodyDynamicsWorld::positionCorrection().
| bool m_ownsConstraintSolver |
Definition at line 59 of file btDiscreteDynamicsWorld.h.
Referenced by btDiscreteDynamicsWorld(), and ~btDiscreteDynamicsWorld().
| bool m_ownsIslandManager |
Definition at line 58 of file btDiscreteDynamicsWorld.h.
Referenced by btDiscreteDynamicsWorld(), btDiscreteDynamicsWorldMt(), and ~btDiscreteDynamicsWorld().
| btAlignedObjectArray<btPersistentManifold*> m_predictiveManifolds |
Definition at line 69 of file btDiscreteDynamicsWorld.h.
Referenced by btMultiBodyDynamicsWorld::calculateSimulationIslands(), createPredictiveContactsInternal(), and releasePredictiveContacts().
| btSpinMutex m_predictiveManifoldsMutex |
Definition at line 70 of file btDiscreteDynamicsWorld.h.
Referenced by createPredictiveContactsInternal().
| int m_profileTimings |
Definition at line 65 of file btDiscreteDynamicsWorld.h.
| InplaceSolverIslandCallback* m_solverIslandCallback |
Definition at line 41 of file btDiscreteDynamicsWorld.h.
Referenced by btDiscreteDynamicsWorld(), and ~btDiscreteDynamicsWorld().
| bool m_synchronizeAllMotionStates |
Definition at line 60 of file btDiscreteDynamicsWorld.h.
Referenced by getSynchronizeAllMotionStates(), and setSynchronizeAllMotionStates().