Medical Imaging Interaction Toolkit  2018.4.99-389bf124
Medical Imaging Interaction Toolkit
mitkRenderWindow.cpp
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 #include "mitkRenderWindow.h"
14 
15 #include "mitkVtkEventProvider.h"
16 #include "mitkVtkLayerController.h"
17 #include "vtkRenderWindowInteractor.h"
18 #include "vtkRenderer.h"
19 
20 mitk::RenderWindow::RenderWindow(vtkRenderWindow *renWin, const char *name)
21  : m_vtkRenderWindow(renWin),
22  m_vtkRenderWindowInteractor(nullptr),
23  m_vtkMitkEventProvider(nullptr)
24 {
25  if (nullptr == m_vtkRenderWindow)
26  {
27  m_vtkRenderWindow = vtkRenderWindow::New();
28  m_vtkRenderWindow->SetMultiSamples(0); // We do not support MSAA as it is incompatible with depth peeling
29  m_vtkRenderWindow->SetAlphaBitPlanes(1); // Necessary for depth peeling
30  }
31 
32  if (m_vtkRenderWindow->GetSize()[0] <= 10)
33  {
34  m_vtkRenderWindow->SetSize(100, 100);
35  }
36 
37  m_vtkRenderWindowInteractor = vtkRenderWindowInteractor::New();
39  m_vtkRenderWindowInteractor->Initialize();
40 
41  // initialize from RenderWindowBase
42  this->Initialize(name);
43 
48 }
49 
51 {
52  Destroy();
53  m_vtkRenderWindow->Delete();
55  m_vtkMitkEventProvider->Delete();
56 }
57 
59 {
60  return m_vtkRenderWindow;
61 }
62 
64 {
66 }
67 
68 void mitk::RenderWindow::SetSize(int width, int height)
69 {
70  this->GetVtkRenderWindow()->SetSize(width, height);
71 }
72 
74 {
79 }
vtkRenderWindow * GetVtkRenderWindow() override
RenderWindow(vtkRenderWindow *existingRenderWindow=nullptr, const char *name="unnamed renderer")
void SetInteractor(vtkRenderWindowInteractor *iren) override
void SetEnabled(int) override
static vtkEventProvider * New()
virtual void SetMitkRenderWindow(mitk::RenderWindow *renWin)
vtkRenderWindowInteractor * GetVtkRenderWindowInteractor() override
void Initialize(const char *name="unnamed renderer")
vtkRenderWindowInteractor * m_vtkRenderWindowInteractor
vtkEventProvider * m_vtkMitkEventProvider
vtkRenderWindow * m_vtkRenderWindow
void ReinitEventProvider()
Initializes the mitkVtkEventProvider to listen to the currently used vtkInteractorStyle.
void SetSize(int width, int height)
Convenience method to set the size of an mitkRenderWindow.