Bullet Collision Detection & Physics Library: btDeformableBodySolver Class Reference

Bullet Collision Detection & Physics Library

Public Member Functions | Public Attributes | Protected Attributes | Private Types | List of all members
btDeformableBodySolver Class Reference

`#include <btDeformableBodySolver.h>`

Inheritance diagram for btDeformableBodySolver:
[legend]
Collaboration diagram for btDeformableBodySolver:
[legend]

## Public Member Functions
| 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)
void | reinitialize (const btAlignedObjectArray< btSoftBody * > &softBodies, btScalar dt)
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 ()
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 | 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 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 | 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
btDeformableBackwardEulerObjective * | m_objective
bool | m_useProjection

## Protected Attributes
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< btDeformableBackwardEulerObjective > | m_cg
btConjugateResidual< btDeformableBackwardEulerObjective > | m_cr
bool | m_implicit
int | m_maxNewtonIterations
btScalar | m_newtonTolerance
bool | m_lineSearch
Protected Attributes inherited from btSoftBodySolver
int | m_numberOfPositionIterations
int | m_numberOfVelocityIterations
float | m_timeScale

## Private Types
typedef btAlignedObjectArray< btVector3 > | TVStack

## 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 }

## Detailed Description

Definition at line 30 of file btDeformableBodySolver.h.

## Member Typedef Documentation

## ◆ TVStack

typedef btAlignedObjectArray<btVector3> btDeformableBodySolver::TVStack
| private

Definition at line 32 of file btDeformableBodySolver.h.

## Constructor & Destructor Documentation

## ◆ btDeformableBodySolver()

btDeformableBodySolver::btDeformableBodySolver | ( |  | ) |

Definition at line 22 of file btDeformableBodySolver.cpp.

## ◆ ~btDeformableBodySolver()

btDeformableBodySolver::~btDeformableBodySolver | ( |  | ) |
| virtual

Definition at line 28 of file btDeformableBodySolver.cpp.

## Member Function Documentation

## ◆ backupDv()

void btDeformableBodySolver::backupDv | ( |  | ) |

Definition at line 139 of file btDeformableBodySolver.cpp.

## ◆ backupVelocity()

void btDeformableBodySolver::backupVelocity | ( |  | ) |

Definition at line 316 of file btDeformableBodySolver.cpp.

## ◆ checkInitialized()

virtual bool btDeformableBodySolver::checkInitialized | ( |  | ) |
| inlinevirtual

Ensure that this solver is initialized.

Implements btSoftBodySolver.

Definition at line 156 of file btDeformableBodySolver.h.

## ◆ computeDescentStep()

btScalar btDeformableBodySolver::computeDescentStep | ( | TVStack & | ddv,
|  | const TVStack & | residual,
|  | bool | verbose = `false`
| ) |  |

Definition at line 165 of file btDeformableBodySolver.cpp.

## ◆ computeStep()

void btDeformableBodySolver::computeStep | ( | TVStack & | ddv,
|  | const TVStack & | residual
| ) |  |

Definition at line 213 of file btDeformableBodySolver.cpp.

## ◆ copyBackToSoftBodies()

virtual void btDeformableBodySolver::copyBackToSoftBodies | ( | bool | bMove = `true` | ) |
| inlinevirtual

Copy necessary data back to the original soft body source objects.

Implements btSoftBodySolver.

Definition at line 157 of file btDeformableBodySolver.h.

## ◆ copySoftBodyToVertexBuffer()

virtual void btDeformableBodySolver::copySoftBodyToVertexBuffer | ( | const btSoftBody *const | softBody,
|  | btVertexBufferDescriptor * | vertexBuffer
| ) |  |
| inlinevirtual

Definition at line 105 of file btDeformableBodySolver.h.

## ◆ getSolverType()

virtual SolverTypes btDeformableBodySolver::getSolverType | ( |  | ) | const
| inlinevirtual

Return the type of the solver.

Implements btSoftBodySolver.

Definition at line 58 of file btDeformableBodySolver.h.

