Slicer 5.9
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
vtkMRMLMarkupsDisplayableManagerHelper.h
Go to the documentation of this file.
1/*==============================================================================
2
3 Program: 3D Slicer
4
5 Portions (c) Copyright Brigham and Women's Hospital (BWH) All Rights Reserved.
6
7 See COPYRIGHT.txt
8 or http://www.slicer.org/copyright/copyright.txt for details.
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15
16==============================================================================*/
25
26
27#ifndef vtkMRMLMarkupsDisplayableManagerHelper_h
28#define vtkMRMLMarkupsDisplayableManagerHelper_h
29
30// MarkupsModule includes
31#include "vtkSlicerMarkupsModuleMRMLDisplayableManagerExport.h"
32
33// MarkupsModule/MRML includes
34#include <vtkMRMLMarkupsNode.h>
35
36// MarkupsModule/VTKWidgets includes
39
40// VTK includes
41#include <vtkSmartPointer.h>
42
43// MRML includes
44#include <vtkMRMLSliceNode.h>
45
46// STL includes
47#include <set>
48
52
53class VTK_SLICER_MARKUPS_MODULE_MRMLDISPLAYABLEMANAGER_EXPORT vtkMRMLMarkupsDisplayableManagerHelper :
54 public vtkObject
55{
56public:
57
60 void PrintSelf(ostream& os, vtkIndent indent) override;
61
62 vtkGetObjectMacro(DisplayableManager, vtkMRMLMarkupsDisplayableManager);
64
66 //void SetAllWidgetsToManipulate();
67
72
77
80
82 typedef std::map < vtkSmartPointer<vtkMRMLMarkupsDisplayNode>, vtkSlicerMarkupsWidget* > DisplayNodeToWidgetType;
83 typedef std::map < vtkSmartPointer<vtkMRMLMarkupsDisplayNode>, vtkSlicerMarkupsWidget* >::iterator DisplayNodeToWidgetIt;
84 DisplayNodeToWidgetType MarkupsDisplayNodesToWidgets; // display nodes with widgets assigned
85
86 typedef std::map<vtkSmartPointer<vtkMRMLMarkupsDisplayNode>, vtkSlicerMarkupsInteractionWidget*> DisplayNodeToInteractionWidgetType;
87 typedef std::map<vtkSmartPointer<vtkMRMLMarkupsDisplayNode>, vtkSlicerMarkupsInteractionWidget*>::iterator DisplayNodeToInteractionWidgetIt;
89
90 typedef std::set < vtkSmartPointer<vtkMRMLMarkupsNode> > MarkupsNodesType;
91 typedef std::set < vtkSmartPointer<vtkMRMLMarkupsNode> >::iterator MarkupsNodesIt;
92 MarkupsNodesType MarkupsNodes; // observed markups nodes
93
100
103
106
107protected:
108
111
112private:
113
115 void operator=(const vtkMRMLMarkupsDisplayableManagerHelper&) = delete;
116
119 std::map<vtkMRMLNode*, std::vector<int> > NodeGlyphTypes;
120
121 bool AddingMarkupsNode;
122
123 std::vector<unsigned long> ObservedMarkupNodeEvents;
124
125 vtkMRMLMarkupsDisplayableManager* DisplayableManager;
126};
127
128#endif
void RemoveObservations(vtkMRMLMarkupsNode *node)
void SetDisplayableManager(vtkMRMLMarkupsDisplayableManager *)
vtkSlicerMarkupsWidget * GetWidget(vtkMRMLMarkupsDisplayNode *markupsDisplayNode)
Set all widget status to manipulate.
vtkSlicerMarkupsInteractionWidget * GetInteractionWidget(vtkMRMLMarkupsDisplayNode *markupsDisplayNode)
Get a vtkSlicerMarkupsWidget* given a node.
void RemoveMarkupsNode(vtkMRMLMarkupsNode *node)
void AddInteractionWidget(vtkMRMLMarkupsDisplayNode *displayNode)
void AddMarkupsNode(vtkMRMLMarkupsNode *node)
static vtkMRMLMarkupsDisplayableManagerHelper * New()
std::set< vtkSmartPointer< vtkMRMLMarkupsNode > > MarkupsNodesType
std::map< vtkSmartPointer< vtkMRMLMarkupsDisplayNode >, vtkSlicerMarkupsInteractionWidget * > DisplayNodeToInteractionWidgetType
void RemoveAllWidgetsAndNodes()
Remove all widgets, intersection widgets, nodes.
void RemoveDisplayNode(vtkMRMLMarkupsDisplayNode *displayNode)
vtkSlicerMarkupsWidget * GetWidget(vtkMRMLMarkupsNode *markupsNode)
Get first visible widget for this markup.
std::map< vtkSmartPointer< vtkMRMLMarkupsDisplayNode >, vtkSlicerMarkupsInteractionWidget * >::iterator DisplayNodeToInteractionWidgetIt
void PrintSelf(ostream &os, vtkIndent indent) override
std::map< vtkSmartPointer< vtkMRMLMarkupsDisplayNode >, vtkSlicerMarkupsWidget * >::iterator DisplayNodeToWidgetIt
vtkSlicerMarkupsInteractionWidget * GetInteractionWidget(vtkMRMLMarkupsNode *markupsNode)
Get first visible widget for this markup.
void AddWidget(vtkMRMLMarkupsDisplayNode *displayNode)
DisplayNodeToInteractionWidgetType MarkupsDisplayNodesToInteractionWidgets
void DeleteWidget(vtkSlicerMarkupsWidget *widget)
void DeleteInteractionWidget(vtkSlicerMarkupsInteractionWidget *widget)
std::set< vtkSmartPointer< vtkMRMLMarkupsNode > >::iterator MarkupsNodesIt
void AddObservations(vtkMRMLMarkupsNode *node)
std::map< vtkSmartPointer< vtkMRMLMarkupsDisplayNode >, vtkSlicerMarkupsWidget * > DisplayNodeToWidgetType
Map of vtkWidget indexed using associated node ID.
void AddDisplayNode(vtkMRMLMarkupsDisplayNode *displayNode)
Process interaction events to update state of interaction widgets.
Process interaction events to update state of markup widget nodes.