13 #ifndef mitkGizmoInteractor_h
14 #define mitkGizmoInteractor_h
24 #include <vtkCellPicker.h>
25 #include <vtkSmartPointer.h>
34 class InteractionPositionEvent;
65 itkFactorylessNewMacro(Self);
100 void ConnectActionsAndFunctions()
override;
130 void ApplyTranslationToManipulatedObject(
const Vector3D &projectedMovement);
133 void ApplyEqualScalingToManipulatedObject(
double scalingFactor);
136 void ApplyRotationToManipulatedObject(
double angle_deg);
145 void UpdateHandleHighlight();
148 Gizmo::Pointer m_Gizmo;
151 BaseGeometry::Pointer m_ManipulatedObjectGeometry;
154 std::map<BaseRenderer *, vtkSmartPointer<vtkCellPicker>> m_Picker;
163 double m_ColorForHighlight[4];
166 double m_ColorReplacedByHighlight[4];
168 Point2D m_InitialClickPosition2D;
169 double m_InitialClickPosition2DZ;
170 Point3D m_InitialClickPosition3D;
172 Point2D m_InitialGizmoCenter2D;
173 Point3D m_InitialGizmoCenter3D;
178 std::unique_ptr<Operation> m_FinalDoOperation;
179 std::unique_ptr<Operation> m_FinalUndoOperation;
182 BaseGeometry::Pointer m_InitialManipulatedObjectGeometry;
Base class for interactors that operate on DataNodes.
Central node class of the MITK data tree, associating a data object with properties and mappers.
Data interactor for manipulating object geometry via a Gizmo widget.
mitkClassMacro(GizmoInteractor, DataInteractor)
void SetManipulatedObjectNode(DataNode *node)
Set the DataNode whose geometry shall be manipulated.
void SetGizmoNode(DataNode *node)
Set the DataNode that holds the Gizmo for visual feedback.
HandleType
Enumeration of interactive handle types for the gizmo.
@ NoHandle
Indicates that no handle was picked.
Base class for all interaction events in MITK.
Super class for all position-aware interaction events.
Represents an action that is executed after a certain event in the state machine mechanism.
Find image slices visible on a given plane.