Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef MITKVTKLAYERCONTROLLER_H_HEADER_INCLUDED_C1EDO02D
00019 #define MITKVTKLAYERCONTROLLER_H_HEADER_INCLUDED_C1EDO02D
00020
00021 #include <vector>
00022 #include <map>
00023 #include "mitkCommon.h"
00024
00025 class vtkRenderWindow;
00026 class vtkRenderer;
00027
00028 namespace mitk
00029 {
00030
00031
00040 class MITK_CORE_EXPORT VtkLayerController
00041 {
00042 public:
00043 static VtkLayerController* GetInstance(vtkRenderWindow* renWin);
00044 static void AddInstance(vtkRenderWindow* renWin, vtkRenderer * mitkSceneRenderer);
00045 static void RemoveInstance(vtkRenderWindow* renWin);
00046
00047 VtkLayerController(vtkRenderWindow* renderWindow);
00048 virtual ~VtkLayerController();
00049
00053 vtkRenderer* GetSceneRenderer();
00054
00060 void InsertBackgroundRenderer(vtkRenderer* renderer, bool forceAbsoluteBackground);
00061
00067 void InsertForegroundRenderer(vtkRenderer* renderer, bool forceAbsoluteForeground);
00068
00073 void InsertSceneRenderer(vtkRenderer* renderer);
00074
00078 void SetRenderWindow(vtkRenderWindow* renwin);
00079
00084 void RemoveRenderer(vtkRenderer* renderer);
00085
00089 bool IsRendererInserted(vtkRenderer* renderer);
00090
00094 unsigned int GetNumberOfRenderers();
00095
00096 void SetEraseForAllRenderers(int i);
00097 protected:
00098 vtkRenderWindow* m_RenderWindow;
00099
00100 private:
00101
00107 void UpdateLayers();
00108
00109
00110 typedef std::vector<vtkRenderer*> RendererVectorType;
00111 RendererVectorType m_BackgroundRenderers;
00112 RendererVectorType m_SceneRenderers;
00113 RendererVectorType m_ForegroundRenderers;
00114
00115 typedef std::map<const vtkRenderWindow*,mitk::VtkLayerController*> vtkLayerControllerMapType;
00116 static vtkLayerControllerMapType s_LayerControllerMap;
00117
00118 };
00119
00120 }
00121
00122
00123
00124
00125 #endif
00126
00127