## ◆ kineticEnergy()

btScalar btDeformableBodySolver::kineticEnergy | ( |  | ) |

Definition at line 121 of file btDeformableBodySolver.cpp.

## ◆ optimize()

virtual void btDeformableBodySolver::optimize | ( | btAlignedObjectArray< btSoftBody * > & | softBodies,
|  | bool | forceUpdate = `false`
| ) |  |
| inlinevirtual

Optimize soft bodies in this solver.

Implements btSoftBodySolver.

Definition at line 154 of file btDeformableBodySolver.h.

## ◆ predictDeformableMotion()

void btDeformableBodySolver::predictDeformableMotion | ( | btSoftBody * | psb,
|  | btScalar | dt
| ) |  |

Definition at line 421 of file btDeformableBodySolver.cpp.

## ◆ predictMotion()

void btDeformableBodySolver::predictMotion | ( | btScalar | solverdt | ) |
| virtual

Predict motion of soft bodies into next timestep.

Implements btSoftBodySolver.

Definition at line 387 of file btDeformableBodySolver.cpp.

## ◆ processCollision() [1/2]

virtual void btDeformableBodySolver::processCollision | ( | btSoftBody * | ,
|  | btSoftBody * |
| ) |  |
| inlinevirtual

Process a collision between two soft bodies.

Implements btSoftBodySolver.

Definition at line 114 of file btDeformableBodySolver.h.

## ◆ processCollision() [2/2]

virtual void btDeformableBodySolver::processCollision | ( | btSoftBody * | softBody,
|  | const btCollisionObjectWrapper * | collisionObjectWrap
| ) |  |
| inlinevirtual

Definition at line 108 of file btDeformableBodySolver.h.

## ◆ reinitialize()

void btDeformableBodySolver::reinitialize | ( | const btAlignedObjectArray< btSoftBody * > & | softBodies,
|  | btScalar | dt
| ) |  |

Definition at line 221 of file btDeformableBodySolver.cpp.

## ◆ revertDv()

void btDeformableBodySolver::revertDv | ( |  | ) |

Definition at line 148 of file btDeformableBodySolver.cpp.

## ◆ revertVelocity()

void btDeformableBodySolver::revertVelocity | ( |  | ) |

Definition at line 361 of file btDeformableBodySolver.cpp.

## ◆ setConstraints()

void btDeformableBodySolver::setConstraints | ( | const btContactSolverInfo & | infoGlobal | ) |

Definition at line 250 of file btDeformableBodySolver.cpp.

## ◆ setImplicit()

void btDeformableBodySolver::setImplicit | ( | bool | implicit | ) |

Definition at line 497 of file btDeformableBodySolver.cpp.

## ◆ setLineSearch()

void btDeformableBodySolver::setLineSearch | ( | bool | lineSearch | ) |

Definition at line 503 of file btDeformableBodySolver.cpp.

## ◆ setupDeformableSolve()

void btDeformableBodySolver::setupDeformableSolve | ( | bool | implicit | ) |

Definition at line 329 of file btDeformableBodySolver.cpp.

## ◆ solveConstraints()

virtual void btDeformableBodySolver::solveConstraints | ( | btScalar | solverdt | ) |
| inlinevirtual

Solve constraints for a set of soft bodies.

Implements btSoftBodySolver.

Definition at line 155 of file btDeformableBodySolver.h.

## ◆ solveContactConstraints()

btScalar btDeformableBodySolver::solveContactConstraints | ( | btCollisionObject ** | deformableBodies,
|  | int | numDeformableBodies,
|  | const btContactSolverInfo & | infoGlobal
| ) |  |
| virtual

Definition at line 256 of file btDeformableBodySolver.cpp.

## ◆ solveDeformableConstraints()

void btDeformableBodySolver::solveDeformableConstraints | ( | btScalar | solverdt | ) |
| virtual

Definition at line 33 of file btDeformableBodySolver.cpp.

## ◆ updateDv()

