Bullet Collision Detection & Physics Library
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
btReducedDeformableBodySolver Class Reference

#include <btReducedDeformableBodySolver.h>

Inheritance diagram for btReducedDeformableBodySolver:
Inheritance graph
[legend]
Collaboration diagram for btReducedDeformableBodySolver:
Collaboration graph
[legend]

Public Member Functions

 btReducedDeformableBodySolver ()
 
 ~btReducedDeformableBodySolver ()
 
virtual void setGravity (const btVector3 &gravity)
 
virtual SolverTypes getSolverType () const
 Return the type of the solver. More...
 
virtual void reinitialize (const btAlignedObjectArray< btSoftBody * > &bodies, btScalar dt)
 
virtual void predictMotion (btScalar solverdt)
 Predict motion of soft bodies into next timestep. More...
 
virtual void applyTransforms (btScalar timeStep)
 
virtual void setConstraints (const btContactSolverInfo &infoGlobal)
 
virtual btScalar solveContactConstraints (btCollisionObject **deformableBodies, int numDeformableBodies, const btContactSolverInfo &infoGlobal)
 
virtual void deformableBodyInternalWriteBack ()
 
- Public Member Functions inherited from btDeformableBodySolver
 btDeformableBodySolver ()
 
virtual ~btDeformableBodySolver ()
 
virtual SolverTypes getSolverType () const
 Return the type of the solver. More...
 
virtual void updateSoftBodies ()
 Perform necessary per-step updates of soft bodies such as recomputing normals and bounding boxes. More...
 
virtual btScalar solveContactConstraints (btCollisionObject **deformableBodies, int numDeformableBodies, const btContactSolverInfo &infoGlobal)
 
virtual void solveDeformableConstraints (btScalar solverdt)
 
virtual void setGravity (const btVector3 &gravity)
 
virtual void reinitialize (const btAlignedObjectArray< btSoftBody * > &softBodies, btScalar dt)
 
virtual void setConstraints (const btContactSolverInfo &infoGlobal)
 
virtual void predictMotion (btScalar solverdt)
 Predict motion of soft bodies into next timestep. More...
 
void predictDeformableMotion (btSoftBody *psb, btScalar dt)
 
void backupVelocity ()
 
virtual void setupDeformableSolve (bool implicit)
 
void revertVelocity ()
 
void updateVelocity ()
 
bool updateNodes ()
 
void computeStep (TVStack &ddv, const TVStack &residual)
 
btScalar computeDescentStep (TVStack &ddv, const TVStack &residual, bool verbose=false)
 
virtual void copySoftBodyToVertexBuffer (const btSoftBody *const softBody, btVertexBufferDescriptor *vertexBuffer)
 
virtual void processCollision (btSoftBody *softBody, const btCollisionObjectWrapper *collisionObjectWrap)
 
virtual void processCollision (btSoftBody *softBody, btSoftBody *otherSoftBody)
 Process a collision between two soft bodies. More...
 
void setImplicit (bool implicit)
 
void setLineSearch (bool lineSearch)
 
void updateState ()
 
void updateDv (btScalar scale=1)
 
void updateTempPosition ()
 
void backupDv ()
 
void revertDv ()
 
void updateEnergy (btScalar scale)
 
btScalar kineticEnergy ()
 
virtual void applyExplicitForce ()
 
virtual void applyTransforms (btScalar timeStep)
 
virtual void setStrainLimiting (bool opt)
 
virtual void setPreconditioner (int opt)
 
virtual btAlignedObjectArray< btDeformableLagrangianForce * > * getLagrangianForceArray ()
 
virtual const btAlignedObjectArray< btSoftBody::Node * > * getIndices ()
 
virtual void setProjection ()
 
virtual void setLagrangeMultiplier ()
 
virtual bool isReducedSolver ()
 
virtual void deformableBodyInternalWriteBack ()
 
virtual void optimize (btAlignedObjectArray< btSoftBody * > &softBodies, bool forceUpdate=false)
 Optimize soft bodies in this solver. More...
 
virtual void solveConstraints (btScalar dt)
 Solve constraints for a set of soft bodies. More...
 
virtual bool checkInitialized ()
 Ensure that this solver is initialized. More...
 
virtual void copyBackToSoftBodies (bool bMove=true)
 Copy necessary data back to the original soft body source objects. More...
 
