Blender
V3.3
|
#include "btDynamicsWorld.h"
#include "LinearMath/btAlignedObjectArray.h"
#include "LinearMath/btThreads.h"
Go to the source code of this file.
|
virtual |
|
virtual |
obsolete, use addAction instead
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
obsolete, use addAction instead
|
virtual |
apply gravity, call this once per timestep
Referenced by btMultiBodyDynamicsWorld::applyGravity().
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, btSequentialImpulseConstraintSolver(), 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.
Referenced by btMultiBodyDynamicsWorld::clearForces().
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, btBroadphaseProxy, btClosestNotMeConvexResultCallback::btClosestNotMeConvexResultCallback(), btCollisionObject, btMutexLock(), btMutexUnlock(), btPersistentManifold(), btSphereShape(), btTransform, btVector3, convexSweepTest(), blender::math::distance(), gCalculateCombinedFrictionCallback, btRigidBody::getBroadphaseProxy(), btRigidBody::getCollisionShape(), gNumClampedCcdMotions, if(), length2(), btManifoldPoint::m_combinedFriction, btManifoldPoint::m_combinedRestitution, btManifoldPoint::m_positionWorldOnA, btManifoldPoint::m_positionWorldOnB, m_predictiveManifolds, m_predictiveManifoldsMutex, btClosestNotMeConvexResultCallback::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, center, CONETWIST_CONSTRAINT_TYPE, D6_CONSTRAINT_TYPE, D6_SPRING_2_CONSTRAINT_TYPE, D6_SPRING_CONSTRAINT_TYPE, btIDebugDraw::DBG_DrawConstraintLimits, btIDebugDraw::DBG_DrawConstraints, HINGE_CONSTRAINT_TYPE, blender::math::length(), normal, POINT2POINT_CONSTRAINT_TYPE, SIMD_2_PI, SIMD_PI, SLIDER_CONSTRAINT_TYPE, and sy.
|
virtual |
Referenced by btMultiBodyDynamicsWorld::debugDrawWorld(), and btSoftRigidDynamicsWorld::debugDrawWorld().
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.
Referenced by btMultiBodyDynamicsWorld::integrateTransforms().
void btDiscreteDynamicsWorld::integrateTransformsInternal | ( | btRigidBody ** | bodies, |
int | numBodies, | ||
btScalar | timeStep | ||
) |
Definition at line 951 of file btDiscreteDynamicsWorld.cpp.
References BT_PROFILE, btBroadphaseProxy, btCollisionObject, btSphereShape(), btTransform, btVector3, convexSweepTest(), btRigidBody::getBroadphaseProxy(), btRigidBody::getCollisionShape(), btRigidBody::getLinearVelocity(), gNumClampedCcdMotions, if(), length2(), btClosestNotMeConvexResultCallback::needsCollision(), needsCollision(), numBodies, btRigidBody::predictIntegratedTransform(), btRigidBody::proceedToTransform(), and btRigidBody::setLinearVelocity().
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
Referenced by btDeformableMultiBodyDynamicsWorld::removeCollisionObject(), btSoftMultiBodyDynamicsWorld::removeCollisionObject(), and btSoftRigidDynamicsWorld::removeCollisionObject().
|
virtual |
|
virtual |
|
virtual |
obsolete, use removeAction instead
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, m_gravity, btDynamicsWorldDoubleData::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, btCollisionObject, btTypedConstraint(), CO_RIGID_BODY, btSerializer::finalizeChunk(), len, m_constraints, btChunk::m_oldPtr, btAlignedObjectArray< T >::size(), and size().
Referenced by btMultiBodyDynamicsWorld::serialize(), btSoftMultiBodyDynamicsWorld::serialize(), and btSoftRigidDynamicsWorld::serialize().
Definition at line 209 of file btDiscreteDynamicsWorld.h.
References m_applySpeculativeContactRestitution.
|
virtual |
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.
References void.
Definition at line 200 of file btDiscreteDynamicsWorld.h.
References m_synchronizeAllMotionStates.
|
virtual |
Definition at line 1108 of file btDiscreteDynamicsWorld.cpp.
References void.
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().
Definition at line 584 of file btDiscreteDynamicsWorld.cpp.
References BT_PROFILE, and m_actions.
Referenced by btDeformableMultiBodyDynamicsWorld::internalSingleStepSimulation(), and updateVehicles().
Referenced by btMultiBodyDynamicsWorld::updateActivationState().
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().