Slicer 5.9
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
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#ifndef vtkMRMLMarkupsDisplayableManagerHelper_h
27#define vtkMRMLMarkupsDisplayableManagerHelper_h
28
29// MarkupsModule includes
30#include "vtkSlicerMarkupsModuleMRMLDisplayableManagerExport.h"
31
32// MarkupsModule/MRML includes
33#include <vtkMRMLMarkupsNode.h>
34
35// MarkupsModule/VTKWidgets includes
38
39// VTK includes
40#include <vtkSmartPointer.h>
41
42// MRML includes
43#include <vtkMRMLSliceNode.h>
44
45// STL includes
46#include <set>
47
51
52class VTK_SLICER_MARKUPS_MODULE_MRMLDISPLAYABLEMANAGER_EXPORT vtkMRMLMarkupsDisplayableManagerHelper : public vtkObject
53{
54public:
57 void PrintSelf(ostream& os, vtkIndent indent) override;
58
59 vtkGetObjectMacro(DisplayableManager, vtkMRMLMarkupsDisplayableManager);
61
63 // void SetAllWidgetsToManipulate();
64
69
74
77
79 typedef std::map<vtkSmartPointer<vtkMRMLMarkupsDisplayNode>, vtkSlicerMarkupsWidget*> DisplayNodeToWidgetType;
80 typedef std::map<vtkSmartPointer<vtkMRMLMarkupsDisplayNode>, vtkSlicerMarkupsWidget*>::iterator DisplayNodeToWidgetIt;
81 DisplayNodeToWidgetType MarkupsDisplayNodesToWidgets; // display nodes with widgets assigned
82
83 typedef std::map<vtkSmartPointer<vtkMRMLMarkupsDisplayNode>, vtkSlicerMarkupsInteractionWidget*> DisplayNodeToInteractionWidgetType;
84 typedef std::map<vtkSmartPointer<vtkMRMLMarkupsDisplayNode>, vtkSlicerMarkupsInteractionWidget*>::iterator DisplayNodeToInteractionWidgetIt;
86
87 typedef std::set<vtkSmartPointer<vtkMRMLMarkupsNode>> MarkupsNodesType;
88 typedef std::set<vtkSmartPointer<vtkMRMLMarkupsNode>>::iterator MarkupsNodesIt;
89 MarkupsNodesType MarkupsNodes; // observed markups nodes
90
97
100
103
104protected:
107
108private:
110 void operator=(const vtkMRMLMarkupsDisplayableManagerHelper&) = delete;
111
114 std::map<vtkMRMLNode*, std::vector<int>> NodeGlyphTypes;
115
116 bool AddingMarkupsNode;
117
118 std::vector<unsigned long> ObservedMarkupNodeEvents;
119
120 vtkMRMLMarkupsDisplayableManager* DisplayableManager;
121};
122
123#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::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::set< vtkSmartPointer< vtkMRMLMarkupsNode > > MarkupsNodesType
std::map< vtkSmartPointer< vtkMRMLMarkupsDisplayNode >, vtkSlicerMarkupsWidget * >::iterator DisplayNodeToWidgetIt
vtkSlicerMarkupsInteractionWidget * GetInteractionWidget(vtkMRMLMarkupsNode *markupsNode)
Get first visible widget for this markup.
std::map< vtkSmartPointer< vtkMRMLMarkupsDisplayNode >, vtkSlicerMarkupsWidget * > DisplayNodeToWidgetType
Map of vtkWidget indexed using associated node ID.
void AddWidget(vtkMRMLMarkupsDisplayNode *displayNode)
DisplayNodeToInteractionWidgetType MarkupsDisplayNodesToInteractionWidgets
void DeleteWidget(vtkSlicerMarkupsWidget *widget)
void DeleteInteractionWidget(vtkSlicerMarkupsInteractionWidget *widget)
std::set< vtkSmartPointer< vtkMRMLMarkupsNode > >::iterator MarkupsNodesIt
void AddObservations(vtkMRMLMarkupsNode *node)
void AddDisplayNode(vtkMRMLMarkupsDisplayNode *displayNode)
Process interaction events to update state of interaction widgets.
Process interaction events to update state of markup widget nodes.