Medical Imaging Interaction Toolkit  2024.06.99-35a6d053
Medical Imaging Interaction Toolkit
mitk::PointSetDataInteractor Class Reference

Implementation of the PointSetInteractor. More...

#include <mitkPointSetDataInteractor.h>

Inheritance diagram for mitk::PointSetDataInteractor:
Collaboration diagram for mitk::PointSetDataInteractor:

Public Types

typedef PointSetDataInteractor Self
 
typedef DataInteractor Superclass
 
typedef itk::SmartPointer< SelfPointer
 
typedef itk::SmartPointer< const SelfConstPointer
 
- Public Types inherited from mitk::DataInteractor
typedef DataInteractor Self
 
typedef EventStateMachine Superclass
 
typedef itk::SmartPointer< SelfPointer
 
typedef itk::SmartPointer< const SelfConstPointer
 
- Public Types inherited from mitk::EventStateMachine
typedef EventStateMachine Self
 
typedef InteractionEventHandler Superclass
 
typedef itk::SmartPointer< SelfPointer
 
typedef itk::SmartPointer< const SelfConstPointer
 
typedef std::map< std::string, TActionFunctor * > ActionFunctionsMapType
 
typedef itk::SmartPointer< StateMachineStateStateMachineStateType
 
- Public Types inherited from mitk::InteractionEventHandler
typedef InteractionEventHandler Self
 
typedef itk::Object Superclass
 
typedef itk::SmartPointer< SelfPointer
 
typedef itk::SmartPointer< const SelfConstPointer
 

Public Member Functions

virtual std::vector< std::string > GetClassHierarchy () const override
 
virtual const char * GetClassName () const
 
Pointer Clone () const
 
void SetAccuracy (float accuracy)
 
void SetMaxPoints (unsigned int maxNumber=0)
 SetMaxPoints Sets the maximal number of points for the pointset Default is zero, which result in infinite number of allowed points. More...
 
- Public Member Functions inherited from mitk::DataInteractor
Pointer Clone () const
 
DataNodeGetDataNode () const
 
virtual void SetDataNode (DataNode *dataNode)
 
int GetLayer () const
 
ProcessEventMode GetMode () const
 
- Public Member Functions inherited from mitk::EventStateMachine
bool LoadStateMachine (const std::string &filename, const us::Module *module=nullptr)
 Loads XML resource. More...
 
bool HandleEvent (InteractionEvent *event, DataNode *dataNode)
 
void EnableUndo (bool enable)
 Enables or disabled Undo. More...
 
void EnableInteraction (bool enable)
 Enables/disables the state machine. In un-enabled state it won't react to any events. More...
 
- Public Member Functions inherited from mitk::InteractionEventHandler
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 const char * GetStaticNameOfClass ()
 
static Pointer New ()
 
- Static Public Member Functions inherited from mitk::DataInteractor
static const char * GetStaticNameOfClass ()
 
static Pointer New ()
 
- Static Public Member Functions inherited from mitk::EventStateMachine
static const char * GetStaticNameOfClass ()
 
- Static Public Member Functions inherited from mitk::InteractionEventHandler
static const char * GetStaticNameOfClass ()
 

Protected Member Functions

 PointSetDataInteractor ()
 
 ~PointSetDataInteractor () override
 
void ConnectActionsAndFunctions () override
 
void DataNodeChanged () override
 
virtual int GetPointIndexByPosition (Point3D position, unsigned int time=0, float accuracy=-1)
 Return index in PointSet of the point that is within given accuracy to the provided position. More...
 
virtual bool CheckSelection (const InteractionEvent *interactionEvent)
 
virtual void AddPoint (StateMachineAction *, InteractionEvent *event)
 
virtual void RemovePoint (StateMachineAction *, InteractionEvent *interactionEvent)
 
virtual void IsClosedContour (StateMachineAction *, InteractionEvent *)
 
virtual void MovePoint (StateMachineAction *, InteractionEvent *)
 
virtual void InitMove (StateMachineAction *, InteractionEvent *interactionEvent)
 
virtual void FinishMove (StateMachineAction *, InteractionEvent *)
 
virtual void SelectPoint (StateMachineAction *, InteractionEvent *)
 
virtual void UnSelectPointAtPosition (StateMachineAction *, InteractionEvent *)
 
virtual void UnSelectAll (StateMachineAction *, InteractionEvent *)
 
virtual void UpdatePointSet (StateMachineAction *stateMachineAction, InteractionEvent *)
 UpdatePointSet Updates the member variable that holds the point set, evaluating the time step of the sender. More...
 
virtual void Abort (StateMachineAction *, InteractionEvent *)
 
void UnselectAll (unsigned int timeStep, ScalarType timeInMs)
 
void SelectPoint (int position, unsigned int timeStep, ScalarType timeInMS)
 
- Protected Member Functions inherited from mitk::DataInteractor
 DataInteractor ()
 
 ~DataInteractor () override
 
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, TActionFunctor *functor)
 
