iMSTK
Interactive Medical Simulation Toolkit
|
Position Based Dynamics solver This solver can solve both partitioned constraints (unordered_set of vector'd constraints) in parallel and sequentially on vector'd constraints. It requires a set of constraints, positions, and invMasses. More...
#include <imstkPbdSolver.h>
Public Member Functions | |
void | setIterations (const size_t iterations) |
Set Iterations. The number of nonlinear iterations. | |
void | setConstraints (std::shared_ptr< PbdConstraintContainer > constraints) |
Sets the constraints the solver should solve for These wil be solved sequentially. | |
void | addConstraints (std::vector< PbdConstraint *> *constraints) |
Add a constraint list to this solver to be solved, for quick addition/removal particularly collision. | |
void | setPbdBodies (PbdState *state) |
Sets the bodies to solve with. | |
void | setTimeStep (const double dt) |
Set time step. | |
size_t | getIterations () const |
Get Iterations. Returns current nonlinear iterations. | |
void | setSolverType (const PbdConstraint::SolverType &type) |
Set the PBD solver type. | |
void | solve () override |
Solve the non linear system of equations G(x)=0 using Newton's method. | |
const std::list< std::vector< PbdConstraint * > * > & | getConstraintLists () const |
Get all the collision constraints, read only. | |
void | clearConstraintLists () |
Clear all collision constraints. | |
Additional Inherited Members | |
![]() | |
std::shared_ptr< DataTracker > | m_dataTracker |
Position Based Dynamics solver This solver can solve both partitioned constraints (unordered_set of vector'd constraints) in parallel and sequentially on vector'd constraints. It requires a set of constraints, positions, and invMasses.
Definition at line 23 of file imstkPbdSolver.h.