|
Bullet Collision Detection & Physics Library
|
#include <btDeformableBodySolver.h>


Public Member Functions | |
| btDeformableBodySolver () | |
| virtual | ~btDeformableBodySolver () |
| virtual SolverTypes | getSolverType () const |
| Return the type of the solver. | |
| virtual void | updateSoftBodies () |
| Perform necessary per-step updates of soft bodies such as recomputing normals and bounding boxes. | |
| 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. | |
| 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. | |
| 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. | |
| virtual void | solveConstraints (btScalar dt) |
| Solve constraints for a set of soft bodies. | |
| virtual bool | checkInitialized () |
| Ensure that this solver is initialized. | |
| virtual void | copyBackToSoftBodies (bool bMove=true) |
| Copy necessary data back to the original soft body source objects. | |
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. | |
| virtual void | setNumberOfPositionIterations (int iterations) |
| Set the number of velocity constraint solver iterations this solver uses. | |
| virtual int | getNumberOfPositionIterations () |
| Get the number of velocity constraint solver iterations this solver uses. | |
| virtual void | setNumberOfVelocityIterations (int iterations) |
| Set the number of velocity constraint solver iterations this solver uses. | |
| virtual int | getNumberOfVelocityIterations () |
| Get the number of velocity constraint solver iterations this solver uses. | |
| float | getTimeScale () |
| Return the timescale that the simulation is using. | |
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 |
| bool | m_reducedSolver |
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 , REDUCED_DEFORMABLE_SOLVER } |
Definition at line 30 of file btDeformableBodySolver.h.
|
private |
Definition at line 32 of file btDeformableBodySolver.h.
| btDeformableBodySolver::btDeformableBodySolver | ( | ) |
Definition at line 22 of file btDeformableBodySolver.cpp.
|
virtual |
Definition at line 29 of file btDeformableBodySolver.cpp.
|
virtual |
Definition at line 509 of file btDeformableBodySolver.cpp.
|
virtual |
Reimplemented in btReducedDeformableBodySolver.
Definition at line 514 of file btDeformableBodySolver.cpp.
| void btDeformableBodySolver::backupDv | ( | ) |
Definition at line 140 of file btDeformableBodySolver.cpp.
| void btDeformableBodySolver::backupVelocity | ( | ) |
Definition at line 317 of file btDeformableBodySolver.cpp.
|
inlinevirtual |
Ensure that this solver is initialized.
Implements btSoftBodySolver.
Definition at line 220 of file btDeformableBodySolver.h.
| btScalar btDeformableBodySolver::computeDescentStep | ( | TVStack & | ddv, |
| const TVStack & | residual, | ||
| bool | verbose = false ) |
Definition at line 166 of file btDeformableBodySolver.cpp.
Definition at line 214 of file btDeformableBodySolver.cpp.
|
inlinevirtual |
Copy necessary data back to the original soft body source objects.
Implements btSoftBodySolver.
Definition at line 221 of file btDeformableBodySolver.h.
|
inlinevirtual |
Definition at line 113 of file btDeformableBodySolver.h.
|
inlinevirtual |
Reimplemented in btReducedDeformableBodySolver.
Definition at line 215 of file btDeformableBodySolver.h.
|
inlinevirtual |
Definition at line 195 of file btDeformableBodySolver.h.
|
inlinevirtual |
Definition at line 190 of file btDeformableBodySolver.h.
|
inlinevirtual |
Return the type of the solver.
Implements btSoftBodySolver.
Reimplemented in btReducedDeformableBodySolver.
Definition at line 59 of file btDeformableBodySolver.h.
|
inlinevirtual |
Definition at line 210 of file btDeformableBodySolver.h.
| btScalar btDeformableBodySolver::kineticEnergy | ( | ) |
Definition at line 122 of file btDeformableBodySolver.cpp.
|
inlinevirtual |
Optimize soft bodies in this solver.
Implements btSoftBodySolver.
Definition at line 218 of file btDeformableBodySolver.h.
| void btDeformableBodySolver::predictDeformableMotion | ( | btSoftBody * | psb, |
| btScalar | dt ) |
Definition at line 422 of file btDeformableBodySolver.cpp.
|
virtual |
Predict motion of soft bodies into next timestep.
Implements btSoftBodySolver.
Reimplemented in btReducedDeformableBodySolver.
Definition at line 388 of file btDeformableBodySolver.cpp.
|
inlinevirtual |
Process a collision between two soft bodies.
Implements btSoftBodySolver.
Definition at line 122 of file btDeformableBodySolver.h.
|
inlinevirtual |
Definition at line 116 of file btDeformableBodySolver.h.
|
virtual |
Reimplemented in btReducedDeformableBodySolver.
Definition at line 222 of file btDeformableBodySolver.cpp.
| void btDeformableBodySolver::revertDv | ( | ) |
Definition at line 149 of file btDeformableBodySolver.cpp.
| void btDeformableBodySolver::revertVelocity | ( | ) |
Definition at line 362 of file btDeformableBodySolver.cpp.
|
virtual |
Reimplemented in btReducedDeformableBodySolver.
Definition at line 251 of file btDeformableBodySolver.cpp.
|
inlinevirtual |
Reimplemented in btReducedDeformableBodySolver.
Definition at line 73 of file btDeformableBodySolver.h.
| void btDeformableBodySolver::setImplicit | ( | bool | implicit | ) |
Definition at line 498 of file btDeformableBodySolver.cpp.
|
inlinevirtual |
Definition at line 205 of file btDeformableBodySolver.h.
| void btDeformableBodySolver::setLineSearch | ( | bool | lineSearch | ) |
Definition at line 504 of file btDeformableBodySolver.cpp.
|
inlinevirtual |
Definition at line 172 of file btDeformableBodySolver.h.
|
inlinevirtual |
Definition at line 200 of file btDeformableBodySolver.h.
|
inlinevirtual |
Definition at line 167 of file btDeformableBodySolver.h.
|
virtual |
Definition at line 330 of file btDeformableBodySolver.cpp.
|
inlinevirtual |
Solve constraints for a set of soft bodies.
Implements btSoftBodySolver.
Definition at line 219 of file btDeformableBodySolver.h.
|
virtual |
Reimplemented in btReducedDeformableBodySolver.
Definition at line 257 of file btDeformableBodySolver.cpp.
|
virtual |
Definition at line 34 of file btDeformableBodySolver.cpp.
| void btDeformableBodySolver::updateDv | ( | btScalar | scale = 1 | ) |
Definition at line 206 of file btDeformableBodySolver.cpp.
| void btDeformableBodySolver::updateEnergy | ( | btScalar | scale | ) |
Definition at line 157 of file btDeformableBodySolver.cpp.
| bool btDeformableBodySolver::updateNodes | ( | ) |
Definition at line 375 of file btDeformableBodySolver.cpp.
|
virtual |
Perform necessary per-step updates of soft bodies such as recomputing normals and bounding boxes.
Implements btSoftBodySolver.
Definition at line 485 of file btDeformableBodySolver.cpp.
| void btDeformableBodySolver::updateState | ( | ) |
Definition at line 200 of file btDeformableBodySolver.cpp.
| void btDeformableBodySolver::updateTempPosition | ( | ) |
Definition at line 297 of file btDeformableBodySolver.cpp.
| void btDeformableBodySolver::updateVelocity | ( | ) |
Definition at line 264 of file btDeformableBodySolver.cpp.
|
protected |
Definition at line 37 of file btDeformableBodySolver.h.
|
protected |
Definition at line 41 of file btDeformableBodySolver.h.
|
protected |
Definition at line 43 of file btDeformableBodySolver.h.
|
protected |
Definition at line 44 of file btDeformableBodySolver.h.
|
protected |
Definition at line 38 of file btDeformableBodySolver.h.
|
protected |
Definition at line 42 of file btDeformableBodySolver.h.
|
protected |
Definition at line 36 of file btDeformableBodySolver.h.
|
protected |
Definition at line 45 of file btDeformableBodySolver.h.
|
protected |
Definition at line 48 of file btDeformableBodySolver.h.
|
protected |
Definition at line 46 of file btDeformableBodySolver.h.
|
protected |
Definition at line 47 of file btDeformableBodySolver.h.
|
protected |
Definition at line 35 of file btDeformableBodySolver.h.
| btDeformableBackwardEulerObjective* btDeformableBodySolver::m_objective |
Definition at line 52 of file btDeformableBodySolver.h.
|
protected |
Definition at line 49 of file btDeformableBodySolver.h.
|
protected |
Definition at line 39 of file btDeformableBodySolver.h.
|
protected |
Definition at line 40 of file btDeformableBodySolver.h.
| bool btDeformableBodySolver::m_useProjection |
Definition at line 53 of file btDeformableBodySolver.h.