#include <GAS_Integrator.h>

Classes | |
| struct | ObjectInfo |
| struct | RungeKuttaDataTable |
Public Types | |
| enum | IntegrateMethod { EULER, MIDPOINT, RUNGE_KUTTA, RUNGE_KUTTA_FEHLBERG, RUNGE_KUTTA_21, RUNGE_KUTTA_32 } |
| enum | ScaleMethod { MASS, DENSITY } |
| enum | AdvectionMethod { STANDARD = 0, XSPH } |
Public Member Functions | |
| GETSET_DATA_FUNCS_I (SIM_NAME_PRIMARYSOLVER, PrimarySolver) | |
| GET_DATA_FUNC_S (GAS_NAME_GEOMETRY, GeometryName) | |
| GET_DATA_FUNC_I ("integratetype", IntegrateType) | |
| GET_DATA_FUNC_I ("advecttype", AdvectType) | |
| GET_DATA_FUNC_F ("xsphconstant", XsphConstant) | |
| GET_DATA_FUNC_B ("docollision", DoCollision) | |
| GET_DATA_FUNC_B ("collisionuv", CollisionUV) | |
| GET_DATA_FUNC_I ("scaletype", ScaleType) | |
| GET_DATA_FUNC_B ("doincremental", IncrementalForce) | |
| GET_DATA_FUNC_B ("integrateorientation", IntegrateOrientation) | |
| GET_DATA_FUNC_F ("errortolerance", ErrorTolerance) | |
| GET_DATA_FUNC_F ("repetitiontolerance", RepTolerance) | |
| GET_DATA_FUNC_F ("minsubstep", MinSubstep) | |
| GET_DATA_FUNC_F ("maxsubstep", MaxSubstep) | |
| virtual SIM_Result | solveObjectsSubclass (SIM_Engine &engine, SIM_ObjectArray &objects, SIM_ObjectArray &newobjects, SIM_ObjectArray &feedbacktoobjects, const SIM_Time ×tep) |
| bool | shouldMultiThread () |
Protected Member Functions | |
| GAS_Integrator (const SIM_DataFactory *factory) | |
| virtual | ~GAS_Integrator () |
| virtual bool | solveGasSubclass (SIM_Engine &engine, SIM_Object *obj, SIM_Time time, SIM_Time timestep) |
| virtual void | getImpulseMassMatrixSubclass (const SIM_Object &object, const UT_Vector3 &impulseworldpos, UT_DMatrix3 &immatrix) const |
| virtual void | getPointImpulseMassMatrixSubclass (const SIM_Object &object, int ptnum, UT_DMatrix3 &immatrix) const |
Definition at line 48 of file GAS_Integrator.h.
Definition at line 67 of file GAS_Integrator.h.
| GAS_Integrator::GAS_Integrator | ( | const SIM_DataFactory * | factory | ) | [explicit, protected] |
| virtual GAS_Integrator::~GAS_Integrator | ( | ) | [protected, virtual] |
| GAS_Integrator::GET_DATA_FUNC_B | ( | "integrateorientation" | , | |
| IntegrateOrientation | ||||
| ) |
| GAS_Integrator::GET_DATA_FUNC_B | ( | "doincremental" | , | |
| IncrementalForce | ||||
| ) |
| GAS_Integrator::GET_DATA_FUNC_B | ( | "collisionuv" | , | |
| CollisionUV | ||||
| ) |
| GAS_Integrator::GET_DATA_FUNC_B | ( | "docollision" | , | |
| DoCollision | ||||
| ) |
| GAS_Integrator::GET_DATA_FUNC_F | ( | "maxsubstep" | , | |
| MaxSubstep | ||||
| ) |
| GAS_Integrator::GET_DATA_FUNC_F | ( | "minsubstep" | , | |
| MinSubstep | ||||
| ) |
| GAS_Integrator::GET_DATA_FUNC_F | ( | "repetitiontolerance" | , | |
| RepTolerance | ||||
| ) |
| GAS_Integrator::GET_DATA_FUNC_F | ( | "errortolerance" | , | |
| ErrorTolerance | ||||
| ) |
| GAS_Integrator::GET_DATA_FUNC_F | ( | "xsphconstant" | , | |
| XsphConstant | ||||
| ) |
| GAS_Integrator::GET_DATA_FUNC_I | ( | "scaletype" | , | |
| ScaleType | ||||
| ) |
| GAS_Integrator::GET_DATA_FUNC_I | ( | "advecttype" | , | |
| AdvectType | ||||
| ) |
| GAS_Integrator::GET_DATA_FUNC_I | ( | "integratetype" | , | |
| IntegrateType | ||||
| ) |
| GAS_Integrator::GET_DATA_FUNC_S | ( | GAS_NAME_GEOMETRY | , | |
| GeometryName | ||||
| ) |
| virtual void GAS_Integrator::getImpulseMassMatrixSubclass | ( | const SIM_Object & | object, | |
| const UT_Vector3 & | impulseworldpos, | |||
| UT_DMatrix3 & | immatrix | |||
| ) | const [protected, virtual] |
Gets the impulse mass matrix of an object for an impulse at the provided world space position. The default implementation gets the closest point in the geometry and calls getPointImpulseMassMatrix().
Reimplemented from SIM_Solver.
| virtual void GAS_Integrator::getPointImpulseMassMatrixSubclass | ( | const SIM_Object & | object, | |
| int | ptnum, | |||
| UT_DMatrix3 & | immatrix | |||
| ) | const [protected, virtual] |
Gets the impulse mass matrix of an object for an impulse at the provided point on the geometry of the object. The default implementation finds the world space position of the point and calls getImpulseMassMatrix().
Reimplemented from SIM_Solver.
| GAS_Integrator::GETSET_DATA_FUNCS_I | ( | SIM_NAME_PRIMARYSOLVER | , | |
| PrimarySolver | ||||
| ) |
| bool GAS_Integrator::shouldMultiThread | ( | ) | [inline] |
Definition at line 100 of file GAS_Integrator.h.
| virtual bool GAS_Integrator::solveGasSubclass | ( | SIM_Engine & | engine, | |
| SIM_Object * | obj, | |||
| SIM_Time | time, | |||
| SIM_Time | timestep | |||
| ) | [inline, protected, virtual] |
Applies this subsolver for a single timestep. Returns true on success
Implements GAS_SubSolver.
Definition at line 106 of file GAS_Integrator.h.
| virtual SIM_Result GAS_Integrator::solveObjectsSubclass | ( | SIM_Engine & | engine, | |
| SIM_ObjectArray & | objects, | |||
| SIM_ObjectArray & | newobjects, | |||
| SIM_ObjectArray & | feedbacktoobjects, | |||
| const SIM_Time & | timestep | |||
| ) | [virtual] |
Asks all inputs to compute their forces and integrates them for the given timestep. We may do this several times if a higher-order timestep is used.
Reimplemented from GAS_SubSolver.
1.5.9