Medical Imaging Interaction Toolkit  2016.11.0
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 ist 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 ()
 
virtual ~PointSetDataInteractor ()
 
virtual void ConnectActionsAndFunctions () override
 
virtual 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 ()
 
virtual ~DataInteractor ()
 
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 ()
 
virtual ~EventStateMachine ()
 
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 (if modified by the SlicesCoordinator) 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 ()
 
virtual ~InteractionEventHandler ()
 
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.

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 67 of file mitkPointSetDataInteractor.h.

Member Typedef Documentation

Constructor & Destructor Documentation

mitk::PointSetDataInteractor::PointSetDataInteractor ( )
protected

Definition at line 155 of file mitkPointSetDataInteractor.cpp.

mitk::PointSetDataInteractor::~PointSetDataInteractor ( )
protectedvirtual

Definition at line 159 of file mitkPointSetDataInteractor.cpp.

Member Function Documentation

void mitk::PointSetDataInteractor::Abort ( StateMachineAction ,
InteractionEvent interactionEvent 
)
protectedvirtual
void mitk::PointSetDataInteractor::AddPoint ( StateMachineAction stateMachineAction,
InteractionEvent event 
)
protectedvirtual
bool mitk::PointSetDataInteractor::CheckSelection ( const InteractionEvent interactionEvent)
protectedvirtual
Pointer mitk::PointSetDataInteractor::Clone ( ) const
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.

Definition at line 31 of file mitkPointSetDataInteractor.cpp.

References AddPoint(), CheckSelection(), CONNECT_CONDITION, CONNECT_FUNCTION, FinishMove(), InitMove(), MovePoint(), RemovePoint(), SelectPoint(), UnSelectAll(), and UnSelectPointAtPosition().

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.

Definition at line 384 of file mitkPointSetDataInteractor.cpp.

References mitk::PointSet::New().

void mitk::PointSetDataInteractor::FinishMove ( StateMachineAction ,
InteractionEvent interactionEvent 
)
protectedvirtual
virtual std::vector<std::string> mitk::PointSetDataInteractor::GetClassHierarchy ( ) const
inlineoverridevirtual

Reimplemented from mitk::DataInteractor.

Reimplemented in mitk::SinglePointDataInteractor.

Definition at line 70 of file mitkPointSetDataInteractor.h.

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

Reimplemented from mitk::DataInteractor.

Reimplemented in mitk::SinglePointDataInteractor.

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.

Definition at line 499 of file mitkPointSetDataInteractor.cpp.

References mitk::PointSet::GetPoint(), and mitk::PointSet::GetPointSet().

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

Definition at line 70 of file mitkPointSetDataInteractor.h.

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

Initializes the movement, stores starting position.

Definition at line 408 of file mitkPointSetDataInteractor.cpp.

References mitk::InteractionPositionEvent::GetPositionInWorld(), and mitk::ColorProperty::New().

Referenced by ConnectActionsAndFunctions().

void mitk::PointSetDataInteractor::IsClosedContour ( StateMachineAction ,
InteractionEvent 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.

Definition at line 209 of file mitkPointSetDataInteractor.cpp.

References GetData(), mitk::BaseRenderer::GetDispatcher(), mitk::InteractionPositionEvent::GetPositionInWorld(), mitk::InteractionEvent::GetSender(), mitk::BaseRenderer::GetTimeStep(), and mitk::InternalEvent::New().

void mitk::PointSetDataInteractor::MovePoint ( StateMachineAction stateMachineAction,
InteractionEvent interactionEvent 
)
protectedvirtual
void mitk::PointSetDataInteractor::SelectPoint ( int  position,
unsigned int  timeStep,
ScalarType  timeInMS 
)
protected
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.

Definition at line 489 of file mitkPointSetDataInteractor.cpp.

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

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

Parameters
maxNumber

Definition at line 494 of file mitkPointSetDataInteractor.cpp.

void mitk::PointSetDataInteractor::UnSelectAll ( mitk::StateMachineAction ,
mitk::InteractionEvent interactionEvent 
)
protectedvirtual
void mitk::PointSetDataInteractor::UnselectAll ( unsigned int  timeStep,
ScalarType  timeInMs 
)
protected
void mitk::PointSetDataInteractor::UnSelectPointAtPosition ( StateMachineAction ,
InteractionEvent interactionEvent 
)
protectedvirtual
void mitk::PointSetDataInteractor::UpdatePointSet ( mitk::StateMachineAction stateMachineAction,
mitk::InteractionEvent  
)
protectedvirtual

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

Definition at line 363 of file mitkPointSetDataInteractor.cpp.

References MITK_ERROR.

Member Data Documentation

Point3D mitk::PointSetDataInteractor::m_LastPoint
protected

to calculate a direction vector from last point and actual point

Definition at line 173 of file mitkPointSetDataInteractor.h.

int mitk::PointSetDataInteractor::m_MaxNumberOfPoints
protected

Definition at line 180 of file mitkPointSetDataInteractor.h.

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

Definition at line 179 of file mitkPointSetDataInteractor.h.

float mitk::PointSetDataInteractor::m_SelectionAccuracy
protected

Definition at line 181 of file mitkPointSetDataInteractor.h.

Vector3D mitk::PointSetDataInteractor::m_SumVec
protected

summ-vector for Movement

Definition at line 176 of file mitkPointSetDataInteractor.h.


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