diff options
author | Erwin Coumans <blender@erwincoumans.com> | 2006-11-29 08:24:52 +0300 |
---|---|---|
committer | Erwin Coumans <blender@erwincoumans.com> | 2006-11-29 08:24:52 +0300 |
commit | e720f86a836b9343388beafb56be5be9956a3629 (patch) | |
tree | a703505b43d0936b433dd0fc177644ebdbc2b64b /extern/bullet2/src/BulletDynamics/Dynamics | |
parent | c5db2965fad723982857c9099114360330f90146 (diff) |
updated to latest Bullet 2.x
Diffstat (limited to 'extern/bullet2/src/BulletDynamics/Dynamics')
5 files changed, 18 insertions, 36 deletions
diff --git a/extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp b/extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp index 0dece6b20e6..f59598f2a53 100644 --- a/extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp +++ b/extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp @@ -57,19 +57,6 @@ subject to the following restrictions: #include <algorithm> -btDiscreteDynamicsWorld::btDiscreteDynamicsWorld(btConstraintSolver* constraintSolver) -:btDynamicsWorld(), -m_constraintSolver(constraintSolver? constraintSolver: new btSequentialImpulseConstraintSolver), -m_debugDrawer(0), -m_gravity(0,-10,0), -m_localTime(1.f/60.f), -m_profileTimings(0) -{ - m_islandManager = new btSimulationIslandManager(); - m_ownsIslandManager = true; - m_ownsConstraintSolver = (constraintSolver==0); -} - btDiscreteDynamicsWorld::btDiscreteDynamicsWorld(btDispatcher* dispatcher,btOverlappingPairCache* pairCache,btConstraintSolver* constraintSolver) :btDynamicsWorld(dispatcher,pairCache), @@ -267,27 +254,27 @@ void btDiscreteDynamicsWorld::internalSingleStepSimulation(float timeStep) ///apply gravity, predict motion predictUnconstraintMotion(timeStep); - btDispatcherInfo dispatchInfo; + btDispatcherInfo& dispatchInfo = getDispatchInfo(); + dispatchInfo.m_timeStep = timeStep; dispatchInfo.m_stepCount = 0; dispatchInfo.m_debugDraw = getDebugDrawer(); - ///perform collision detection performDiscreteCollisionDetection(dispatchInfo); calculateSimulationIslands(); - btContactSolverInfo infoGlobal; - infoGlobal.m_timeStep = timeStep; + + getSolverInfo().m_timeStep = timeStep; ///solve non-contact constraints - solveNoncontactConstraints(infoGlobal); + solveNoncontactConstraints(getSolverInfo()); ///solve contact constraints - solveContactConstraints(infoGlobal); + solveContactConstraints(getSolverInfo()); ///CallbackTriggers(); diff --git a/extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h b/extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h index 4aa83683cd5..72619091c6f 100644 --- a/extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h +++ b/extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h @@ -23,7 +23,8 @@ class btOverlappingPairCache; class btConstraintSolver; class btSimulationIslandManager; class btTypedConstraint; -struct btContactSolverInfo; +#include "BulletDynamics/ConstraintSolver/btContactSolverInfo.h" + class btRaycastVehicle; class btIDebugDraw; @@ -52,6 +53,9 @@ protected: bool m_ownsIslandManager; bool m_ownsConstraintSolver; + btContactSolverInfo m_solverInfo; + + std::vector<btRaycastVehicle*> m_vehicles; int m_profileTimings; @@ -83,11 +87,8 @@ public: ///this btDiscreteDynamicsWorld constructor gets created objects from the user, and will not delete those - btDiscreteDynamicsWorld(btDispatcher* dispatcher,btOverlappingPairCache* pairCache,btConstraintSolver* constraintSolver=0); + btDiscreteDynamicsWorld(btDispatcher* dispatcher,btOverlappingPairCache* pairCache,btConstraintSolver* constraintSolver); - ///this btDiscreteDynamicsWorld will create and own dispatcher, pairCache and constraintSolver, and deletes it in the destructor. - btDiscreteDynamicsWorld(btConstraintSolver* constraintSolver = 0); - virtual ~btDiscreteDynamicsWorld(); ///if maxSubSteps > 0, it will interpolate motion between fixedTimeStep's @@ -144,6 +145,11 @@ public: virtual const btTypedConstraint* getConstraint(int index) const; + btContactSolverInfo& getSolverInfo() + { + return m_solverInfo; + } + }; diff --git a/extern/bullet2/src/BulletDynamics/Dynamics/btDynamicsWorld.h b/extern/bullet2/src/BulletDynamics/Dynamics/btDynamicsWorld.h index a991fdca79d..617ed98d2af 100644 --- a/extern/bullet2/src/BulletDynamics/Dynamics/btDynamicsWorld.h +++ b/extern/bullet2/src/BulletDynamics/Dynamics/btDynamicsWorld.h @@ -27,9 +27,6 @@ class btDynamicsWorld : public btCollisionWorld { public: - btDynamicsWorld() - { - } btDynamicsWorld(btDispatcher* dispatcher,btOverlappingPairCache* pairCache) :btCollisionWorld(dispatcher,pairCache) diff --git a/extern/bullet2/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp b/extern/bullet2/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp index fe6a73939a7..ce5c76c58e2 100644 --- a/extern/bullet2/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp +++ b/extern/bullet2/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp @@ -22,13 +22,7 @@ subject to the following restrictions: #include "BulletDynamics/ConstraintSolver/btContactSolverInfo.h" -btSimpleDynamicsWorld::btSimpleDynamicsWorld() -:m_constraintSolver(new btSequentialImpulseConstraintSolver), -m_ownsConstraintSolver(true), -m_debugDrawer(0), -m_gravity(0,0,-10) -{ -} + btSimpleDynamicsWorld::btSimpleDynamicsWorld(btDispatcher* dispatcher,btOverlappingPairCache* pairCache,btConstraintSolver* constraintSolver) :btDynamicsWorld(dispatcher,pairCache), diff --git a/extern/bullet2/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h b/extern/bullet2/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h index f74e2460732..cdc0c5559f6 100644 --- a/extern/bullet2/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h +++ b/extern/bullet2/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h @@ -46,8 +46,6 @@ protected: public: - ///this btSimpleDynamicsWorld constructor creates and owns dispatcher, broadphase pairCache and constraintSolver - btSimpleDynamicsWorld(); ///this btSimpleDynamicsWorld constructor creates dispatcher, broadphase pairCache and constraintSolver btSimpleDynamicsWorld(btDispatcher* dispatcher,btOverlappingPairCache* pairCache,btConstraintSolver* constraintSolver); |