Medical Imaging Interaction Toolkit  2023.12.99-7a59bd54
Medical Imaging Interaction Toolkit
mitkEditableContourTool.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 mitkEditableContourTool_h
14 #define mitkEditableContourTool_h
15 
17 
18 namespace mitk
19 {
28  {
29  public:
31 
33  virtual void ConfirmSegmentation(bool resetStatMachine = true);
34 
36  virtual void ClearContour();
37 
38  itkBooleanMacro(AutoConfirm);
39  itkSetMacro(AutoConfirm, bool);
40  itkGetMacro(AutoConfirm, bool);
41 
42  itkBooleanMacro(AddMode);
43  itkSetMacro(AddMode, bool);
44  itkGetMacro(AddMode, bool);
45 
46  /* Indicated if a contour is drawn, but not confirmed yet. This tool is in interactor mode
47  to allow users to edit the contour. This state can be reached if AutoConfirm is false, after the finalizing double
48  click before the contour is confirmed.*/
49  bool IsEditingContour() const;
50  /* Indicate if a contour is currently drawn by the user (state between the initializing double click and
51  the finalizing double click).*/
52  bool IsDrawingContour() const;
53 
54  protected:
56  ~EditableContourTool() override;
57 
58  void ConnectActionsAndFunctions() override;
59 
60  void Activated() override;
61  void Deactivated() override;
62 
63  virtual Point3D PrepareInitContour(const Point3D& clickedPoint);
64  virtual void FinalizePreviewContour(const Point3D& clickedPoint);
65  virtual void InitializePreviewContour(const Point3D& clickedPoint);
66  virtual void UpdatePreviewContour(const Point3D& clickedPoint);
67 
69  virtual void OnInitContour(StateMachineAction *, InteractionEvent *interactionEvent);
70 
72  virtual void OnAddPoint(StateMachineAction *, InteractionEvent *interactionEvent);
73 
75  virtual void OnDrawing(StateMachineAction *, InteractionEvent *interactionEvent);
76 
77  virtual void OnEndDrawing(StateMachineAction *, InteractionEvent *interactionEvent);
78 
80  virtual void OnMouseMoved(StateMachineAction *, InteractionEvent *interactionEvent);
81 
83  virtual void OnFinish(StateMachineAction *, InteractionEvent *interactionEvent);
84 
86  virtual bool OnCheckPlane(const InteractionEvent* interactionEvent);
87 
89  virtual void FinishTool() = 0;
90 
91  void EnableContourInteraction(bool on);
92 
93  void ReleaseInteractors();
94 
95  virtual void ReleaseHelperObjects(bool includeWorkingContour = true);
96 
97  virtual void RemoveHelperObjectsFromDataStorage(bool includeWorkingContour = true);
98 
99  ContourModel::Pointer CreateNewContour() const;
100 
101  virtual void UpdateClosureContour(mitk::Point3D endpoint);
102 
103  mitk::ContourModel* GetContour();
104  const mitk::ContourModel* GetContour() const;
106 
109 
112 
114 
118 
120 
122 
124  bool m_AddMode;
125  };
126 }
127 
128 #endif
mitkFeedbackContourTool.h
mitk::InteractionEvent
Definition: mitkInteractionEvent.h:26
mitk::EditableContourTool::m_ReferenceDataSlice
mitk::Image::Pointer m_ReferenceDataSlice
Definition: mitkEditableContourTool.h:117
itk::SmartPointer< Self >
mitk::EditableContourTool
Definition: mitkEditableContourTool.h:27
mitk::EditableContourTool::m_ContourNode
mitk::DataNode::Pointer m_ContourNode
Definition: mitkEditableContourTool.h:105
mitk::EditableContourTool::m_PreviewContourNode
mitk::DataNode::Pointer m_PreviewContourNode
Definition: mitkEditableContourTool.h:108
mitk::EditableContourTool::m_ClosureContour
mitk::ContourModel::Pointer m_ClosureContour
Definition: mitkEditableContourTool.h:110
mitk
Find image slices visible on a given plane.
Definition: RenderingTests.dox:1
mitk::EditableContourTool::m_ClosureContourNode
mitk::DataNode::Pointer m_ClosureContourNode
Definition: mitkEditableContourTool.h:111
mitk::EditableContourTool::m_PlaneGeometry
PlaneGeometry::ConstPointer m_PlaneGeometry
Definition: mitkEditableContourTool.h:119
mitk::FeedbackContourTool
Base class for tools that use a contour for feedback.
Definition: mitkFeedbackContourTool.h:49
mitk::EditableContourTool::m_ContourInteractor
mitk::DataInteractor::Pointer m_ContourInteractor
Definition: mitkEditableContourTool.h:121
mitk::Point< ScalarType, 3 >
mitk::ContourModel
ContourModel is a structure of linked vertices defining a contour in 3D space. The vertices are store...
Definition: mitkContourModel.h:47
mitk::EditableContourTool::m_AddMode
bool m_AddMode
Definition: mitkEditableContourTool.h:124
mitk::EditableContourTool::m_PreviewContour
mitk::ContourModel::Pointer m_PreviewContour
Definition: mitkEditableContourTool.h:107
MITKSEGMENTATION_EXPORT
#define MITKSEGMENTATION_EXPORT
Definition: MitkSegmentationExports.h:15
mitk::EditableContourTool::m_AutoConfirm
bool m_AutoConfirm
Definition: mitkEditableContourTool.h:123
mitk::StateMachineAction
Represents an action, that is executed after a certain event (in statemachine-mechanism) TODO: implem...
Definition: mitkStateMachineAction.h:30
mitkClassMacro
#define mitkClassMacro(className, SuperClassName)
Definition: mitkCommon.h:36
mitk::EditableContourTool::m_CurrentRestrictedArea
mitk::ContourModel::Pointer m_CurrentRestrictedArea
Definition: mitkEditableContourTool.h:113
mitk::BaseData::Pointer
itk::SmartPointer< Self > Pointer
Definition: mitkBaseData.h:46