Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
mitk::ContourModelLiveWireInteractor Class Reference

LiveWire-based contour model interactor for editing contour segments. More...

#include <mitkContourModelLiveWireInteractor.h>

Inheritance diagram for mitk::ContourModelLiveWireInteractor:
Collaboration diagram for mitk::ContourModelLiveWireInteractor:

Public Member Functions

 mitkClassMacro (ContourModelLiveWireInteractor, ContourModelInteractor)
 
Pointer Clone () const
 
virtual void SetWorkingImage (mitk::Image *_arg)
 Sets the working image used for LiveWire cost computation. More...
 
void ConnectActionsAndFunctions () override
 
- Public Member Functions inherited from mitk::ContourModelInteractor
 mitkClassMacro (ContourModelInteractor, DataInteractor)
 
Pointer Clone () const
 
void SetRestrictedArea (mitk::ContourModel *restrictedArea)
 Sets a contour that constrains the vertex editing area. More...
 
- Public Member Functions inherited from mitk::DataInteractor
 mitkClassMacro (DataInteractor, EventStateMachine)
 
Pointer Clone () const
 
DataNode * GetDataNode () const
 Get the DataNode associated with this interactor. More...
 
virtual void SetDataNode (DataNode *dataNode)
 Set the DataNode that this interactor operates on. More...
 
int GetLayer () const
 Get the rendering layer of the associated DataNode. More...
 
ProcessEventMode GetMode () const
 Get the current event processing mode from the state machine's current state. More...
 
- Public Member Functions inherited from mitk::EventStateMachine
 mitkClassMacro (EventStateMachine, InteractionEventHandler)
 
bool LoadStateMachine (const std::string &filename, const us::Module *module=nullptr)
 Load a state machine pattern from an XML resource file. More...
 
bool HandleEvent (InteractionEvent *event, DataNode *dataNode)
 Process an incoming interaction event. More...
 
void EnableUndo (bool enable)
 Enable or disable the undo mechanism for this state machine. More...
 
void EnableInteraction (bool enable)
 Enable or disable the state machine. More...
 
- Public Member Functions inherited from mitk::InteractionEventHandler
 mitkClassMacroItkParent (InteractionEventHandler, itk::Object)
 
bool SetEventConfig (const std::string &filename, const us::Module *module=nullptr)
 Loads a configuration from an XML resource. More...
 
bool SetEventConfig (const EventConfig &config)
 Loads a configuration from an EventConfig object. More...
 
EventConfig GetEventConfig () const
 Returns the current configuration. More...
 
bool AddEventConfig (const std::string &filename, const us::Module *module=nullptr)
 This method extends the configuration. More...
 
bool AddEventConfig (const EventConfig &config)
 This method extends the configuration. The configuration from the EventConfig object is loaded and only the ones conflicting are replaced by the new one. This way several configurations can be combined. More...
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from mitk::ContourModelInteractor
static Pointer New ()
 
- Static Public Member Functions inherited from mitk::DataInteractor
static Pointer New ()
 

Protected Member Functions

 ContourModelLiveWireInteractor ()
 
 ~ContourModelLiveWireInteractor () override
 
bool OnCheckPointClick (const InteractionEvent *interactionEvent) override
 Select/ add and select vertex to modify contour and prepare for modification of contour. More...
 
void OnMovePoint (StateMachineAction *, InteractionEvent *interactionEvent) override
 Update contour when point is moved. More...
 
void OnAddPoint (StateMachineAction *, InteractionEvent *interactionEvent) override
 Add a new control point. More...
 
void OnDeletePoint (StateMachineAction *, InteractionEvent *interactionEvent) override
 Delete selected vertex and recompute contour. More...
 
void OnFinishEditing (StateMachineAction *, InteractionEvent *interactionEvent) override
 Finish modification of contour. More...
 
void SplitContourFromSelectedVertex (mitk::ContourModel *srcContour, const mitk::ContourModel::VertexType *nextPoint, const mitk::ContourModel::VertexType *previousPoint, int timestep)
 Split contour into a part before the selected vertex and after the selected vertex. More...
 
void SetRepulsivePoints (const mitk::ContourModel::VertexType *nextPoint, mitk::ContourModel *contour, int timestep)
 Set repulsive points which should not be changed during editing of the contour. More...
 
- Protected Member Functions inherited from mitk::ContourModelInteractor
 ContourModelInteractor ()
 
 ~ContourModelInteractor () override
 
virtual bool IsHovering (const InteractionEvent *interactionEvent)
 
virtual void OnMoveContour (StateMachineAction *, InteractionEvent *interactionEvent)
 
- Protected Member Functions inherited from mitk::DataInteractor
 DataInteractor ()
 
 ~DataInteractor () override
 
virtual void DataNodeChanged ()
 Is called when a DataNode is initially set or changed To be implemented by sub-classes for initialization code which require a DataNode. More...
 