void btDeformableBodySolver::updateDv | ( | btScalar | scale = `1` | ) |

Definition at line 205 of file btDeformableBodySolver.cpp.

## ◆ updateEnergy()

void btDeformableBodySolver::updateEnergy | ( | btScalar | scale | ) |

Definition at line 156 of file btDeformableBodySolver.cpp.

## ◆ updateNodes()

bool btDeformableBodySolver::updateNodes | ( |  | ) |

Definition at line 374 of file btDeformableBodySolver.cpp.

## ◆ updateSoftBodies()

void btDeformableBodySolver::updateSoftBodies | ( |  | ) |
| virtual

Perform necessary per-step updates of soft bodies such as recomputing normals and bounding boxes.

Implements btSoftBodySolver.

Definition at line 484 of file btDeformableBodySolver.cpp.

## ◆ updateState()

void btDeformableBodySolver::updateState | ( |  | ) |

Definition at line 199 of file btDeformableBodySolver.cpp.

## ◆ updateTempPosition()

void btDeformableBodySolver::updateTempPosition | ( |  | ) |

Definition at line 296 of file btDeformableBodySolver.cpp.

## ◆ updateVelocity()

void btDeformableBodySolver::updateVelocity | ( |  | ) |

Definition at line 263 of file btDeformableBodySolver.cpp.

## Member Data Documentation

## ◆ m_backup_dv

TVStack btDeformableBodySolver::m_backup_dv
| protected

Definition at line 37 of file btDeformableBodySolver.h.

## ◆ m_backupVelocity

TVStack btDeformableBodySolver::m_backupVelocity
| protected

Definition at line 41 of file btDeformableBodySolver.h.

## ◆ m_cg

btConjugateGradient<btDeformableBackwardEulerObjective> btDeformableBodySolver::m_cg
| protected

Definition at line 43 of file btDeformableBodySolver.h.

## ◆ m_cr

btConjugateResidual<btDeformableBackwardEulerObjective> btDeformableBodySolver::m_cr
| protected

Definition at line 44 of file btDeformableBodySolver.h.

## ◆ m_ddv

TVStack btDeformableBodySolver::m_ddv
| protected

Definition at line 38 of file btDeformableBodySolver.h.

## ◆ m_dt

btScalar btDeformableBodySolver::m_dt
| protected

Definition at line 42 of file btDeformableBodySolver.h.

## ◆ m_dv

TVStack btDeformableBodySolver::m_dv
| protected

Definition at line 36 of file btDeformableBodySolver.h.

## ◆ m_implicit

bool btDeformableBodySolver::m_implicit
| protected

Definition at line 45 of file btDeformableBodySolver.h.

## ◆ m_lineSearch

bool btDeformableBodySolver::m_lineSearch
| protected

Definition at line 48 of file btDeformableBodySolver.h.

## ◆ m_maxNewtonIterations

int btDeformableBodySolver::m_maxNewtonIterations
| protected

Definition at line 46 of file btDeformableBodySolver.h.

## ◆ m_newtonTolerance

btScalar btDeformableBodySolver::m_newtonTolerance
| protected

Definition at line 47 of file btDeformableBodySolver.h.

## ◆ m_numNodes

int btDeformableBodySolver::m_numNodes
| protected

Definition at line 35 of file btDeformableBodySolver.h.

## ◆ m_objective

btDeformableBackwardEulerObjective* btDeformableBodySolver::m_objective

Definition at line 51 of file btDeformableBodySolver.h.

## ◆ m_residual

TVStack btDeformableBodySolver::m_residual
| protected

Definition at line 39 of file btDeformableBodySolver.h.

## ◆ m_softBodies

btAlignedObjectArray<btSoftBody*> btDeformableBodySolver::m_softBodies
| protected

Definition at line 40 of file btDeformableBodySolver.h.

## ◆ m_useProjection

bool btDeformableBodySolver::m_useProjection

Definition at line 52 of file btDeformableBodySolver.h.

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

- btDeformableBodySolver.h
- btDeformableBodySolver.cpp