b3GpuDynamicsWorld improvements:

apply forces
copy linear/angular velocity every frame at the CPU side, initial velocity works now
hook up setGravity
Note: the 'stepSimulation' for GPU only simulates a single simulation frame.
This commit is contained in:
erwincoumans
2013-06-06 22:01:06 -07:00
parent 74bdccc2cf
commit 9fe48d887d
12 changed files with 243 additions and 57 deletions

View File

@@ -27,7 +27,7 @@ class b3GpuDynamicsWorld : public btDynamicsWorld
btVector3 m_gravity;
bool m_cpuGpuSync;
float m_localTime;
int findOrRegisterCollisionShape(const btCollisionShape* colShape);
@@ -39,10 +39,8 @@ public:
virtual int stepSimulation( btScalar timeStep,int maxSubSteps=1, btScalar fixedTimeStep=btScalar(1.)/btScalar(60.));
virtual void synchronizeMotionStates()
{
btAssert(0);
}
virtual void synchronizeMotionStates();
void debugDrawWorld() {}
@@ -52,6 +50,8 @@ public:
void removeCollisionObject(btCollisionObject* colObj);
virtual void removeRigidBody(btRigidBody* body);
void rayTest(const btVector3& rayFromWorld, const btVector3& rayToWorld, RayResultCallback& resultCallback) const;
btAlignedObjectArray<class btCollisionObject*>& getCollisionObjectArray();
@@ -69,11 +69,7 @@ public:
addRigidBody(body);
}
virtual void removeRigidBody(btRigidBody* body)
{
btAssert(0);
}
virtual void addAction(btActionInterface* action)
{
@@ -97,10 +93,7 @@ public:
}
virtual void clearForces()
{
btAssert(0);
}
virtual void clearForces();
virtual btDynamicsWorldType getWorldType() const
{