iMSTK
Interactive Medical Simulation Toolkit
|
This class implements a generic level set model, it requires both a forward and backward finite differencing method. More...
#include <imstkLevelSetModel.h>
Public Member Functions | |
std::shared_ptr< LevelSetModelConfig > | getConfig () 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< TaskNode > | getQuantityEvolveNode (size_t i) const |
std::shared_ptr< TaskNode > | getGenerateVelocitiesBeginNode () const |
std::shared_ptr< TaskNode > | getGenerateVelocitiesEndNode () 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. | |
![]() | |
std::shared_ptr< TaskGraph > | getTaskGraph () const |
const DynamicalModelType & | getType () 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< Geometry > | getModelGeometry () 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. | |
![]() | |
AbstractDynamicalModel (DynamicalModelType type=DynamicalModelType::None) | |
Protected Attributes | |
std::shared_ptr< ImplicitGeometry > | m_mesh = nullptr |
Geometry on which the levelset evolves with. | |
std::vector< std::shared_ptr< TaskNode > > | m_evolveQuantitiesNodes |
std::shared_ptr< TaskNode > | m_generateVelocitiesBegin |
std::shared_ptr< TaskNode > | m_generateVelocitiesEnd |
std::shared_ptr< LevelSetModelConfig > | m_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< ImageData > | m_gradientMagnitudes = nullptr |
Gradient magnitude field when using dense. | |
std::shared_ptr< ImageData > | m_velocities = nullptr |
std::shared_ptr< ImageData > | m_curvatures = nullptr |
StructuredForwardGradient | m_forwardGrad |
StructuredBackwardGradient | m_backwardGrad |
ImplicitStructuredCurvature | m_curvature |
![]() | |
DynamicalModelType | m_type |
Mathematical model type. | |
std::size_t | m_numDof |
Total number of degree of freedom. | |
std::shared_ptr< Geometry > | m_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< TaskGraph > | m_taskGraph = nullptr |
Additional Inherited Members | |
![]() | |
enum | StateUpdateType { Displacement, Velocity, DeltaDisplacement, DeltaVelocity, None } |
Type of the update of the state of the body. | |
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.