diff --git a/Demos/AllBulletDemos/Main.cpp b/Demos/AllBulletDemos/Main.cpp index 6371d22da..df2ffda86 100644 --- a/Demos/AllBulletDemos/Main.cpp +++ b/Demos/AllBulletDemos/Main.cpp @@ -146,14 +146,17 @@ void SimulationLoop() demo->setDebugMode(demo->getDebugMode() & (~btIDebugDraw::DBG_NoDeactivation)); } - if (demo->getDynamicsWorld()->getWorldType() == BT_DISCRETE_DYNAMICS_WORLD) + if (demo->getDynamicsWorld() && demo->getDynamicsWorld()->getWorldType() == BT_DISCRETE_DYNAMICS_WORLD) { btDiscreteDynamicsWorld* discreteWorld = (btDiscreteDynamicsWorld*) demo->getDynamicsWorld(); discreteWorld->getSolverInfo().m_numIterations = iterationCount; } - demo->clientMoveAndDisplay(); + if (!demo->isIdle()) + demo->clientMoveAndDisplay(); + else + demo->displayCallback(); /// DrawString(5, 15, entry->name); diff --git a/Demos/CcdPhysicsDemo/CcdPhysicsDemo.cpp b/Demos/CcdPhysicsDemo/CcdPhysicsDemo.cpp index ee40f8ecf..e752380fa 100644 --- a/Demos/CcdPhysicsDemo/CcdPhysicsDemo.cpp +++ b/Demos/CcdPhysicsDemo/CcdPhysicsDemo.cpp @@ -25,6 +25,7 @@ subject to the following restrictions: //#define USER_DEFINED_FRICTION_MODEL 1 //#define USE_CUSTOM_NEAR_CALLBACK 1 //#define CENTER_OF_MASS_SHIFT 1 +//#define VERBOSE_TIMESTEPPING_CONSOLEOUTPUT 1 //#define USE_PARALLEL_SOLVER 1 //experimental parallel solver //#define USE_PARALLEL_DISPATCHER 1 @@ -284,7 +285,8 @@ void CcdPhysicsDemo::clientMoveAndDisplay() int numSimSteps = 0; numSimSteps = m_dynamicsWorld->stepSimulation(dt,maxSimSubSteps); - /* + +#ifdef VERBOSE_TIMESTEPPING_CONSOLEOUTPUT if (!numSimSteps) printf("Interpolated transforms\n"); else @@ -298,7 +300,7 @@ void CcdPhysicsDemo::clientMoveAndDisplay() printf("Simulated (%i) steps\n",numSimSteps); } } - */ +#endif //VERBOSE_TIMESTEPPING_CONSOLEOUTPUT #endif } diff --git a/Demos/OpenGL/DemoApplication.h b/Demos/OpenGL/DemoApplication.h index 8ab18e616..7d93f3e53 100644 --- a/Demos/OpenGL/DemoApplication.h +++ b/Demos/OpenGL/DemoApplication.h @@ -172,6 +172,17 @@ public: void zoomIn(); void zoomOut(); + bool isIdle() const + { + return m_idle; + } + + void setIdle(bool idle) + { + m_idle = idle; + } + + }; #endif //DEMO_APPLICATION_H diff --git a/src/LinearMath/btTransform.h b/src/LinearMath/btTransform.h index 2d55fec83..883b3a5d2 100644 --- a/src/LinearMath/btTransform.h +++ b/src/LinearMath/btTransform.h @@ -92,13 +92,7 @@ public: m_basis.getRotation(q); return q; } - template - void setValue(const Scalar2 *m) - { - m_basis.setValue(m); - m_origin.setValue(&m[12]); - } - + void setFromOpenGLMatrix(const btScalar *m) {