Medical Imaging Interaction Toolkit  2025.08.99-f7084adb
Medical Imaging Interaction Toolkit
mitkPointSetDataInteractor.h
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 #ifndef mitkPointSetDataInteractor_h
14 #define mitkPointSetDataInteractor_h
15 
16 #include "itkObject.h"
17 #include "itkObjectFactory.h"
18 #include "itkSmartPointer.h"
19 #include "mitkCommon.h"
20 #include "mitkDataInteractor.h"
21 #include <MitkCoreExports.h>
22 #include <mitkPointSet.h>
23 
24 namespace mitk
25 {
62  // Inherit from DataInteratcor, this provides functionality of a state machine and configurable inputs.
64  {
65  public:
67  itkFactorylessNewMacro(Self);
68  itkCloneMacro(Self);
69 
74  void SetAccuracy(float accuracy);
75 
81  void SetMaxPoints(unsigned int maxNumber = 0);
82 
83  void EnableMovement(bool enabled = true);
84  void EnableRemoval(bool enabled = true);
85 
90  void SetBounds(BaseGeometry* geometry);
91 
92  protected:
94  ~PointSetDataInteractor() override;
95 
100  void ConnectActionsAndFunctions() override;
101 
107  void DataNodeChanged() override;
108 
116  virtual int GetPointIndexByPosition(Point3D position, unsigned int time = 0, float accuracy = -1);
117 
118  virtual bool CheckSelection(const InteractionEvent *interactionEvent);
119 
124  virtual void AddPoint(StateMachineAction *, InteractionEvent *event);
125 
127  virtual void RemovePoint(StateMachineAction *, InteractionEvent *interactionEvent);
128 
133  virtual void IsClosedContour(StateMachineAction *, InteractionEvent *);
134 
138  virtual void MovePoint(StateMachineAction *, InteractionEvent *);
139 
143  virtual void InitMove(StateMachineAction *, InteractionEvent *interactionEvent);
144 
148  virtual void FinishMove(StateMachineAction *, InteractionEvent *);
149 
153  virtual void SelectPoint(StateMachineAction *, InteractionEvent *);
154 
158  virtual void UnSelectPointAtPosition(StateMachineAction *, InteractionEvent *);
159 
163  virtual void UnSelectAll(StateMachineAction *, InteractionEvent *);
164 
170  virtual void UpdatePointSet(StateMachineAction *stateMachineAction, InteractionEvent *);
171 
175  virtual void Abort(StateMachineAction *, InteractionEvent *);
176 
177  virtual void KeyDelete(StateMachineAction *, InteractionEvent *);
178 
183 
186 
187  // DATA
189  int m_MaxNumberOfPoints; // maximum of allowed number of points
190  float m_SelectionAccuracy; // accuracy that's needed to select a point
194 
195  // FUNCTIONS
196  void UnselectAll(unsigned int timeStep, ScalarType timeInMs);
197  void SelectPoint(int position, unsigned int timeStep, ScalarType timeInMS);
198  };
199 }
200 #endif
mitk::InteractionEvent
Definition: mitkInteractionEvent.h:26
mitk::PointSetDataInteractor::m_PointSet
PointSet::Pointer m_PointSet
Definition: mitkPointSetDataInteractor.h:188
mitk::PointSetDataInteractor::m_IsMovementEnabled
bool m_IsMovementEnabled
Definition: mitkPointSetDataInteractor.h:191
itk::SmartPointer< Self >
mitk::PointSetDataInteractor::m_IsRemovalEnabled
bool m_IsRemovalEnabled
Definition: mitkPointSetDataInteractor.h:192
mitkPointSet.h
mitk
Find image slices visible on a given plane.
Definition: RenderingTests.dox:1
mitk::Vector< ScalarType, 3 >
MitkCoreExports.h
mitk::BaseGeometry
BaseGeometry Describes the geometry of a data object.
Definition: mitkBaseGeometry.h:94
mitk::Point< ScalarType, 3 >
mitkCommon.h
mitkDataInteractor.h
mitk::PointSetDataInteractor::m_MaxNumberOfPoints
int m_MaxNumberOfPoints
Definition: mitkPointSetDataInteractor.h:189
mitk::StateMachineAction
Represents an action, that is executed after a certain event (in statemachine-mechanism) TODO: implem...
Definition: mitkStateMachineAction.h:30
mitk::PointSetDataInteractor::m_SelectionAccuracy
float m_SelectionAccuracy
Definition: mitkPointSetDataInteractor.h:190
mitkClassMacro
#define mitkClassMacro(className, SuperClassName)
Definition: mitkCommon.h:36
mitk::DataInteractor
Base class from with interactors that handle DataNodes are to be derived.
Definition: mitkDataInteractor.h:48
mitk::PointSetDataInteractor
Implementation of the PointSetInteractor.
Definition: mitkPointSetDataInteractor.h:63
mitk::PointSetDataInteractor::m_Bounds
mitk::BaseGeometry::Pointer m_Bounds
Definition: mitkPointSetDataInteractor.h:193
mitk::PointSetDataInteractor::m_LastPoint
Point3D m_LastPoint
to calculate a direction vector from last point and actual point
Definition: mitkPointSetDataInteractor.h:182
mitk::PointSetDataInteractor::m_SumVec
Vector3D m_SumVec
summ-vector for Movement
Definition: mitkPointSetDataInteractor.h:185
MITKCORE_EXPORT
#define MITKCORE_EXPORT
Definition: MitkCoreExports.h:15
mitk::ScalarType
double ScalarType
Definition: mitkNumericConstants.h:20