virtual void NotifyStart ()
 Sends StartInteraction event via the mitk::DataNode. More...
 
virtual void NotifyResultReady ()
 NotifyResultReady Sends ResultReady event via the mitk::DataNode. More...
 
- Protected Member Functions inherited from mitk::EventStateMachine
 EventStateMachine ()
 
 ~EventStateMachine () override
 
void AddActionFunction (const std::string &action, const ActionFunctionDelegate &delegate)
 
void AddConditionFunction (const std::string &condition, const ConditionFunctionDelegate &delegate)
 
StateMachineState * GetCurrentState () const
 
void ResetToStartState ()
 ResetToStartState Reset state machine to it initial starting state. More...
 
virtual bool CheckCondition (const StateMachineCondition &condition, const InteractionEvent *interactionEvent)
 
virtual void ExecuteAction (StateMachineAction *action, InteractionEvent *interactionEvent)
 
virtual bool FilterEvents (InteractionEvent *interactionEvent, DataNode *dataNode)
 
void SetMouseCursor (const char *xpm[], int hotspotX, int hotspotY)
 Sets the specified mouse cursor. More...
 
void ResetMouseCursor ()
 Resets the mouse cursor to its original state. More...
 
StateMachineTransition * GetExecutableTransition (InteractionEvent *event)
 Returns the executable transition for the given event. More...
 
- Protected Member Functions inherited from mitk::InteractionEventHandler
 InteractionEventHandler ()
 
 ~InteractionEventHandler () override
 
PropertyList::Pointer GetAttributes () const
 
std::string MapToEventVariant (InteractionEvent *interactionEvent)
 
virtual void ConfigurationChanged ()
 

Protected Attributes

mitk::ImageLiveWireContourModelFilter::Pointer m_LiveWireFilter
 
mitk::Image::Pointer m_WorkingSlice
 
mitk::Point3D m_NextActiveVertexDown
 
mitk::Point3D m_NextActiveVertexUp
 
mitk::ContourModel::VertexIterator m_NextActiveVertexDownIter
 
mitk::ContourModel::VertexIterator m_NextActiveVertexUpIter
 
std::vector< itk::Index< 2 > > m_ContourBeingModified
 
mitk::ContourModel::Pointer m_ContourLeft
 
mitk::ContourModel::Pointer m_ContourRight
 
- Protected Attributes inherited from mitk::ContourModelInteractor
const float eps
 
mitk::Point3D m_lastMousePosition
 
mitk::ContourModel::Pointer m_RestrictedArea
 
- Protected Attributes inherited from mitk::EventStateMachine
bool m_IsActive
 
UndoController * m_UndoController
 
bool m_UndoEnabled
 

Additional Inherited Members

- Public Types inherited from mitk::EventStateMachine
typedef itk::SmartPointer< StateMachineState > StateMachineStateType
 
- Static Public Attributes inherited from mitk::DataInteractor
static const std::string IntDeactivateMe
 Internal signal name to request deactivation of this interactor. More...
 
static const std::string IntLeaveWidget
 Internal signal name indicating the pointer left the widget area. More...
 
static const std::string IntEnterWidget
 Internal signal name indicating the pointer entered the widget area. More...
 
- Protected Types inherited from mitk::EventStateMachine
typedef MessageAbstractDelegate2< StateMachineAction *, InteractionEvent *, void > ActionFunctionDelegate
 
typedef MessageAbstractDelegate1< const InteractionEvent *, bool > ConditionFunctionDelegate
 

Detailed Description

LiveWire-based contour model interactor for editing contour segments.

Extends ContourModelInteractor with LiveWire-based computation of contour segments between control points. When a vertex is moved, the connecting segments are recomputed using the shortest path algorithm.

See also
ContourModelInteractor, ImageLiveWireContourModelFilter
Warning
Make sure the working image is properly set, otherwise the algorithm for computing LiveWire contour segments will not work.

Definition at line 38 of file mitkContourModelLiveWireInteractor.h.

Constructor & Destructor Documentation

◆ ContourModelLiveWireInteractor()

mitk::ContourModelLiveWireInteractor::ContourModelLiveWireInteractor ( )
protected

◆ ~ContourModelLiveWireInteractor()

mitk::ContourModelLiveWireInteractor::~ContourModelLiveWireInteractor ( )
overrideprotected

Member Function Documentation

◆ Clone()

Pointer mitk::ContourModelLiveWireInteractor::Clone ( ) const

◆ ConnectActionsAndFunctions()

void mitk::ContourModelLiveWireInteractor::ConnectActionsAndFunctions ( )
overridevirtual

Here actions strings from the loaded state machine pattern are mapped to functions of the DataInteractor. These functions are called when an action from the state machine pattern is executed.

Reimplemented from mitk::ContourModelInteractor.

◆ mitkClassMacro()

