Improved URDF support for btMultiBody and separate graphics/collision/inertial frames and shapes

Fix WinXP GetTickCount64 with a typedef
Expose debug drawing mode/flags in UI (hot keys A,D,L,W for now, buttons later)
GLInstancingRenderer: tweak near/far planes to allow closer approach of camera
btDiscreteDynamicsWorld: enable debug drawing for btGeneric6DofSpring2Constraint
btMultiBodyDynamicsWorld: enable basic debug drawing for btMultiBody
btMultibody: allow center-of-mass shift for prismatic and fixed constraint
This commit is contained in:
erwincoumans
2015-01-22 17:56:24 -08:00
parent 6e70f285e1
commit a159fbac69
28 changed files with 1022 additions and 674 deletions

View File

@@ -226,9 +226,9 @@ void Bullet2RigidBodyDemo::renderScene()
}
void Bullet2RigidBodyDemo::physicsDebugDraw()
void Bullet2RigidBodyDemo::physicsDebugDraw(int debugDrawFlags)
{
m_physicsSetup->debugDraw();
m_physicsSetup->debugDraw(debugDrawFlags);
}
Bullet2RigidBodyDemo::~Bullet2RigidBodyDemo()

View File

@@ -25,7 +25,7 @@ public:
virtual void initPhysics();
virtual void exitPhysics();
virtual void renderScene();
virtual void physicsDebugDraw();
virtual void physicsDebugDraw(int debugDrawFlags);
virtual void stepSimulation(float dt);
virtual CommonPhysicsSetup* getPhysicsSetup()
{

View File

@@ -3,6 +3,7 @@
struct CommonGraphicsApp;
class BulletDemoInterface
{
public:
@@ -17,7 +18,7 @@ public:
virtual void exitPhysics()=0;
virtual void stepSimulation(float deltaTime)=0;
virtual void renderScene()=0;
virtual void physicsDebugDraw()=0;
virtual void physicsDebugDraw(int debugFlags)=0;//for now we reuse the flags in Bullet/src/LinearMath/btIDebugDraw.h
virtual bool mouseMoveCallback(float x,float y)=0;
virtual bool mouseButtonCallback(int button, int state, float x, float y)=0;
virtual bool keyboardCallback(int key, int state)=0;
@@ -44,7 +45,7 @@ public:
virtual void renderScene()
{
}
virtual void physicsDebugDraw()
virtual void physicsDebugDraw(int debugFlags)
{
}
virtual bool mouseMoveCallback(float x,float y)

View File

@@ -125,10 +125,14 @@ struct CommonMultiBodySetup : public CommonPhysicsSetup
}
}
virtual void debugDraw()
virtual void debugDraw(int debugDrawFlags)
{
if (m_dynamicsWorld)
{
if (m_dynamicsWorld->getDebugDrawer())
{
m_dynamicsWorld->getDebugDrawer()->setDebugMode(debugDrawFlags);
}
m_dynamicsWorld->debugDrawWorld();
}

View File

@@ -57,7 +57,7 @@ public:
virtual void stepSimulation(float deltaTime)=0;
virtual void debugDraw()=0;
virtual void debugDraw(int debugDrawFlags)=0;
virtual bool pickBody(const btVector3& rayFromWorld, const btVector3& rayToWorld) = 0;
virtual bool movePickedBody(const btVector3& rayFromWorld, const btVector3& rayToWorld)=0;

View File

@@ -118,10 +118,14 @@ struct CommonRigidBodySetup : public CommonPhysicsSetup
}
}
virtual void debugDraw()
virtual void debugDraw(int debugDrawFlags)
{
if (m_dynamicsWorld)
{
if (m_dynamicsWorld->getDebugDrawer())
{
m_dynamicsWorld->getDebugDrawer()->setDebugMode(debugDrawFlags);
}
m_dynamicsWorld->debugDrawWorld();
}