Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
mitkSurfaceVtkMapper3D.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 mitkSurfaceVtkMapper3D_h
14 #define mitkSurfaceVtkMapper3D_h
15 
16 #include <mitkBaseRenderer.h>
18 #include <mitkVtkMapper.h>
19 #include <MitkCoreExports.h>
20 #include <mitkSurface.h>
21 
22 #include <vtkActor.h>
23 #include <vtkDepthSortPolyData.h>
24 #include <vtkPlaneCollection.h>
25 #include <vtkPolyDataMapper.h>
26 #include <vtkPolyDataNormals.h>
27 #include <vtkSmartPointer.h>
28 
29 namespace mitk
30 {
75  {
76  public:
78 
79  itkFactorylessNewMacro(Self);
80 
81  itkCloneMacro(Self);
82 
86  itkSetMacro(GenerateNormals, bool);
87 
91  itkGetMacro(GenerateNormals, bool);
92 
97  virtual const mitk::Surface *GetInput();
98 
104  vtkProp *GetVtkProp(mitk::BaseRenderer *renderer) override;
105 
111  virtual void ApplyAllProperties(mitk::BaseRenderer *renderer, vtkActor *actor);
112 
123  static void SetDefaultProperties(mitk::DataNode *node, mitk::BaseRenderer *renderer = nullptr, bool overwrite = false);
124 
125  protected:
127 
129 
130  void GenerateDataForRenderer(mitk::BaseRenderer *renderer) override;
131 
132  void ResetMapper(mitk::BaseRenderer *renderer) override;
133 
137 
139 
140  public:
145  {
146  public:
158  itk::TimeStamp m_ShaderTimestampUpdate;
159 
161  {
162  m_VtkPolyDataMapper = vtkSmartPointer<vtkPolyDataMapper>::New();
163  m_VtkPolyDataNormals = vtkSmartPointer<vtkPolyDataNormals>::New();
164  m_Actor = vtkSmartPointer<vtkActor>::New();
165  m_ClippingPlaneCollection = vtkSmartPointer<vtkPlaneCollection>::New();
166 
167  m_Actor->SetMapper(m_VtkPolyDataMapper);
168 
170  }
171 
172  ~LocalStorage() override {}
173  };
174 
177 
189  vtkProperty *property,
190  mitk::BaseRenderer *renderer);
191 
198  static void SetDefaultPropertiesForVtkProperty(mitk::DataNode *node, mitk::BaseRenderer *renderer, bool overwrite);
199  };
200 } // namespace mitk
201 
202 #endif
#define MITKCORE_EXPORT
Abstract base class for properties.
Organizes the rendering process.
Central node class of the MITK data tree, associating a data object with properties and mappers.
Definition: mitkDataNode.h:72
Base class for mapper-specific rendering resources.
Definition: mitkMapper.h:181
Per-renderer storage holding VTK objects for 3D surface rendering.
vtkSmartPointer< vtkActor > m_Actor
The VTK actor representing the surface in 3D.
vtkSmartPointer< vtkPlaneCollection > m_ClippingPlaneCollection
Collection of clipping planes applied to the surface.
vtkSmartPointer< vtkPolyDataNormals > m_VtkPolyDataNormals
Filter for computing surface normals.
vtkSmartPointer< vtkPolyDataMapper > m_VtkPolyDataMapper
The VTK poly data mapper.
itk::TimeStamp m_ShaderTimestampUpdate
Timestamp tracking the last shader update.
vtkSmartPointer< vtkDepthSortPolyData > m_DepthSort
Filter for depth-sorting translucent polygons.
Vtk-based mapper for Surfaces.
static void SetDefaultPropertiesForVtkProperty(mitk::DataNode *node, mitk::BaseRenderer *renderer, bool overwrite)
Set default material properties for vtkProperty-based rendering.
void ResetMapper(mitk::BaseRenderer *renderer) override
Reset the mapper (i.e., make sure that nothing is displayed) if no valid data is present....
virtual const mitk::Surface * GetInput()
Get the input Surface from the associated DataNode.
virtual void ApplyAllProperties(mitk::BaseRenderer *renderer, vtkActor *actor)
Apply all material, color, opacity, and scalar visibility properties to the given actor.
virtual void CheckForClippingProperty(mitk::BaseRenderer *renderer, mitk::BaseProperty *property)
mitkClassMacro(SurfaceVtkMapper3D, VtkMapper)
vtkProp * GetVtkProp(mitk::BaseRenderer *renderer) override
Get the VTK prop (actor) for the given renderer.
static void SetDefaultProperties(mitk::DataNode *node, mitk::BaseRenderer *renderer=nullptr, bool overwrite=false)
Set default properties for 3D surface rendering on the given DataNode.
void GenerateDataForRenderer(mitk::BaseRenderer *renderer) override
Generate the data needed for rendering into renderer.
~SurfaceVtkMapper3D() override
static void ApplyMitkPropertiesToVtkProperty(mitk::DataNode *node, vtkProperty *property, mitk::BaseRenderer *renderer)
Apply MITK material properties from a DataNode to a vtkProperty.
mitk::LocalStorageHandler< LocalStorage > m_LSH
Handler managing per-renderer LocalStorage instances.
Data class for storing polygonal surfaces (vtkPolyData).
Definition: mitkSurface.h:37
Base class of all VTK-based Mappers for displaying primitives using VTK functionality.
Definition: mitkVtkMapper.h:53
Find image slices visible on a given plane.