Slicer 5.9
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
vtkMRMLDisplayableManagerGroup.h
Go to the documentation of this file.
1/*==============================================================================
2
3 Program: 3D Slicer
4
5 Copyright (c) Kitware Inc.
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 This file was originally developed by Jean-Christophe Fillion-Robin, Kitware Inc.
17 and was partially funded by NIH grant 3P41RR013218-12S1
18
19==============================================================================*/
20
21#ifndef __vtkMRMLDisplayableManagerGroup_h
22#define __vtkMRMLDisplayableManagerGroup_h
23
24// VTK includes
25#include <vtkObject.h>
26
27#include "vtkMRMLDisplayableManagerExport.h"
28
31class vtkMRMLNode;
32class vtkRenderer;
33class vtkRenderWindowInteractor;
34
42class VTK_MRML_DISPLAYABLEMANAGER_EXPORT vtkMRMLDisplayableManagerGroup : public vtkObject
43{
44public:
46 vtkTypeMacro(vtkMRMLDisplayableManagerGroup, vtkObject);
47 void PrintSelf(ostream& os, vtkIndent indent) override;
48
53 void Initialize(vtkMRMLDisplayableManagerFactory* factory, vtkRenderer* renderer);
54
57
60
63
65
68
72 void SetRenderer(vtkRenderer* newRenderer);
73
75 vtkRenderWindowInteractor* GetInteractor();
76
82
84 vtkRenderer* GetRenderer();
85
88 void SetMRMLDisplayableNode(vtkMRMLNode* newMRMLDisplayableNode);
89
95 static bool IsADisplayableManager(const char* displayableManagerName);
96
100 static vtkMRMLAbstractDisplayableManager* InstantiateDisplayableManager(const char* displayableManagerName);
101
102protected:
105
107 static void DoCallback(vtkObject* vtk_obj, unsigned long event, void* client_data, void* call_data);
110 void onDisplayableManagerFactoryRegisteredEvent(const char* displayableManagerName);
111 void onDisplayableManagerFactoryUnRegisteredEvent(const char* displayableManagerName);
112
113 class vtkInternal;
114 vtkInternal* Internal;
115
116private:
118 void operator=(const vtkMRMLDisplayableManagerGroup&) = delete;
119};
120
121#endif
Superclass for displayable manager classes.
Factory where displayable manager classes are registered.
~vtkMRMLDisplayableManagerGroup() override
void SetAndObserveDisplayableManagerFactory(vtkMRMLDisplayableManagerFactory *factory)
Set and observe DisplayableManager factory.
void AddDisplayableManager(vtkMRMLAbstractDisplayableManager *displayableManager)
Add a DisplayableManager and initialize it if required.
vtkRenderWindowInteractor * GetInteractor()
Convenient method to get the WindowInteractor associated with the Renderer.
static vtkMRMLAbstractDisplayableManager * InstantiateDisplayableManager(const char *displayableManagerName)
void PrintSelf(ostream &os, vtkIndent indent) override
void SetRenderer(vtkRenderer *newRenderer)
void onDisplayableManagerFactoryUnRegisteredEvent(const char *displayableManagerName)
int GetDisplayableManagerCount()
Return the number of DisplayableManager already added to the group.
void SetMRMLDisplayableNode(vtkMRMLNode *newMRMLDisplayableNode)
vtkMRMLAbstractDisplayableManager * GetNthDisplayableManager(int n)
void Initialize(vtkMRMLDisplayableManagerFactory *factory, vtkRenderer *renderer)
void onDisplayableManagerFactoryRegisteredEvent(const char *displayableManagerName)
static bool IsADisplayableManager(const char *displayableManagerName)
vtkMRMLNode * GetMRMLDisplayableNode()
Set / Get MRML Displayable Node.
static void DoCallback(vtkObject *vtk_obj, unsigned long event, void *client_data, void *call_data)
vtkMRMLAbstractDisplayableManager * GetDisplayableManagerByClassName(const char *className)
Return a DisplayableManager given its class name.
static vtkMRMLDisplayableManagerGroup * New()
vtkRenderer * GetRenderer()
Get Renderer.
Abstract Superclass for all specific types of MRML nodes.