iMSTK
Interactive Medical Simulation Toolkit
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
imstk::LevelSetModel Class Reference

This class implements a generic level set model, it requires both a forward and backward finite differencing method. More...

#include <imstkLevelSetModel.h>

Inheritance diagram for imstk::LevelSetModel:
Inheritance graph
[legend]
Collaboration diagram for imstk::LevelSetModel:
Collaboration graph
[legend]

Public Member Functions

std::shared_ptr< LevelSetModelConfiggetConfig () const
 
bool initialize () override
 Initialize the LevelSet model.
 
void configure (std::shared_ptr< LevelSetModelConfig > config)
 Configure the model.
 
virtual void evolve ()
 
void addImpulse (const Vec3i &coord, double f)
 Add an impulse to the velocity field of the levelset This actually takes the max of the current and provided.
 
void setImpulse (const Vec3i &coord, double f)
 Set the impulse in the velocity field, replaces.
 
std::shared_ptr< TaskNodegetQuantityEvolveNode (size_t i) const
 
std::shared_ptr< TaskNodegetGenerateVelocitiesBeginNode () const
 
std::shared_ptr< TaskNodegetGenerateVelocitiesEndNode () const
 
std::unordered_map< size_t, std::tuple< Vec3i, double > > & getNodesToUpdate ()
 
void resetToInitialState () override
 Reset the current state to the initial state.
 
void setTimeStep (const double timeStep) override
 Get/Set the time step size.
 
double getTimeStep () const override
 Returns the time step size.
 
- Public Member Functions inherited from imstk::AbstractDynamicalModel
std::shared_ptr< TaskGraphgetTaskGraph () const
 
const DynamicalModelTypegetType () const
 Get the type of the object.
 
virtual void updatePhysicsGeometry ()
 Update the geometry of the model.
 
void setModelGeometry (std::shared_ptr< Geometry > geometry)
 Sets the model geometry.
 
bool isGeometryValid (const std::shared_ptr< Geometry > geometry)
 Checks if the given geometry is a valid geometry type for the model.
 
std::shared_ptr< GeometrygetModelGeometry () const
 Gets the model geometry.
 
void initGraphEdges ()
 Initializes the edges of the graph.
 
std::size_t getNumDegreeOfFreedom () const
 Get/Set the number of degrees of freedom.
 
void setNumDegreeOfFreedom (const size_t nDof)
 
virtual void setTimeStepSizeType (const TimeSteppingType type)
 Get/Set the type of approach used to update the time step size after every frame.
 
TimeSteppingType getTimeStepSizeType () const
 

Protected Member Functions

void initGraphEdges (std::shared_ptr< TaskNode > source, std::shared_ptr< TaskNode > sink) override
 Setup the task graph of the LSM.
 
- Protected Member Functions inherited from imstk::AbstractDynamicalModel
 AbstractDynamicalModel (DynamicalModelType type=DynamicalModelType::None)
 

Protected Attributes

std::shared_ptr< ImplicitGeometrym_mesh = nullptr
 Geometry on which the levelset evolves with.
 
std::vector< std::shared_ptr< TaskNode > > m_evolveQuantitiesNodes
 
std::shared_ptr< TaskNodem_generateVelocitiesBegin
 
std::shared_ptr< TaskNodem_generateVelocitiesEnd
 
std::shared_ptr< LevelSetModelConfigm_config
 
std::unordered_map< size_t, std::tuple< Vec3i, double > > m_nodesToUpdate
 
std::vector< std::tuple< size_t, Vec3i, double, Vec2d, double > > m_nodeUpdatePool
 
size_t noteUpdatePoolSize
 
size_t m_maxVelocitiesParallel = 100
 
std::shared_ptr< ImageDatam_gradientMagnitudes = nullptr
 Gradient magnitude field when using dense.
 
std::shared_ptr< ImageDatam_velocities = nullptr
 
std::shared_ptr< ImageDatam_curvatures = nullptr
 
StructuredForwardGradient m_forwardGrad
 
StructuredBackwardGradient m_backwardGrad
 
ImplicitStructuredCurvature m_curvature
 
- Protected Attributes inherited from imstk::AbstractDynamicalModel
DynamicalModelType m_type
 Mathematical model type.
 
std::size_t m_numDof
 Total number of degree of freedom.
 
std::shared_ptr< Geometrym_geometry = nullptr
 Physics geometry of the model.
 
std::set< std::string > m_validGeometryTypes
 Valid geometry types of this model.
 
TimeSteppingType m_timeStepSizeType = TimeSteppingType::Fixed
 
std::shared_ptr< TaskGraphm_taskGraph = nullptr
 

Additional Inherited Members

- Public Types inherited from imstk::AbstractDynamicalModel
enum  StateUpdateType {
  Displacement, Velocity, DeltaDisplacement, DeltaVelocity,
  None
}
 Type of the update of the state of the body.
 

Detailed Description

This class implements a generic level set model, it requires both a forward and backward finite differencing method.

Definition at line 35 of file imstkLevelSetModel.h.


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