- Public Member Functions inherited from btSoftBodySolver
 btSoftBodySolver ()
 
virtual ~btSoftBodySolver ()
 
virtual SolverTypes getSolverType () const =0
 Return the type of the solver. More...
 
virtual bool checkInitialized ()=0
 Ensure that this solver is initialized. More...
 
virtual void optimize (btAlignedObjectArray< btSoftBody * > &softBodies, bool forceUpdate=false)=0
 Optimize soft bodies in this solver. More...
 
virtual void copyBackToSoftBodies (bool bMove=true)=0
 Copy necessary data back to the original soft body source objects. More...
 
virtual void predictMotion (btScalar solverdt)=0
 Predict motion of soft bodies into next timestep. More...
 
virtual void solveConstraints (btScalar solverdt)=0
 Solve constraints for a set of soft bodies. More...
 
virtual void updateSoftBodies ()=0
 Perform necessary per-step updates of soft bodies such as recomputing normals and bounding boxes. More...
 
virtual void processCollision (btSoftBody *, const struct btCollisionObjectWrapper *)=0
 Process a collision between one of the world's soft bodies and another collision object. More...
 
virtual void processCollision (btSoftBody *, btSoftBody *)=0
 Process a collision between two soft bodies. More...
 
virtual void setNumberOfPositionIterations (int iterations)
 Set the number of velocity constraint solver iterations this solver uses. More...
 
virtual int getNumberOfPositionIterations ()
 Get the number of velocity constraint solver iterations this solver uses. More...
 
virtual void setNumberOfVelocityIterations (int iterations)
 Set the number of velocity constraint solver iterations this solver uses. More...
 
virtual int getNumberOfVelocityIterations ()
 Get the number of velocity constraint solver iterations this solver uses. More...
 
float getTimeScale ()
 Return the timescale that the simulation is using. More...
 

Public Attributes

btAlignedObjectArray< btAlignedObjectArray< btReducedDeformableStaticConstraint > > m_staticConstraints
 
btAlignedObjectArray< btAlignedObjectArray< btReducedDeformableNodeRigidContactConstraint > > m_nodeRigidConstraints
 
btAlignedObjectArray< btAlignedObjectArray< btReducedDeformableFaceRigidContactConstraint > > m_faceRigidConstraints
 
- Public Attributes inherited from btDeformableBodySolver
btDeformableBackwardEulerObjectivem_objective
 
bool m_useProjection
 

Protected Member Functions

void predictReduceDeformableMotion (btScalar solverdt)
 
void applyExplicitForce (btScalar solverdt)
 

Protected Attributes

bool m_ascendOrder
 
btScalar m_dampingAlpha
 
btScalar m_dampingBeta
 
btVector3 m_gravity
 
- Protected Attributes inherited from btDeformableBodySolver
int m_numNodes
 
TVStack m_dv
 
TVStack m_backup_dv
 
TVStack m_ddv
 
TVStack m_residual
 
btAlignedObjectArray< btSoftBody * > m_softBodies
 
TVStack m_backupVelocity
 
btScalar m_dt
 
btConjugateGradient< btDeformableBackwardEulerObjectivem_cg
 
btConjugateResidual< btDeformableBackwardEulerObjectivem_cr
 
bool m_implicit
 
int m_maxNewtonIterations
 
btScalar m_newtonTolerance
 
bool m_lineSearch
 
bool m_reducedSolver
 
- Protected Attributes inherited from btSoftBodySolver
int m_numberOfPositionIterations
 
int m_numberOfVelocityIterations
 
float m_timeScale
 

Additional Inherited Members

- Public Types inherited from btSoftBodySolver
enum  SolverTypes {
  DEFAULT_SOLVER ,
  CPU_SOLVER ,
  CL_SOLVER ,
  CL_SIMD_SOLVER ,
  DX_SOLVER ,
  DX_SIMD_SOLVER ,
  DEFORMABLE_SOLVER ,
  REDUCED_DEFORMABLE_SOLVER
}
 

Detailed Description

Definition at line 9 of file btReducedDeformableBodySolver.h.

Constructor & Destructor Documentation

◆ btReducedDeformableBodySolver()

btReducedDeformableBodySolver::btReducedDeformableBodySolver ( )

Definition at line 4 of file btReducedDeformableBodySolver.cpp.

◆ ~btReducedDeformableBodySolver()