void AddActionFunction (const std::string &action, const ActionFunctionDelegate &delegate)
 
void AddConditionFunction (const std::string &condition, const ConditionFunctionDelegate &delegate)
 
StateMachineStateGetCurrentState () 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...
 
StateMachineTransitionGetExecutableTransition (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

Point3D m_LastPoint
 to calculate a direction vector from last point and actual point More...
 
Vector3D m_SumVec
 summ-vector for Movement More...
 
PointSet::Pointer m_PointSet
 
int m_MaxNumberOfPoints
 
float m_SelectionAccuracy
 
- Protected Attributes inherited from mitk::EventStateMachine
bool m_IsActive
 
UndoControllerm_UndoController
 
bool m_UndoEnabled
 

Additional Inherited Members

- Static Public Attributes inherited from mitk::DataInteractor
static const std::string IntDeactivateMe
 
static const std::string IntLeaveWidget
 
static const std::string IntEnterWidget
 
- Protected Types inherited from mitk::EventStateMachine
typedef MessageAbstractDelegate2< StateMachineAction *, InteractionEvent *, void > ActionFunctionDelegate
 
typedef MessageAbstractDelegate1< const InteractionEvent *, bool > ConditionFunctionDelegate
 

Detailed Description

Implementation of the PointSetInteractor.

Class PointSetDataInteractor Interactor operates on a point set and supports to:

  • add points
  • remove points
  • move single points
  • move complete pointset
  • select/unselect a point

in 2d and 3d render windows.

Warning
If this Interactor is assigned (SetDataNode) an empty mitk::DataNode it creates a point set, changing the point set of the assigned mitk::DataNode after this assignment will cause the mitk::PointSetDataInteractor to not work properly. So the usage has follow this general scheme:
// Set up interactor
m_CurrentInteractor = mitk::PointSetDataInteractor::New();
m_CurrentInteractor->LoadStateMachine("PointSet.xml");
m_CurrentInteractor->SetEventConfig("PointSetConfig.xml");
//Create new PointSet which will receive the interaction input
m_TestPointSet = mitk::PointSet::New();
// Add the point set to the mitk::DataNode *before* the DataNode is added to the mitk::PointSetDataInteractor
m_TestPointSetNode->SetData(m_TestPointSet);
// finally add the mitk::DataNode (which already is added to the mitk::DataStorage) to the
m_CurrentInteractor->SetDataNode(m_TestPointSetNode);

Definition at line 63 of file mitkPointSetDataInteractor.h.

Member Typedef Documentation

◆ ConstPointer

◆ Pointer

◆ Self

◆ Superclass

Constructor & Destructor Documentation

◆ PointSetDataInteractor()

mitk::PointSetDataInteractor::PointSetDataInteractor ( )
protected

◆ ~PointSetDataInteractor()

mitk::PointSetDataInteractor::~PointSetDataInteractor ( )
overrideprotected

Member Function Documentation

◆ Abort()

virtual void mitk::PointSetDataInteractor::Abort ( StateMachineAction ,
InteractionEvent  
)
protectedvirtual

Calls for inactivation of the DataInteractor

◆ AddPoint()

virtual void mitk::PointSetDataInteractor::AddPoint ( StateMachineAction ,
InteractionEvent event 
)
protectedvirtual

Adds a point at the given coordinates. Every time a point is added it is also checked if the maximal number of points is reached, and if so an InternalEvent with the signal name "MaxNumberOfPoints" is triggered.

Reimplemented in mitk::SinglePointDataInteractor.

◆ CheckSelection()

virtual bool mitk::PointSetDataInteractor::CheckSelection ( const InteractionEvent interactionEvent)
protectedvirtual

◆ Clone()

Pointer mitk::PointSetDataInteractor::Clone ( ) const

◆ ConnectActionsAndFunctions()

void mitk::PointSetDataInteractor::ConnectActionsAndFunctions ( )
overrideprotectedvirtual

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::DataInteractor.

◆ DataNodeChanged()

void mitk::PointSetDataInteractor::DataNodeChanged ( )
overrideprotectedvirtual

This function is called when a DataNode has been set/changed. It is used to initialize the DataNode, e.g. if no PointSet exists yet it is created and added to the DataNode.

Reimplemented from mitk::DataInteractor.

Reimplemented in mitk::SinglePointDataInteractor.

◆ FinishMove()

virtual void mitk::PointSetDataInteractor::FinishMove ( StateMachineAction ,
InteractionEvent  
)
protectedvirtual

Is called when a movement is finished, changes back to regular color.

◆ GetClassHierarchy()

virtual std::vector<std::string> mitk::PointSetDataInteractor::GetClassHierarchy ( ) const
inlineoverridevirtual

Reimplemented from mitk::DataInteractor.

Reimplemented in mitk::SinglePointDataInteractor.

Definition at line 66 of file mitkPointSetDataInteractor.h.

◆ GetClassName()

virtual const char* mitk::PointSetDataInteractor::GetClassName ( ) const
virtual

Reimplemented from mitk::DataInteractor.

Reimplemented in mitk::SinglePointDataInteractor.

◆ GetPointIndexByPosition()

virtual int mitk::PointSetDataInteractor::GetPointIndexByPosition ( Point3D  position,
unsigned int  time = 0,
float  accuracy = -1 
)
protectedvirtual

Return index in PointSet of the point that is within given accuracy to the provided position.

Assumes that the DataNode contains a PointSet, if so it iterates over all points in the DataNode to check if it contains a point near the pointer position. If a point is found its index-position is returned, else -1 is returned.

◆ GetStaticNameOfClass()

static const char* mitk::PointSetDataInteractor::GetStaticNameOfClass ( )
inlinestatic

Definition at line 66 of file mitkPointSetDataInteractor.h.

◆ InitMove()

virtual void mitk::PointSetDataInteractor::InitMove ( StateMachineAction ,
InteractionEvent interactionEvent 
)
protectedvirtual

Initializes the movement, stores starting position.

◆ IsClosedContour()

virtual void mitk::PointSetDataInteractor::IsClosedContour ( StateMachineAction ,
InteractionEvent  
)
protectedvirtual

Checks if new point is close enough to an old one, if so, trigger the ClosedContour signal which can be caught by the state machine.

◆ MovePoint()

virtual void mitk::PointSetDataInteractor::MovePoint ( StateMachineAction ,
InteractionEvent  
)
protectedvirtual

Moves the currently selected point to the new coordinates.

◆ New()

static Pointer mitk::PointSetDataInteractor::New ( )
static

◆ RemovePoint()

virtual void mitk::PointSetDataInteractor::RemovePoint ( StateMachineAction ,
InteractionEvent interactionEvent 
)
protectedvirtual

Removes point that is selected

◆ SelectPoint() [1/2]

void mitk::PointSetDataInteractor::SelectPoint ( int  position,
unsigned int  timeStep,
ScalarType  timeInMS 
)
protected

◆ SelectPoint() [2/2]

virtual void mitk::PointSetDataInteractor::SelectPoint ( StateMachineAction ,
InteractionEvent  
)
protectedvirtual

Selects a point from the PointSet as currently active.

◆ SetAccuracy()

void mitk::PointSetDataInteractor::SetAccuracy ( float  accuracy)

Sets the maximum distance that is accepted when looking for a point at a certain position using the GetPointIndexByPosition function.

◆ SetMaxPoints()

void mitk::PointSetDataInteractor::SetMaxPoints ( unsigned int  maxNumber = 0)

SetMaxPoints Sets the maximal number of points for the pointset Default is zero, which result in infinite number of allowed points.

Parameters
maxNumber

◆ UnSelectAll()

virtual void mitk::PointSetDataInteractor::UnSelectAll ( StateMachineAction ,
InteractionEvent  
)
protectedvirtual

Unselects all points out of reach.

◆ UnselectAll()

void mitk::PointSetDataInteractor::UnselectAll ( unsigned int  timeStep,
ScalarType  timeInMs 
)
protected

◆ UnSelectPointAtPosition()

virtual void mitk::PointSetDataInteractor::UnSelectPointAtPosition ( StateMachineAction ,
InteractionEvent  
)
protectedvirtual

Unselects a point at the given coordinate.

◆ UpdatePointSet()

virtual void mitk::PointSetDataInteractor::UpdatePointSet ( StateMachineAction stateMachineAction,
InteractionEvent  
)
protectedvirtual

UpdatePointSet Updates the member variable that holds the point set, evaluating the time step of the sender.

Member Data Documentation

◆ m_LastPoint

Point3D mitk::PointSetDataInteractor::m_LastPoint
protected

to calculate a direction vector from last point and actual point

Definition at line 171 of file mitkPointSetDataInteractor.h.

◆ m_MaxNumberOfPoints

int mitk::PointSetDataInteractor::m_MaxNumberOfPoints
protected

Definition at line 178 of file mitkPointSetDataInteractor.h.

◆ m_PointSet

PointSet::Pointer mitk::PointSetDataInteractor::m_PointSet
protected

Definition at line 177 of file mitkPointSetDataInteractor.h.

◆ m_SelectionAccuracy

float mitk::PointSetDataInteractor::m_SelectionAccuracy
protected

Definition at line 179 of file mitkPointSetDataInteractor.h.

◆ m_SumVec

Vector3D mitk::PointSetDataInteractor::m_SumVec
protected

summ-vector for Movement

Definition at line 174 of file mitkPointSetDataInteractor.h.


The documentation for this class was generated from the following file:
mitk::PointSetDataInteractor::New
static Pointer New()
mitk::PointSet::New
static Pointer New()
mitk::PointSetDataInteractor
Implementation of the PointSetInteractor.
Definition: mitkPointSetDataInteractor.h:63
mitk::DataInteractor::SetDataNode
virtual void SetDataNode(DataNode *dataNode)