Medical Imaging Interaction Toolkit  2018.4.99-389bf124
Medical Imaging Interaction Toolkit
vtkMitkRenderProp.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 "vtkMitkRenderProp.h"
14 
15 #include <vtkObjectFactory.h>
16 #include <vtkPropAssembly.h>
17 #include <vtkInformation.h>
18 
19 #include "mitkVtkMapper.h"
20 
22 
24 {
25 }
27 {
28 }
29 
31 {
32  return const_cast<double *>(m_VtkPropRenderer->GetBounds());
33 }
34 
36 {
37  this->m_VtkPropRenderer = propRenderer;
38 }
39 
40 void vtkMitkRenderProp::SetPropertyKeys(vtkInformation *keys)
41 {
42  Superclass::SetPropertyKeys(keys);
43 
44  if (nullptr != m_VtkPropRenderer)
45  m_VtkPropRenderer->SetPropertyKeys(keys);
46 }
47 
48 int vtkMitkRenderProp::RenderOpaqueGeometry(vtkViewport * /*viewport*/)
49 {
51 }
52 
53 int vtkMitkRenderProp::RenderOverlay(vtkViewport * /*viewport*/)
54 {
56 }
57 
59 {
60  m_VtkPropRenderer->ReleaseGraphicsResources(window);
61 }
62 
64 {
65  m_VtkPropRenderer->InitPathTraversal();
66 }
67 
69 {
70  return m_VtkPropRenderer->GetNextPath();
71 }
72 
74 {
75  return m_VtkPropRenderer->GetNumberOfPaths();
76 }
77 
79 {
80  for (const auto &mapEntry : m_VtkPropRenderer->GetMappersMap())
81  {
82  auto vtkMapper = dynamic_cast<mitk::VtkMapper*>(mapEntry.second);
83 
84  if (nullptr != vtkMapper)
85  {
86  // Due to VTK 5.2 bug, we need to initialize the Paths object in vtkPropAssembly
87  // manually (see issue #8186 committed to VTK's Mantis issue tracker)
88  // --> VTK bug resolved on 2008-12-01
89  auto propAssembly = dynamic_cast<vtkPropAssembly *>(vtkMapper->GetVtkProp(m_VtkPropRenderer));
90 
91  if (nullptr != propAssembly)
92  propAssembly->InitPathTraversal();
93 
94  if (1 == vtkMapper->GetVtkProp(m_VtkPropRenderer)->HasTranslucentPolygonalGeometry())
95  return 1;
96  }
97  }
98 
99  return 0;
100 }
101 
103 {
105 }
107 {
109 }
mitk::VtkPropRenderer::Pointer m_VtkPropRenderer
int RenderTranslucentPolygonalGeometry(vtkViewport *) override
void SetPropRenderer(mitk::VtkPropRenderer::Pointer propRenderer)
int RenderVolumetricGeometry(vtkViewport *) override
vtkMitkRenderProp
void SetPropertyKeys(vtkInformation *keys) override
Store a vtkInformation object.
Base class of all Vtk Mappers in order to display primitives by exploiting Vtk functionality.
Definition: mitkVtkMapper.h:48
int RenderOverlay(vtkViewport *viewport) override
int GetNumberOfPaths() override
~vtkMitkRenderProp() override
void InitPathTraversal() override
Used by vtkPointPicker/vtkPicker. This will query a list of all objects in MITK and provide every vtk...
vtkAssemblyPath * GetNextPath() override
Used by vtkPointPicker/vtkPicker. This will query a list of all objects in MITK and provide every vtk...
int RenderOpaqueGeometry(vtkViewport *viewport) override
double * GetBounds() override
vtkStandardNewMacro(vtkMitkRenderProp)
void ReleaseGraphicsResources(vtkWindow *window) override
int HasTranslucentPolygonalGeometry() override