rename btDeformableRigidDynamicsWorld to btDeformableMultiBodyDynamicsWorld

This commit is contained in:
Xuchen Han
2019-08-16 13:42:53 -07:00
parent 8860f8bacc
commit bf215a3ce1
14 changed files with 67 additions and 67 deletions

View File

@@ -28,7 +28,7 @@
#include "DeformableMultibody.h" #include "DeformableMultibody.h"
///btBulletDynamicsCommon.h is the main Bullet include file, contains most common include files. ///btBulletDynamicsCommon.h is the main Bullet include file, contains most common include files.
#include "btBulletDynamicsCommon.h" #include "btBulletDynamicsCommon.h"
#include "BulletSoftBody/btDeformableRigidDynamicsWorld.h" #include "BulletSoftBody/btDeformableMultiBodyDynamicsWorld.h"
#include "BulletSoftBody/btSoftBody.h" #include "BulletSoftBody/btSoftBody.h"
#include "BulletSoftBody/btSoftBodyHelpers.h" #include "BulletSoftBody/btSoftBodyHelpers.h"
#include "BulletSoftBody/btDeformableBodySolver.h" #include "BulletSoftBody/btDeformableBodySolver.h"
@@ -79,20 +79,20 @@ public:
void addColliders_testMultiDof(btMultiBody* pMultiBody, btMultiBodyDynamicsWorld* pWorld, const btVector3& baseHalfExtents, const btVector3& linkHalfExtents); void addColliders_testMultiDof(btMultiBody* pMultiBody, btMultiBodyDynamicsWorld* pWorld, const btVector3& baseHalfExtents, const btVector3& linkHalfExtents);
virtual const btDeformableRigidDynamicsWorld* getDeformableDynamicsWorld() const virtual const btDeformableMultiBodyDynamicsWorld* getDeformableDynamicsWorld() const
{ {
return (btDeformableRigidDynamicsWorld*)m_dynamicsWorld; return (btDeformableMultiBodyDynamicsWorld*)m_dynamicsWorld;
} }
virtual btDeformableRigidDynamicsWorld* getDeformableDynamicsWorld() virtual btDeformableMultiBodyDynamicsWorld* getDeformableDynamicsWorld()
{ {
return (btDeformableRigidDynamicsWorld*)m_dynamicsWorld; return (btDeformableMultiBodyDynamicsWorld*)m_dynamicsWorld;
} }
virtual void renderScene() virtual void renderScene()
{ {
CommonMultiBodyBase::renderScene(); CommonMultiBodyBase::renderScene();
btDeformableRigidDynamicsWorld* deformableWorld = getDeformableDynamicsWorld(); btDeformableMultiBodyDynamicsWorld* deformableWorld = getDeformableDynamicsWorld();
for (int i = 0; i < deformableWorld->getSoftBodyArray().size(); i++) for (int i = 0; i < deformableWorld->getSoftBodyArray().size(); i++)
{ {
@@ -121,7 +121,7 @@ void DeformableMultibody::initPhysics()
sol = new btMultiBodyConstraintSolver; sol = new btMultiBodyConstraintSolver;
m_solver = sol; m_solver = sol;
m_dynamicsWorld = new btDeformableRigidDynamicsWorld(m_dispatcher, m_broadphase, sol, m_collisionConfiguration, deformableBodySolver); m_dynamicsWorld = new btDeformableMultiBodyDynamicsWorld(m_dispatcher, m_broadphase, sol, m_collisionConfiguration, deformableBodySolver);
deformableBodySolver->setWorld(getDeformableDynamicsWorld()); deformableBodySolver->setWorld(getDeformableDynamicsWorld());
btVector3 gravity = btVector3(0, -10, 0); btVector3 gravity = btVector3(0, -10, 0);
m_dynamicsWorld->setGravity(gravity); m_dynamicsWorld->setGravity(gravity);

View File

@@ -28,7 +28,7 @@
#include "DeformableRigid.h" #include "DeformableRigid.h"
///btBulletDynamicsCommon.h is the main Bullet include file, contains most common include files. ///btBulletDynamicsCommon.h is the main Bullet include file, contains most common include files.
#include "btBulletDynamicsCommon.h" #include "btBulletDynamicsCommon.h"
#include "BulletSoftBody/btDeformableRigidDynamicsWorld.h" #include "BulletSoftBody/btDeformableMultiBodyDynamicsWorld.h"
#include "BulletSoftBody/btSoftBody.h" #include "BulletSoftBody/btSoftBody.h"
#include "BulletSoftBody/btSoftBodyHelpers.h" #include "BulletSoftBody/btSoftBodyHelpers.h"
#include "BulletSoftBody/btDeformableBodySolver.h" #include "BulletSoftBody/btDeformableBodySolver.h"
@@ -115,24 +115,24 @@ public:
createRigidBody(mass, startTransform, shape[0]); createRigidBody(mass, startTransform, shape[0]);
} }
virtual const btDeformableRigidDynamicsWorld* getDeformableDynamicsWorld() const virtual const btDeformableMultiBodyDynamicsWorld* getDeformableDynamicsWorld() const
{ {
///just make it a btSoftRigidDynamicsWorld please ///just make it a btSoftRigidDynamicsWorld please
///or we will add type checking ///or we will add type checking
return (btDeformableRigidDynamicsWorld*)m_dynamicsWorld; return (btDeformableMultiBodyDynamicsWorld*)m_dynamicsWorld;
} }
virtual btDeformableRigidDynamicsWorld* getDeformableDynamicsWorld() virtual btDeformableMultiBodyDynamicsWorld* getDeformableDynamicsWorld()
{ {
///just make it a btSoftRigidDynamicsWorld please ///just make it a btSoftRigidDynamicsWorld please
///or we will add type checking ///or we will add type checking
return (btDeformableRigidDynamicsWorld*)m_dynamicsWorld; return (btDeformableMultiBodyDynamicsWorld*)m_dynamicsWorld;
} }
virtual void renderScene() virtual void renderScene()
{ {
CommonRigidBodyBase::renderScene(); CommonRigidBodyBase::renderScene();
btDeformableRigidDynamicsWorld* deformableWorld = getDeformableDynamicsWorld(); btDeformableMultiBodyDynamicsWorld* deformableWorld = getDeformableDynamicsWorld();
for (int i = 0; i < deformableWorld->getSoftBodyArray().size(); i++) for (int i = 0; i < deformableWorld->getSoftBodyArray().size(); i++)
{ {
@@ -163,7 +163,7 @@ void DeformableRigid::initPhysics()
btMultiBodyConstraintSolver* sol = new btMultiBodyConstraintSolver(); btMultiBodyConstraintSolver* sol = new btMultiBodyConstraintSolver();
m_solver = sol; m_solver = sol;
m_dynamicsWorld = new btDeformableRigidDynamicsWorld(m_dispatcher, m_broadphase, sol, m_collisionConfiguration, deformableBodySolver); m_dynamicsWorld = new btDeformableMultiBodyDynamicsWorld(m_dispatcher, m_broadphase, sol, m_collisionConfiguration, deformableBodySolver);
deformableBodySolver->setWorld(getDeformableDynamicsWorld()); deformableBodySolver->setWorld(getDeformableDynamicsWorld());
// m_dynamicsWorld->getSolverInfo().m_singleAxisDeformableThreshold = 0.f;//faster but lower quality // m_dynamicsWorld->getSolverInfo().m_singleAxisDeformableThreshold = 0.f;//faster but lower quality
btVector3 gravity = btVector3(0, -10, 0); btVector3 gravity = btVector3(0, -10, 0);

View File

@@ -14,7 +14,7 @@
#include "GraspDeformable.h" #include "GraspDeformable.h"
///btBulletDynamicsCommon.h is the main Bullet include file, contains most common include files. ///btBulletDynamicsCommon.h is the main Bullet include file, contains most common include files.
#include "btBulletDynamicsCommon.h" #include "btBulletDynamicsCommon.h"
#include "BulletSoftBody/btDeformableRigidDynamicsWorld.h" #include "BulletSoftBody/btDeformableMultiBodyDynamicsWorld.h"
#include "BulletSoftBody/btSoftBody.h" #include "BulletSoftBody/btSoftBody.h"
#include "BulletSoftBody/btSoftBodyHelpers.h" #include "BulletSoftBody/btSoftBodyHelpers.h"
#include "BulletSoftBody/btDeformableBodySolver.h" #include "BulletSoftBody/btDeformableBodySolver.h"
@@ -148,20 +148,20 @@ public:
} }
} }
virtual const btDeformableRigidDynamicsWorld* getDeformableDynamicsWorld() const virtual const btDeformableMultiBodyDynamicsWorld* getDeformableDynamicsWorld() const
{ {
return (btDeformableRigidDynamicsWorld*)m_dynamicsWorld; return (btDeformableMultiBodyDynamicsWorld*)m_dynamicsWorld;
} }
virtual btDeformableRigidDynamicsWorld* getDeformableDynamicsWorld() virtual btDeformableMultiBodyDynamicsWorld* getDeformableDynamicsWorld()
{ {
return (btDeformableRigidDynamicsWorld*)m_dynamicsWorld; return (btDeformableMultiBodyDynamicsWorld*)m_dynamicsWorld;
} }
virtual void renderScene() virtual void renderScene()
{ {
CommonRigidBodyBase::renderScene(); CommonRigidBodyBase::renderScene();
btDeformableRigidDynamicsWorld* deformableWorld = getDeformableDynamicsWorld(); btDeformableMultiBodyDynamicsWorld* deformableWorld = getDeformableDynamicsWorld();
for (int i = 0; i < deformableWorld->getSoftBodyArray().size(); i++) for (int i = 0; i < deformableWorld->getSoftBodyArray().size(); i++)
{ {
@@ -189,7 +189,7 @@ void GraspDeformable::initPhysics()
btMultiBodyConstraintSolver* sol = new btMultiBodyConstraintSolver(); btMultiBodyConstraintSolver* sol = new btMultiBodyConstraintSolver();
m_solver = sol; m_solver = sol;
m_dynamicsWorld = new btDeformableRigidDynamicsWorld(m_dispatcher, m_broadphase, sol, m_collisionConfiguration, deformableBodySolver); m_dynamicsWorld = new btDeformableMultiBodyDynamicsWorld(m_dispatcher, m_broadphase, sol, m_collisionConfiguration, deformableBodySolver);
deformableBodySolver->setWorld(getDeformableDynamicsWorld()); deformableBodySolver->setWorld(getDeformableDynamicsWorld());
btVector3 gravity = btVector3(0, -10, 0); btVector3 gravity = btVector3(0, -10, 0);
m_dynamicsWorld->setGravity(gravity); m_dynamicsWorld->setGravity(gravity);

View File

@@ -28,7 +28,7 @@
#include "Pinch.h" #include "Pinch.h"
///btBulletDynamicsCommon.h is the main Bullet include file, contains most common include files. ///btBulletDynamicsCommon.h is the main Bullet include file, contains most common include files.
#include "btBulletDynamicsCommon.h" #include "btBulletDynamicsCommon.h"
#include "BulletSoftBody/btDeformableRigidDynamicsWorld.h" #include "BulletSoftBody/btDeformableMultiBodyDynamicsWorld.h"
#include "BulletSoftBody/btSoftBody.h" #include "BulletSoftBody/btSoftBody.h"
#include "BulletSoftBody/btSoftBodyHelpers.h" #include "BulletSoftBody/btSoftBodyHelpers.h"
#include "BulletSoftBody/btDeformableBodySolver.h" #include "BulletSoftBody/btDeformableBodySolver.h"
@@ -102,20 +102,20 @@ public:
} }
} }
virtual const btDeformableRigidDynamicsWorld* getDeformableDynamicsWorld() const virtual const btDeformableMultiBodyDynamicsWorld* getDeformableDynamicsWorld() const
{ {
return (btDeformableRigidDynamicsWorld*)m_dynamicsWorld; return (btDeformableMultiBodyDynamicsWorld*)m_dynamicsWorld;
} }
virtual btDeformableRigidDynamicsWorld* getDeformableDynamicsWorld() virtual btDeformableMultiBodyDynamicsWorld* getDeformableDynamicsWorld()
{ {
return (btDeformableRigidDynamicsWorld*)m_dynamicsWorld; return (btDeformableMultiBodyDynamicsWorld*)m_dynamicsWorld;
} }
virtual void renderScene() virtual void renderScene()
{ {
CommonRigidBodyBase::renderScene(); CommonRigidBodyBase::renderScene();
btDeformableRigidDynamicsWorld* deformableWorld = getDeformableDynamicsWorld(); btDeformableMultiBodyDynamicsWorld* deformableWorld = getDeformableDynamicsWorld();
for (int i = 0; i < deformableWorld->getSoftBodyArray().size(); i++) for (int i = 0; i < deformableWorld->getSoftBodyArray().size(); i++)
{ {
@@ -128,7 +128,7 @@ public:
} }
}; };
void dynamics(btScalar time, btDeformableRigidDynamicsWorld* world) void dynamics(btScalar time, btDeformableMultiBodyDynamicsWorld* world)
{ {
btAlignedObjectArray<btRigidBody*>& rbs = world->getNonStaticRigidBodies(); btAlignedObjectArray<btRigidBody*>& rbs = world->getNonStaticRigidBodies();
if (rbs.size()<2) if (rbs.size()<2)
@@ -247,7 +247,7 @@ void Pinch::initPhysics()
btMultiBodyConstraintSolver* sol = new btMultiBodyConstraintSolver(); btMultiBodyConstraintSolver* sol = new btMultiBodyConstraintSolver();
m_solver = sol; m_solver = sol;
m_dynamicsWorld = new btDeformableRigidDynamicsWorld(m_dispatcher, m_broadphase, sol, m_collisionConfiguration, deformableBodySolver); m_dynamicsWorld = new btDeformableMultiBodyDynamicsWorld(m_dispatcher, m_broadphase, sol, m_collisionConfiguration, deformableBodySolver);
deformableBodySolver->setWorld(getDeformableDynamicsWorld()); deformableBodySolver->setWorld(getDeformableDynamicsWorld());
// m_dynamicsWorld->getSolverInfo().m_singleAxisDeformableThreshold = 0.f;//faster but lower quality // m_dynamicsWorld->getSolverInfo().m_singleAxisDeformableThreshold = 0.f;//faster but lower quality
btVector3 gravity = btVector3(0, -10, 0); btVector3 gravity = btVector3(0, -10, 0);

View File

@@ -28,7 +28,7 @@
#include "VolumetricDeformable.h" #include "VolumetricDeformable.h"
///btBulletDynamicsCommon.h is the main Bullet include file, contains most common include files. ///btBulletDynamicsCommon.h is the main Bullet include file, contains most common include files.
#include "btBulletDynamicsCommon.h" #include "btBulletDynamicsCommon.h"
#include "BulletSoftBody/btDeformableRigidDynamicsWorld.h" #include "BulletSoftBody/btDeformableMultiBodyDynamicsWorld.h"
#include "BulletSoftBody/btSoftBody.h" #include "BulletSoftBody/btSoftBody.h"
#include "BulletSoftBody/btSoftBodyHelpers.h" #include "BulletSoftBody/btSoftBodyHelpers.h"
#include "BulletSoftBody/btDeformableBodySolver.h" #include "BulletSoftBody/btDeformableBodySolver.h"
@@ -133,24 +133,24 @@ public:
} }
} }
virtual const btDeformableRigidDynamicsWorld* getDeformableDynamicsWorld() const virtual const btDeformableMultiBodyDynamicsWorld* getDeformableDynamicsWorld() const
{ {
///just make it a btSoftRigidDynamicsWorld please ///just make it a btSoftRigidDynamicsWorld please
///or we will add type checking ///or we will add type checking
return (btDeformableRigidDynamicsWorld*)m_dynamicsWorld; return (btDeformableMultiBodyDynamicsWorld*)m_dynamicsWorld;
} }
virtual btDeformableRigidDynamicsWorld* getDeformableDynamicsWorld() virtual btDeformableMultiBodyDynamicsWorld* getDeformableDynamicsWorld()
{ {
///just make it a btSoftRigidDynamicsWorld please ///just make it a btSoftRigidDynamicsWorld please
///or we will add type checking ///or we will add type checking
return (btDeformableRigidDynamicsWorld*)m_dynamicsWorld; return (btDeformableMultiBodyDynamicsWorld*)m_dynamicsWorld;
} }
virtual void renderScene() virtual void renderScene()
{ {
CommonRigidBodyBase::renderScene(); CommonRigidBodyBase::renderScene();
btDeformableRigidDynamicsWorld* deformableWorld = getDeformableDynamicsWorld(); btDeformableMultiBodyDynamicsWorld* deformableWorld = getDeformableDynamicsWorld();
for (int i = 0; i < deformableWorld->getSoftBodyArray().size(); i++) for (int i = 0; i < deformableWorld->getSoftBodyArray().size(); i++)
{ {
@@ -181,7 +181,7 @@ void VolumetricDeformable::initPhysics()
btMultiBodyConstraintSolver* sol = new btMultiBodyConstraintSolver(); btMultiBodyConstraintSolver* sol = new btMultiBodyConstraintSolver();
m_solver = sol; m_solver = sol;
m_dynamicsWorld = new btDeformableRigidDynamicsWorld(m_dispatcher, m_broadphase, sol, m_collisionConfiguration, deformableBodySolver); m_dynamicsWorld = new btDeformableMultiBodyDynamicsWorld(m_dispatcher, m_broadphase, sol, m_collisionConfiguration, deformableBodySolver);
deformableBodySolver->setWorld(getDeformableDynamicsWorld()); deformableBodySolver->setWorld(getDeformableDynamicsWorld());
// m_dynamicsWorld->getSolverInfo().m_singleAxisDeformableThreshold = 0.f;//faster but lower quality // m_dynamicsWorld->getSolverInfo().m_singleAxisDeformableThreshold = 0.f;//faster but lower quality
btVector3 gravity = btVector3(0, -10, 0); btVector3 gravity = btVector3(0, -10, 0);

View File

@@ -20,7 +20,7 @@ SET(BulletSoftBody_SRCS
btDeformableBackwardEulerObjective.cpp btDeformableBackwardEulerObjective.cpp
btDeformableBodySolver.cpp btDeformableBodySolver.cpp
btDeformableContactProjection.cpp btDeformableContactProjection.cpp
btDeformableRigidDynamicsWorld.cpp btDeformableMultiBodyDynamicsWorld.cpp
) )
@@ -49,7 +49,7 @@ SET(BulletSoftBody_HDRS
btDeformableBackwardEulerObjective.h btDeformableBackwardEulerObjective.h
btDeformableBodySolver.h btDeformableBodySolver.h
btDeformableContactProjection.h btDeformableContactProjection.h
btDeformableRigidDynamicsWorld.h btDeformableMultiBodyDynamicsWorld.h
btSoftBodySolverVertexBuffer.h btSoftBodySolverVertexBuffer.h
) )

View File

@@ -20,7 +20,7 @@
#include "BulletDynamics/Featherstone/btMultiBodyLinkCollider.h" #include "BulletDynamics/Featherstone/btMultiBodyLinkCollider.h"
#include "BulletDynamics/Featherstone/btMultiBodyConstraint.h" #include "BulletDynamics/Featherstone/btMultiBodyConstraint.h"
class btDeformableRigidDynamicsWorld; class btDeformableMultiBodyDynamicsWorld;
struct DeformableContactConstraint struct DeformableContactConstraint
{ {
@@ -62,7 +62,7 @@ public:
typedef btAlignedObjectArray<btAlignedObjectArray<btVector3> > TVArrayStack; typedef btAlignedObjectArray<btAlignedObjectArray<btVector3> > TVArrayStack;
typedef btAlignedObjectArray<btAlignedObjectArray<btScalar> > TArrayStack; typedef btAlignedObjectArray<btAlignedObjectArray<btScalar> > TArrayStack;
btAlignedObjectArray<btSoftBody *>& m_softBodies; btAlignedObjectArray<btSoftBody *>& m_softBodies;
btDeformableRigidDynamicsWorld* m_world; btDeformableMultiBodyDynamicsWorld* m_world;
const btScalar& m_dt; const btScalar& m_dt;
btCGProjection(btAlignedObjectArray<btSoftBody *>& softBodies, const btScalar& dt) btCGProjection(btAlignedObjectArray<btSoftBody *>& softBodies, const btScalar& dt)
@@ -87,7 +87,7 @@ public:
{ {
} }
virtual void setWorld(btDeformableRigidDynamicsWorld* world) virtual void setWorld(btDeformableMultiBodyDynamicsWorld* world)
{ {
m_world = world; m_world = world;
} }

View File

@@ -22,16 +22,16 @@
#include "btDeformableCorotatedForce.h" #include "btDeformableCorotatedForce.h"
#include "btDeformableContactProjection.h" #include "btDeformableContactProjection.h"
#include "btPreconditioner.h" #include "btPreconditioner.h"
#include "btDeformableRigidDynamicsWorld.h" #include "btDeformableMultiBodyDynamicsWorld.h"
#include "LinearMath/btQuickprof.h" #include "LinearMath/btQuickprof.h"
class btDeformableRigidDynamicsWorld; class btDeformableMultiBodyDynamicsWorld;
class btDeformableBackwardEulerObjective class btDeformableBackwardEulerObjective
{ {
public: public:
typedef btAlignedObjectArray<btVector3> TVStack; typedef btAlignedObjectArray<btVector3> TVStack;
btScalar m_dt; btScalar m_dt;
btDeformableRigidDynamicsWorld* m_world; btDeformableMultiBodyDynamicsWorld* m_world;
btAlignedObjectArray<btDeformableLagrangianForce*> m_lf; btAlignedObjectArray<btDeformableLagrangianForce*> m_lf;
btAlignedObjectArray<btSoftBody *>& m_softBodies; btAlignedObjectArray<btSoftBody *>& m_softBodies;
Preconditioner* m_preconditioner; Preconditioner* m_preconditioner;
@@ -98,7 +98,7 @@ public:
m_preconditioner->operator()(x,b); m_preconditioner->operator()(x,b);
} }
virtual void setWorld(btDeformableRigidDynamicsWorld* world) virtual void setWorld(btDeformableMultiBodyDynamicsWorld* world)
{ {
m_world = world; m_world = world;
projection.setWorld(world); projection.setWorld(world);

View File

@@ -87,7 +87,7 @@ void btDeformableBodySolver::setConstraints()
} }
} }
void btDeformableBodySolver::setWorld(btDeformableRigidDynamicsWorld* world) void btDeformableBodySolver::setWorld(btDeformableMultiBodyDynamicsWorld* world)
{ {
m_objective->setWorld(world); m_objective->setWorld(world);
} }

View File

@@ -19,13 +19,13 @@
#include "btSoftBodySolvers.h" #include "btSoftBodySolvers.h"
#include "btDeformableBackwardEulerObjective.h" #include "btDeformableBackwardEulerObjective.h"
#include "btDeformableRigidDynamicsWorld.h" #include "btDeformableMultiBodyDynamicsWorld.h"
#include "BulletDynamics/Featherstone/btMultiBodyLinkCollider.h" #include "BulletDynamics/Featherstone/btMultiBodyLinkCollider.h"
#include "BulletDynamics/Featherstone/btMultiBodyConstraint.h" #include "BulletDynamics/Featherstone/btMultiBodyConstraint.h"
struct btCollisionObjectWrapper; struct btCollisionObjectWrapper;
class btDeformableBackwardEulerObjective; class btDeformableBackwardEulerObjective;
class btDeformableRigidDynamicsWorld; class btDeformableMultiBodyDynamicsWorld;
class btDeformableBodySolver : public btSoftBodySolver class btDeformableBodySolver : public btSoftBodySolver
{ {
@@ -91,7 +91,7 @@ public:
} }
virtual void optimize(btAlignedObjectArray<btSoftBody *> &softBodies, bool forceUpdate = false){} virtual void optimize(btAlignedObjectArray<btSoftBody *> &softBodies, bool forceUpdate = false){}
virtual bool checkInitialized(){return true;} virtual bool checkInitialized(){return true;}
virtual void setWorld(btDeformableRigidDynamicsWorld* world); virtual void setWorld(btDeformableMultiBodyDynamicsWorld* world);
}; };
#endif /* btDeformableBodySolver_h */ #endif /* btDeformableBodySolver_h */