btReducedDeformableBodySolver::~btReducedDeformableBodySolver ( )
inline

Definition at line 28 of file btReducedDeformableBodySolver.h.

Member Function Documentation

◆ applyExplicitForce()

void btReducedDeformableBodySolver::applyExplicitForce ( btScalar  solverdt)
protected

Definition at line 139 of file btReducedDeformableBodySolver.cpp.

◆ applyTransforms()

void btReducedDeformableBodySolver::applyTransforms ( btScalar  timeStep)
virtual

Reimplemented from btDeformableBodySolver.

Definition at line 163 of file btReducedDeformableBodySolver.cpp.

◆ deformableBodyInternalWriteBack()

void btReducedDeformableBodySolver::deformableBodyInternalWriteBack ( )
virtual

Reimplemented from btDeformableBodySolver.

Definition at line 316 of file btReducedDeformableBodySolver.cpp.

◆ getSolverType()

virtual SolverTypes btReducedDeformableBodySolver::getSolverType ( ) const
inlinevirtual

Return the type of the solver.

Reimplemented from btDeformableBodySolver.

Definition at line 32 of file btReducedDeformableBodySolver.h.

◆ predictMotion()

void btReducedDeformableBodySolver::predictMotion ( btScalar  solverdt)
virtual

Predict motion of soft bodies into next timestep.

Reimplemented from btDeformableBodySolver.

Definition at line 77 of file btReducedDeformableBodySolver.cpp.

◆ predictReduceDeformableMotion()

void btReducedDeformableBodySolver::predictReduceDeformableMotion ( btScalar  solverdt)
protected

Definition at line 87 of file btReducedDeformableBodySolver.cpp.

◆ reinitialize()

void btReducedDeformableBodySolver::reinitialize ( const btAlignedObjectArray< btSoftBody * > &  bodies,
btScalar  dt 
)
virtual

Reimplemented from btDeformableBodySolver.

Definition at line 18 of file btReducedDeformableBodySolver.cpp.

◆ setConstraints()

void btReducedDeformableBodySolver::setConstraints ( const btContactSolverInfo infoGlobal)
virtual

Reimplemented from btDeformableBodySolver.

Definition at line 196 of file btReducedDeformableBodySolver.cpp.

◆ setGravity()

void btReducedDeformableBodySolver::setGravity ( const btVector3 gravity)
virtual

Reimplemented from btDeformableBodySolver.

Definition at line 13 of file btReducedDeformableBodySolver.cpp.

◆ solveContactConstraints()

btScalar btReducedDeformableBodySolver::solveContactConstraints ( btCollisionObject **  deformableBodies,
int  numDeformableBodies,
const btContactSolverInfo infoGlobal 
)
virtual

Reimplemented from btDeformableBodySolver.

Definition at line 242 of file btReducedDeformableBodySolver.cpp.

Member Data Documentation

◆ m_ascendOrder

bool btReducedDeformableBodySolver::m_ascendOrder
protected

Definition at line 12 of file btReducedDeformableBodySolver.h.

◆ m_dampingAlpha

btScalar btReducedDeformableBodySolver::m_dampingAlpha
protected

Definition at line 13 of file btReducedDeformableBodySolver.h.

◆ m_dampingBeta

btScalar btReducedDeformableBodySolver::m_dampingBeta
protected

Definition at line 14 of file btReducedDeformableBodySolver.h.

◆ m_faceRigidConstraints

btAlignedObjectArray<btAlignedObjectArray<btReducedDeformableFaceRigidContactConstraint> > btReducedDeformableBodySolver::m_faceRigidConstraints

Definition at line 25 of file btReducedDeformableBodySolver.h.

◆ m_gravity

btVector3 btReducedDeformableBodySolver::m_gravity
protected

Definition at line 16 of file btReducedDeformableBodySolver.h.

◆ m_nodeRigidConstraints

btAlignedObjectArray<btAlignedObjectArray<btReducedDeformableNodeRigidContactConstraint> > btReducedDeformableBodySolver::m_nodeRigidConstraints

Definition at line 24 of file btReducedDeformableBodySolver.h.

◆ m_staticConstraints

btAlignedObjectArray<btAlignedObjectArray<btReducedDeformableStaticConstraint> > btReducedDeformableBodySolver::m_staticConstraints

Definition at line 23 of file btReducedDeformableBodySolver.h.


The documentation for this class was generated from the following files: