Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
mitkVtkLayerController.h
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 #ifndef mitkVtkLayerController_h
14 #define mitkVtkLayerController_h
15 
16 #include <MitkCoreExports.h>
17 #include <map>
18 #include <vector>
19 #include <vtkSmartPointer.h>
20 
21 class vtkRenderWindow;
22 class vtkRenderer;
23 
24 namespace mitk
25 {
34  {
35  public:
43 
51 
58 
65 
71 
80  void InsertBackgroundRenderer(vtkSmartPointer<vtkRenderer> renderer, bool forceAbsoluteBackground);
81 
90  void InsertForegroundRenderer(vtkSmartPointer<vtkRenderer> renderer, bool forceAbsoluteForeground);
91 
100 
106 
112 
120 
125  unsigned int GetNumberOfRenderers();
126 
132 
133  protected:
135 
136  private:
142  void UpdateLayers();
143 
144  // Layer Management
145  typedef std::vector<vtkSmartPointer<vtkRenderer>> RendererVectorType;
146  RendererVectorType m_BackgroundRenderers;
147  RendererVectorType m_SceneRenderers;
148  RendererVectorType m_ForegroundRenderers;
149 
150  typedef std::map<const vtkSmartPointer<vtkRenderWindow>, mitk::VtkLayerController *> vtkLayerControllerMapType;
151  static vtkLayerControllerMapType s_LayerControllerMap;
152  };
153 
154 } // Namespace MITK
155 #endif
#define MITKCORE_EXPORT
Manages the VTK layer hierarchy of a vtkRenderWindow.
void SetEraseForAllRenderers(int i)
Set the erase flag for all registered renderers.
static void RemoveInstance(vtkSmartPointer< vtkRenderWindow > renWin)
Remove the VtkLayerController instance for the given render window.
void SetRenderWindow(vtkSmartPointer< vtkRenderWindow > renwin)
Set the VTK render window managed by this controller.
vtkSmartPointer< vtkRenderer > GetSceneRenderer()
Return the current scene renderer.
void InsertForegroundRenderer(vtkSmartPointer< vtkRenderer > renderer, bool forceAbsoluteForeground)
Insert a renderer into the foreground layer.
void InsertSceneRenderer(vtkSmartPointer< vtkRenderer > renderer)
Insert a renderer into the scene layer.
VtkLayerController(vtkSmartPointer< vtkRenderWindow > renderWindow)
Construct a VtkLayerController for the given render window.
vtkSmartPointer< vtkRenderWindow > m_RenderWindow
void RemoveRenderer(vtkSmartPointer< vtkRenderer > renderer)
Remove a previously inserted renderer from the render window.
static void AddInstance(vtkSmartPointer< vtkRenderWindow > renWin, vtkSmartPointer< vtkRenderer > mitkSceneRenderer)
Register a new VtkLayerController instance for the given render window.
void InsertBackgroundRenderer(vtkSmartPointer< vtkRenderer > renderer, bool forceAbsoluteBackground)
Insert a renderer into the background layer.
unsigned int GetNumberOfRenderers()
Return the total number of renderers in the render window.
static VtkLayerController * GetInstance(vtkSmartPointer< vtkRenderWindow > renWin)
Return the VtkLayerController instance for the given render window.
bool IsRendererInserted(vtkSmartPointer< vtkRenderer > renderer)
Check whether a renderer has been inserted.
Find image slices visible on a given plane.