View File

@@ -14,7 +14,7 @@
*/ */
#include "btDeformableContactProjection.h" #include "btDeformableContactProjection.h"
#include "btDeformableRigidDynamicsWorld.h" #include "btDeformableMultiBodyDynamicsWorld.h"
#include <algorithm> #include <algorithm>
#include <cmath> #include <cmath>
void btDeformableContactProjection::update() void btDeformableContactProjection::update()

View File

@@ -30,11 +30,11 @@ The algorithm also closely resembles the one in http://physbam.stanford.edu/~fed
*/ */
#include <stdio.h> #include <stdio.h>
#include "btDeformableRigidDynamicsWorld.h" #include "btDeformableMultiBodyDynamicsWorld.h"
#include "btDeformableBodySolver.h" #include "btDeformableBodySolver.h"
#include "LinearMath/btQuickprof.h" #include "LinearMath/btQuickprof.h"
void btDeformableRigidDynamicsWorld::internalSingleStepSimulation(btScalar timeStep) void btDeformableMultiBodyDynamicsWorld::internalSingleStepSimulation(btScalar timeStep)
{ {
BT_PROFILE("internalSingleStepSimulation"); BT_PROFILE("internalSingleStepSimulation");
reinitialize(timeStep); reinitialize(timeStep);
@@ -66,7 +66,7 @@ void btDeformableRigidDynamicsWorld::internalSingleStepSimulation(btScalar timeS
// /////////////////////////////// // ///////////////////////////////
} }
void btDeformableRigidDynamicsWorld::positionCorrection(btScalar timeStep) void btDeformableMultiBodyDynamicsWorld::positionCorrection(btScalar timeStep)
{ {
// perform position correction for all constraints // perform position correction for all constraints
BT_PROFILE("positionCorrection"); BT_PROFILE("positionCorrection");
@@ -141,7 +141,7 @@ void btDeformableRigidDynamicsWorld::positionCorrection(btScalar timeStep)
} }
void btDeformableRigidDynamicsWorld::integrateTransforms(btScalar timeStep) void btDeformableMultiBodyDynamicsWorld::integrateTransforms(btScalar timeStep)
{ {
BT_PROFILE("integrateTransforms"); BT_PROFILE("integrateTransforms");
m_deformableBodySolver->backupVelocity(); m_deformableBodySolver->backupVelocity();
@@ -159,12 +159,12 @@ void btDeformableRigidDynamicsWorld::integrateTransforms(btScalar timeStep)
m_deformableBodySolver->revertVelocity(); m_deformableBodySolver->revertVelocity();
} }
void btDeformableRigidDynamicsWorld::solveDeformableBodiesConstraints(btScalar timeStep) void btDeformableMultiBodyDynamicsWorld::solveDeformableBodiesConstraints(btScalar timeStep)
{ {
m_deformableBodySolver->solveConstraints(timeStep); m_deformableBodySolver->solveConstraints(timeStep);
} }
void btDeformableRigidDynamicsWorld::addSoftBody(btSoftBody* body, int collisionFilterGroup, int collisionFilterMask) void btDeformableMultiBodyDynamicsWorld::addSoftBody(btSoftBody* body, int collisionFilterGroup, int collisionFilterMask)
{ {
m_softBodies.push_back(body); m_softBodies.push_back(body);
@@ -177,14 +177,14 @@ void btDeformableRigidDynamicsWorld::addSoftBody(btSoftBody* body, int collision
collisionFilterMask); collisionFilterMask);
} }
void btDeformableRigidDynamicsWorld::predictUnconstraintMotion(btScalar timeStep) void btDeformableMultiBodyDynamicsWorld::predictUnconstraintMotion(btScalar timeStep)
{ {
BT_PROFILE("predictUnconstraintMotion"); BT_PROFILE("predictUnconstraintMotion");
btMultiBodyDynamicsWorld::predictUnconstraintMotion(timeStep); btMultiBodyDynamicsWorld::predictUnconstraintMotion(timeStep);
m_deformableBodySolver->predictMotion(timeStep); m_deformableBodySolver->predictMotion(timeStep);
} }
void btDeformableRigidDynamicsWorld::reinitialize(btScalar timeStep) void btDeformableMultiBodyDynamicsWorld::reinitialize(btScalar timeStep)
{ {
m_internalTime += timeStep; m_internalTime += timeStep;
m_deformableBodySolver->reinitialize(m_softBodies, timeStep); m_deformableBodySolver->reinitialize(m_softBodies, timeStep);
@@ -195,7 +195,7 @@ void btDeformableRigidDynamicsWorld::reinitialize(btScalar timeStep)
btMultiBodyDynamicsWorld::getSolverInfo().m_timeStep = timeStep; btMultiBodyDynamicsWorld::getSolverInfo().m_timeStep = timeStep;
} }
void btDeformableRigidDynamicsWorld::applyRigidBodyGravity(btScalar timeStep) void btDeformableMultiBodyDynamicsWorld::applyRigidBodyGravity(btScalar timeStep)
{ {
// Gravity is applied in stepSimulation and then cleared here and then applied here and then cleared here again // Gravity is applied in stepSimulation and then cleared here and then applied here and then cleared here again
// so that 1) gravity is applied to velocity before constraint solve and 2) gravity is applied in each substep // so that 1) gravity is applied to velocity before constraint solve and 2) gravity is applied in each substep
@@ -215,7 +215,7 @@ void btDeformableRigidDynamicsWorld::applyRigidBodyGravity(btScalar timeStep)
clearMultiBodyForces(); clearMultiBodyForces();
} }
void btDeformableRigidDynamicsWorld::beforeSolverCallbacks(btScalar timeStep) void btDeformableMultiBodyDynamicsWorld::beforeSolverCallbacks(btScalar timeStep)
{ {
if (0 != m_internalTickCallback) if (0 != m_internalTickCallback)
{ {
@@ -228,7 +228,7 @@ void btDeformableRigidDynamicsWorld::beforeSolverCallbacks(btScalar timeStep)
} }
} }
void btDeformableRigidDynamicsWorld::afterSolverCallbacks(btScalar timeStep) void btDeformableMultiBodyDynamicsWorld::afterSolverCallbacks(btScalar timeStep)
{ {
if (0 != m_solverCallback) if (0 != m_solverCallback)
{ {
@@ -236,7 +236,7 @@ void btDeformableRigidDynamicsWorld::afterSolverCallbacks(btScalar timeStep)
} }
} }
void btDeformableRigidDynamicsWorld::addForce(btSoftBody* psb, btDeformableLagrangianForce* force) void btDeformableMultiBodyDynamicsWorld::addForce(btSoftBody* psb, btDeformableLagrangianForce* force)
{ {
btAlignedObjectArray<btDeformableLagrangianForce*>& forces = m_deformableBodySolver->m_objective->m_lf; btAlignedObjectArray<btDeformableLagrangianForce*>& forces = m_deformableBodySolver->m_objective->m_lf;
bool added = false; bool added = false;

View File

@@ -28,7 +28,7 @@ class btDeformableBodySolver;
class btDeformableLagrangianForce; class btDeformableLagrangianForce;
typedef btAlignedObjectArray<btSoftBody*> btSoftBodyArray; typedef btAlignedObjectArray<btSoftBody*> btSoftBodyArray;
class btDeformableRigidDynamicsWorld : public btMultiBodyDynamicsWorld class btDeformableMultiBodyDynamicsWorld : public btMultiBodyDynamicsWorld
{ {
typedef btAlignedObjectArray<btVector3> TVStack; typedef btAlignedObjectArray<btVector3> TVStack;
// using TVStack = btAlignedObjectArray<btVector3>; // using TVStack = btAlignedObjectArray<btVector3>;
@@ -42,7 +42,7 @@ class btDeformableRigidDynamicsWorld : public btMultiBodyDynamicsWorld
btSoftBodyWorldInfo m_sbi; btSoftBodyWorldInfo m_sbi;
btScalar m_internalTime; btScalar m_internalTime;
typedef void (*btSolverCallback)(btScalar time, btDeformableRigidDynamicsWorld* world); typedef void (*btSolverCallback)(btScalar time, btDeformableMultiBodyDynamicsWorld* world);
btSolverCallback m_solverCallback; btSolverCallback m_solverCallback;
protected: protected:
@@ -55,7 +55,7 @@ protected:
void solveDeformableBodiesConstraints(btScalar timeStep); void solveDeformableBodiesConstraints(btScalar timeStep);
public: public:
btDeformableRigidDynamicsWorld(btDispatcher* dispatcher, btBroadphaseInterface* pairCache, btMultiBodyConstraintSolver* constraintSolver, btCollisionConfiguration* collisionConfiguration, btDeformableBodySolver* deformableBodySolver = 0) btDeformableMultiBodyDynamicsWorld(btDispatcher* dispatcher, btBroadphaseInterface* pairCache, btMultiBodyConstraintSolver* constraintSolver, btCollisionConfiguration* collisionConfiguration, btDeformableBodySolver* deformableBodySolver = 0)
: btMultiBodyDynamicsWorld(dispatcher, pairCache, constraintSolver, collisionConfiguration), : btMultiBodyDynamicsWorld(dispatcher, pairCache, constraintSolver, collisionConfiguration),
m_deformableBodySolver(deformableBodySolver), m_solverCallback(0) m_deformableBodySolver(deformableBodySolver), m_solverCallback(0)
{ {
@@ -83,7 +83,7 @@ public:
m_solverCallback = cb; m_solverCallback = cb;
} }
virtual ~btDeformableRigidDynamicsWorld() virtual ~btDeformableMultiBodyDynamicsWorld()
{ {
} }