Medical Imaging Interaction Toolkit  2018.4.99-389bf124
Medical Imaging Interaction Toolkit
mitkVolumeMapperVtkSmart3D.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 MITKVTKSMARTVOLUMEMAPPER_H_HEADER_INCLUDED
14 #define MITKVTKSMARTVOLUMEMAPPER_H_HEADER_INCLUDED
15 
16 // MITK
17 #include "MitkMapperExtExports.h"
18 #include "mitkBaseRenderer.h"
19 #include "mitkCommon.h"
20 #include "mitkImage.h"
21 #include "mitkVtkMapper.h"
22 
23 // VTK
24 #include <vtkImageChangeInformation.h>
25 #include <vtkSmartPointer.h>
26 #include <vtkVersionMacros.h>
27 #include <vtkVolumeProperty.h>
28 #include <vtkSmartVolumeMapper.h>
29 #include <vtkImageData.h>
30 #include <vtkImageChangeInformation.h>
31 
32 class vtkRenderingOpenGL2ObjectFactory;
33 class vtkRenderingVolumeOpenGL2ObjectFactory;
34 
35 namespace mitk
36 {
37 
38  //##Documentation
39  //## @brief Vtk-based mapper for VolumeData
40  //##
41  //## @ingroup Mapper
43  {
44  public:
46 
47  itkFactorylessNewMacro(Self);
48 
49  itkCloneMacro(Self);
50 
51  vtkProp *GetVtkProp(mitk::BaseRenderer *renderer) override;
52 
53  void ApplyProperties(vtkActor *actor, mitk::BaseRenderer *renderer) override;
54  static void SetDefaultProperties(mitk::DataNode *node, mitk::BaseRenderer *renderer = nullptr, bool overwrite = false);
55 
56  protected:
58  ~VolumeMapperVtkSmart3D() override;
59 
60  void GenerateDataForRenderer(mitk::BaseRenderer *renderer) override;
61 
62  void createMapper(vtkImageData*);
63  void createVolume();
64  void createVolumeProperty();
65  vtkImageData* GetInputImage();
66 
67  vtkSmartPointer<vtkVolume> m_Volume;
68  vtkSmartPointer<vtkImageChangeInformation> m_ImageChangeInformation;
69  vtkSmartPointer<vtkSmartVolumeMapper> m_SmartVolumeMapper;
70  vtkSmartPointer<vtkVolumeProperty> m_VolumeProperty;
71 
72  vtkSmartPointer<vtkRenderingOpenGL2ObjectFactory> m_RenderingOpenGL2ObjectFactory;
73  vtkSmartPointer<vtkRenderingVolumeOpenGL2ObjectFactory> m_RenderingVolumeOpenGL2ObjectFactory;
74 
75  void UpdateTransferFunctions(mitk::BaseRenderer *renderer);
76  void UpdateRenderMode(mitk::BaseRenderer *renderer);
77  };
78 
79 } // namespace mitk
80 
81 #endif /* MITKVTKSMARTVOLUMEMAPPER_H_HEADER_INCLUDED */
#define MITKMAPPEREXT_EXPORT
vtkSmartPointer< vtkSmartVolumeMapper > m_SmartVolumeMapper
Organizes the rendering process.
DataCollection - Class to facilitate loading/accessing structured data.
vtkSmartPointer< vtkVolume > m_Volume
vtkSmartPointer< vtkRenderingVolumeOpenGL2ObjectFactory > m_RenderingVolumeOpenGL2ObjectFactory
Base class of all Vtk Mappers in order to display primitives by exploiting Vtk functionality.
Definition: mitkVtkMapper.h:48
Base class of all mappers, Vtk as well as OpenGL mappers.
Definition: mitkMapper.h:49
vtkSmartPointer< vtkImageChangeInformation > m_ImageChangeInformation
vtkSmartPointer< vtkVolumeProperty > m_VolumeProperty
#define mitkClassMacro(className, SuperClassName)
Definition: mitkCommon.h:40
vtkSmartPointer< vtkRenderingOpenGL2ObjectFactory > m_RenderingOpenGL2ObjectFactory
Vtk-based mapper for VolumeData.
Class for nodes of the DataTree.
Definition: mitkDataNode.h:57