summaryrefslogtreecommitdiff
path: root/src/BulletSoftBody/btDeformableBodySolver.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/BulletSoftBody/btDeformableBodySolver.h')
-rw-r--r--src/BulletSoftBody/btDeformableBodySolver.h74
1 files changed, 5 insertions, 69 deletions
diff --git a/src/BulletSoftBody/btDeformableBodySolver.h b/src/BulletSoftBody/btDeformableBodySolver.h
index 68354f199..ae674d6e8 100644
--- a/src/BulletSoftBody/btDeformableBodySolver.h
+++ b/src/BulletSoftBody/btDeformableBodySolver.h
@@ -24,8 +24,8 @@
#include "btConjugateResidual.h"
#include "btConjugateGradient.h"
struct btCollisionObjectWrapper;
-// class btDeformableBackwardEulerObjective;
-// class btDeformableMultiBodyDynamicsWorld;
+class btDeformableBackwardEulerObjective;
+class btDeformableMultiBodyDynamicsWorld;
class btDeformableBodySolver : public btSoftBodySolver
{
@@ -46,7 +46,6 @@ protected:
int m_maxNewtonIterations; // max number of newton iterations
btScalar m_newtonTolerance; // stop newton iterations if f(x) < m_newtonTolerance
bool m_lineSearch; // If true, use newton's method with line search under implicit scheme
- bool m_reducedSolver; // flag for reduced soft body solver
public:
// handles data related to objective function
btDeformableBackwardEulerObjective* m_objective;
@@ -69,18 +68,11 @@ public:
// solve the momentum equation
virtual void solveDeformableConstraints(btScalar solverdt);
- // set gravity (get from deformable world)
- virtual void setGravity(const btVector3& gravity)
- {
- // for full deformable object, we don't store gravity in the solver
- // this function is overriden in the reduced deformable object
- }
-
// resize/clear data structures
- virtual void reinitialize(const btAlignedObjectArray<btSoftBody*>& softBodies, btScalar dt);
+ void reinitialize(const btAlignedObjectArray<btSoftBody*>& softBodies, btScalar dt);
// set up contact constraints
- virtual void setConstraints(const btContactSolverInfo& infoGlobal);
+ void setConstraints(const btContactSolverInfo& infoGlobal);
// add in elastic forces and gravity to obtain v_{n+1}^* and calls predictDeformableMotion
virtual void predictMotion(btScalar solverdt);
@@ -93,7 +85,7 @@ public:
void backupVelocity();
// set m_dv and m_backupVelocity to desired value to prepare for momentum solve
- virtual void setupDeformableSolve(bool implicit);
+ void setupDeformableSolve(bool implicit);
// set the current velocity to that backed up in m_backupVelocity
void revertVelocity();
@@ -158,62 +150,6 @@ public:
// used in line search
btScalar kineticEnergy();
- // add explicit force to the velocity in the objective class
- virtual void applyExplicitForce();
-
- // execute position/velocity update and apply anchor constraints in the integrateTransforms from the Dynamics world
- virtual void applyTransforms(btScalar timeStep);
-
- virtual void setStrainLimiting(bool opt)
- {
- m_objective->m_projection.m_useStrainLimiting = opt;
- }
-
- virtual void setPreconditioner(int opt)
- {
- switch (opt)
- {
- case btDeformableBackwardEulerObjective::Mass_preconditioner:
- m_objective->m_preconditioner = m_objective->m_massPreconditioner;
- break;
-
- case btDeformableBackwardEulerObjective::KKT_preconditioner:
- m_objective->m_preconditioner = m_objective->m_KKTPreconditioner;
- break;
-
- default:
- btAssert(false);
- break;
- }
- }
-
- virtual btAlignedObjectArray<btDeformableLagrangianForce*>* getLagrangianForceArray()
- {
- return &(m_objective->m_lf);
- }
-
- virtual const btAlignedObjectArray<btSoftBody::Node*>* getIndices()
- {
- return m_objective->getIndices();
- }
-
- virtual void setProjection()
- {
- m_objective->m_projection.setProjection();
- }
-
- virtual void setLagrangeMultiplier()
- {
- m_objective->m_projection.setLagrangeMultiplier();
- }
-
- virtual bool isReducedSolver()
- {
- return m_reducedSolver;
- }
-
- virtual void deformableBodyInternalWriteBack() {}
-
// unused functions
virtual void optimize(btAlignedObjectArray<btSoftBody*>& softBodies, bool forceUpdate = false) {}
virtual void solveConstraints(btScalar dt) {}