16 #ifndef BT_DEFORMABLE_BODY_SOLVERS_H
17 #define BT_DEFORMABLE_BODY_SOLVERS_H
100 void computeStep(TVStack& ddv,
const TVStack& residual);
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
btSequentialImpulseConstraintSolverMt int btPersistentManifold int btTypedConstraint int const btContactSolverInfo & infoGlobal
virtual void processCollision(btSoftBody *softBody, btSoftBody *otherSoftBody)
virtual void updateSoftBodies()
virtual void solveDeformableConstraints(btScalar solverdt)
void updateEnergy(btScalar scale)
virtual SolverTypes getSolverType() const
virtual bool checkInitialized()
void setConstraints(const btContactSolverInfo &infoGlobal)
virtual void processCollision(btSoftBody *softBody, const btCollisionObjectWrapper *collisionObjectWrap)
virtual ~btDeformableBodySolver()
btDeformableBackwardEulerObjective * m_objective
int m_maxNewtonIterations
btScalar computeDescentStep(TVStack &ddv, const TVStack &residual, bool verbose=false)
virtual void copyBackToSoftBodies(bool bMove=true)
virtual void copySoftBodyToVertexBuffer(const btSoftBody *const softBody, btVertexBufferDescriptor *vertexBuffer)
void predictDeformableMotion(btSoftBody *psb, btScalar dt)
virtual void optimize(btAlignedObjectArray< btSoftBody * > &softBodies, bool forceUpdate=false)
btConjugateResidual< btDeformableBackwardEulerObjective > m_cr
btConjugateGradient< btDeformableBackwardEulerObjective > m_cg
void reinitialize(const btAlignedObjectArray< btSoftBody * > &softBodies, btScalar dt)
void setupDeformableSolve(bool implicit)
void setLineSearch(bool lineSearch)
btAlignedObjectArray< btSoftBody * > m_softBodies
virtual btScalar solveContactConstraints(btCollisionObject **deformableBodies, int numDeformableBodies, const btContactSolverInfo &infoGlobal)
virtual void solveConstraints(btScalar dt)
btScalar m_newtonTolerance
virtual void predictMotion(btScalar solverdt)
void setImplicit(bool implicit)
void computeStep(TVStack &ddv, const TVStack &residual)
void updateTempPosition()
void updateDv(btScalar scale=1)
void defaultCollisionHandler(const btCollisionObjectWrapper *pcoWrap)