00001 /*========================================================================= 00002 00003 Program: Medical Imaging & Interaction Toolkit 00004 Language: C++ 00005 Date: $Date: 2010-06-30 15:12:34 +0200 (Mi, 30. Jun 2010) $ 00006 Version: $Revision: 24176 $ 00007 00008 Copyright (c) German Cancer Research Center, Division of Medical and 00009 Biological Informatics. All rights reserved. 00010 See MITKCopyright.txt or https://www.mitk.org/copyright.html for details. 00011 00012 This software is distributed WITHOUT ANY WARRANTY; without even 00013 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00014 PURPOSE. See the above copyright notices for more information. 00015 00016 =========================================================================*/ 00017 00018 00019 #ifndef MITKRENDERWINDOWBASE_H_HEADER_INCLUDED_C1C40D66ASDF 00020 #define MITKRENDERWINDOWBASE_H_HEADER_INCLUDED_C1C40D66ASDF 00021 00022 #include "mitkCommon.h" 00023 00024 #include "mitkVtkPropRenderer.h" 00025 #include "vtkMitkRenderProp.h" 00026 #include "mitkSliceNavigationController.h" 00027 #include "mitkCameraRotationController.h" 00028 00029 namespace mitk 00030 { 00031 00043 class MITK_CORE_EXPORT RenderWindowBase 00044 { 00045 00046 00047 public: 00048 00049 //mitkClassMacro(RenderWindowBase,itk::Object); 00050 //itkNewMacro(Self); 00051 00052 00053 virtual ~RenderWindowBase(); 00054 00055 void InitRenderer(); 00056 00057 virtual mitk::SliceNavigationController * GetSliceNavigationController(); 00058 virtual mitk::CameraRotationController * GetCameraRotationController(); 00059 virtual mitk::BaseController * GetController(); 00060 virtual mitk::VtkPropRenderer* GetRenderer(); 00061 virtual vtkRenderWindow* GetVtkRenderWindow() = 0; 00062 virtual vtkRenderWindowInteractor* GetVtkRenderWindowInteractor() = 0; 00063 00064 00065 void SetProcessWheelEvents( bool state ); 00066 00067 bool GetProcessWheelEvents(); 00068 00069 virtual void mousePressMitkEvent(mitk::MouseEvent *me); 00070 virtual void mouseReleaseMitkEvent(mitk::MouseEvent *me); 00071 virtual void mouseMoveMitkEvent(mitk::MouseEvent *me); 00072 virtual void wheelMitkEvent(mitk::WheelEvent *we); 00073 virtual void keyPressMitkEvent(mitk::KeyEvent* mke); 00074 virtual void resizeMitkEvent(int width, int height); 00075 00076 protected: 00077 RenderWindowBase(); 00078 00079 // helper functions: within constructors and destructors classes are not polymorph. 00080 void Initialize( mitk::RenderingManager* renderingManager = NULL, const char* name = "unnamed renderer" ); 00081 void Destroy(); 00082 00083 mitk::VtkPropRenderer::Pointer m_Renderer; 00084 00085 vtkMitkRenderProp* m_RenderProp; 00086 00087 bool m_InResize; 00088 00089 bool m_ProcessWheelEvents; 00090 00091 private: 00092 00093 }; 00094 00095 } 00096 00097 #endif /* MITKRENDERWINDOWBASE_H_HEADER_INCLUDED_C1C40D66ASDF */