9 #include "imstkGeometry.h" 25 PositionBasedDynamics,
26 SmoothedParticleHydrodynamics,
69 virtual void resetToInitialState() = 0;
75 void setNumDegreeOfFreedom(
const size_t nDof) { m_numDof = nDof; }
78 std::shared_ptr<TaskGraph> getTaskGraph()
const {
return m_taskGraph; }
93 virtual void setTimeStep(
const double timeStep) = 0;
98 void setModelGeometry(std::shared_ptr<Geometry> geometry);
103 bool isGeometryValid(
const std::shared_ptr<Geometry> geometry);
113 virtual double getTimeStep()
const = 0;
118 virtual bool initialize() = 0;
123 void initGraphEdges();
136 virtual void initGraphEdges(std::shared_ptr<TaskNode> source, std::shared_ptr<TaskNode> sink);
142 std::shared_ptr<Geometry> m_geometry =
nullptr;
147 std::shared_ptr<TaskGraph> m_taskGraph =
nullptr;
std::size_t m_numDof
Total number of degree of freedom.
std::size_t getNumDegreeOfFreedom() const
Get/Set the number of degrees of freedom.
std::shared_ptr< Geometry > getModelGeometry() const
Gets the model geometry.
virtual void setTimeStepSizeType(const TimeSteppingType type)
Get/Set the type of approach used to update the time step size after every frame. ...
Abstract class for mathematical model of the physics governing the dynamic object.
DynamicalModelType
Type of the time dependent mathematical model.
std::set< std::string > m_validGeometryTypes
Valid geometry types of this model.
virtual void updatePhysicsGeometry()
Update the geometry of the model.
StateUpdateType
Type of the update of the state of the body.
DynamicalModelType m_type
Mathematical model type.
TimeSteppingType
Type of the update of the state of the body.
const DynamicalModelType & getType() const
Get the type of the object.