18#ifndef __vtkMRMLMarkupsDisplayableManager_h
19#define __vtkMRMLMarkupsDisplayableManager_h
22#include "vtkSlicerMarkupsModuleMRMLDisplayableManagerExport.h"
37class vtkSlicerViewerWidget;
39class vtkAbstractWidget;
51 void PrintSelf(ostream& os, vtkIndent indent)
override;
151 vtkGetMacro(DisableInteractorStyleEventsProcessing,
int);
153 vtkSmartPointer<vtkMRMLMarkupsDisplayableManagerHelper>
Helper;
165 int DisableInteractorStyleEventsProcessing;
169 vtkWeakPointer<vtkMRMLSliceNode> SliceNode;
vtkMRMLAbstractDisplayableManager()
Abstract MRML node to represent a view. The class holds the properties common to any view type (3D,...
vtkMRMLAbstractWidget * FindClosestWidget(vtkMRMLInteractionEventData *callData, double &closestDistance2)
virtual bool IsManageable(const char *nodeClassName)
void SetMRMLSceneInternal(vtkMRMLScene *newScene) override
bool GetInteractive() override
Displayable manager can indicate that the window is in interactive mode (faster updates).
void RemoveObserversFromInteractionNode()
void ProcessMRMLNodesEvents(vtkObject *caller, unsigned long event, void *callData) override
vtkMRMLMarkupsDisplayableManager()
void Create() override
Initialize the displayable manager.
void OnMRMLSceneEndClose() override
vtkSmartPointer< vtkRenderer > InteractionRenderer
vtkSlicerMarkupsWidget * GetWidget(vtkMRMLMarkupsDisplayNode *node)
Get the widget of a node.
void ConvertDeviceToXYZ(double x, double y, double xyz[3])
void OnMRMLSceneNodeRemoved(vtkMRMLNode *node) override
vtkMRMLSliceNode * GetMRMLSliceNode()
Get the sliceNode, if registered. This would mean it is a 2D SliceView displayableManager.
int GetMouseCursor() override
Displayable manager returns ID of the mouse cursor shape that should be displayed.
vtkSlicerMarkupsInteractionWidget * GetInteractionWidget(vtkMRMLMarkupsDisplayNode *node)
Get the interaction widget of a node.
void UpdateFromMRMLScene() override
static vtkMRMLMarkupsDisplayableManager * New()
int GetCurrentInteractionMode()
vtkMRMLMarkupsNode * GetActiveMarkupsNodeForPlacement()
double LastClickWorldCoordinates[4]
void PrintSelf(ostream &os, vtkIndent indent) override
vtkSlicerMarkupsInteractionWidget * CreateInteractionWidget(vtkMRMLMarkupsDisplayNode *node)
Create an interaction widget.
void SetHasFocus(bool hasFocus, vtkMRMLInteractionEventData *eventData) override
Set if the widget gets/loses focus (interaction events are processed by this displayable manager).
virtual bool IsManageable(vtkMRMLNode *node)
vtkSlicerMarkupsWidget * GetWidgetForPlacement()
bool CanProcessInteractionEvent(vtkMRMLInteractionEventData *eventData, double &closestDistance2) override
void UpdateFromMRML() override
vtkSlicerMarkupsWidget * CreateWidget(vtkMRMLMarkupsDisplayNode *node)
Create a widget.
void AddObserversToInteractionNode()
Observe the interaction node.
void OnMRMLDisplayableNodeModifiedEvent(vtkObject *caller) override
Called after the corresponding MRML View container was modified.
virtual bool Is2DDisplayableManager()
virtual void RequestRender()
Wrap the superclass render request in a check for batch processing.
vtkMRMLMarkupsDisplayableManagerHelper * GetHelper()
vtkSmartPointer< vtkMRMLMarkupsDisplayableManagerHelper > Helper
void OnMRMLSceneNodeAdded(vtkMRMLNode *node) override
~vtkMRMLMarkupsDisplayableManager() override
virtual void OnMRMLViewNodeModifiedEvent(vtkMRMLAbstractViewNode *viewNode)
Update all widgets in response to view node modification.
virtual bool IsCorrectDisplayableManager()
Check if it is the right displayManager.
bool GetGrabFocus() override
Displayable manager can indicate that it would like to get all events (even when mouse pointer is out...
friend class vtkMRMLMarkupsDisplayableManagerHelper
vtkWeakPointer< vtkMRMLAbstractWidget > LastActiveWidget
void OnMRMLSceneEndImport() override
bool ProcessInteractionEvent(vtkMRMLInteractionEventData *eventData) override
Abstract Superclass for all specific types of MRML nodes.
A set of MRML Nodes that supports serialization and undo/redo.
MRML node for storing a slice through RAS space.