mitk::ContourModelLiveWireInteractor::mitkClassMacro ( ContourModelLiveWireInteractor  ,
ContourModelInteractor   
)

◆ New()

static Pointer mitk::ContourModelLiveWireInteractor::New ( )
static

◆ OnAddPoint()

void mitk::ContourModelLiveWireInteractor::OnAddPoint ( StateMachineAction *  ,
InteractionEvent *  interactionEvent 
)
overrideprotectedvirtual

Add a new control point.

Reimplemented from mitk::ContourModelInteractor.

◆ OnCheckPointClick()

bool mitk::ContourModelLiveWireInteractor::OnCheckPointClick ( const InteractionEvent *  interactionEvent)
overrideprotectedvirtual

Select/ add and select vertex to modify contour and prepare for modification of contour.

Reimplemented from mitk::ContourModelInteractor.

◆ OnDeletePoint()

void mitk::ContourModelLiveWireInteractor::OnDeletePoint ( StateMachineAction *  ,
InteractionEvent *  interactionEvent 
)
overrideprotectedvirtual

Delete selected vertex and recompute contour.

Reimplemented from mitk::ContourModelInteractor.

◆ OnFinishEditing()

void mitk::ContourModelLiveWireInteractor::OnFinishEditing ( StateMachineAction *  ,
InteractionEvent *  interactionEvent 
)
overrideprotectedvirtual

Finish modification of contour.

Reimplemented from mitk::ContourModelInteractor.

◆ OnMovePoint()

void mitk::ContourModelLiveWireInteractor::OnMovePoint ( StateMachineAction *  ,
InteractionEvent *  interactionEvent 
)
overrideprotectedvirtual

Update contour when point is moved.

Reimplemented from mitk::ContourModelInteractor.

◆ SetRepulsivePoints()

void mitk::ContourModelLiveWireInteractor::SetRepulsivePoints ( const mitk::ContourModel::VertexType *  nextPoint,
mitk::ContourModel *  contour,
int  timestep 
)
protected

Set repulsive points which should not be changed during editing of the contour.

◆ SetWorkingImage()

virtual void mitk::ContourModelLiveWireInteractor::SetWorkingImage ( mitk::Image *  _arg)
virtual

Sets the working image used for LiveWire cost computation.

Parameters
[in]_argPointer to the image slice for the LiveWire filter.

◆ SplitContourFromSelectedVertex()

void mitk::ContourModelLiveWireInteractor::SplitContourFromSelectedVertex ( mitk::ContourModel *  srcContour,
const mitk::ContourModel::VertexType *  nextPoint,
const mitk::ContourModel::VertexType *  previousPoint,
int  timestep 
)
protected

Split contour into a part before the selected vertex and after the selected vertex.

Member Data Documentation

◆ m_ContourBeingModified

std::vector<itk::Index<2> > mitk::ContourModelLiveWireInteractor::m_ContourBeingModified
protected

Definition at line 88 of file mitkContourModelLiveWireInteractor.h.

◆ m_ContourLeft

mitk::ContourModel::Pointer mitk::ContourModelLiveWireInteractor::m_ContourLeft
protected

Definition at line 90 of file mitkContourModelLiveWireInteractor.h.

◆ m_ContourRight

mitk::ContourModel::Pointer mitk::ContourModelLiveWireInteractor::m_ContourRight
protected

Definition at line 91 of file mitkContourModelLiveWireInteractor.h.

◆ m_LiveWireFilter

mitk::ImageLiveWireContourModelFilter::Pointer mitk::ContourModelLiveWireInteractor::m_LiveWireFilter
protected

Definition at line 79 of file mitkContourModelLiveWireInteractor.h.

◆ m_NextActiveVertexDown

mitk::Point3D mitk::ContourModelLiveWireInteractor::m_NextActiveVertexDown
protected

Definition at line 82 of file mitkContourModelLiveWireInteractor.h.

◆ m_NextActiveVertexDownIter

mitk::ContourModel::VertexIterator mitk::ContourModelLiveWireInteractor::m_NextActiveVertexDownIter
protected

Definition at line 85 of file mitkContourModelLiveWireInteractor.h.

◆ m_NextActiveVertexUp

mitk::Point3D mitk::ContourModelLiveWireInteractor::m_NextActiveVertexUp
protected

Definition at line 83 of file mitkContourModelLiveWireInteractor.h.

◆ m_NextActiveVertexUpIter

mitk::ContourModel::VertexIterator mitk::ContourModelLiveWireInteractor::m_NextActiveVertexUpIter
protected

Definition at line 86 of file mitkContourModelLiveWireInteractor.h.

◆ m_WorkingSlice

mitk::Image::Pointer mitk::ContourModelLiveWireInteractor::m_WorkingSlice
protected

Definition at line 80 of file mitkContourModelLiveWireInteractor.h.


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