Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
mitkSurfaceVtkMapper2D.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 mitkSurfaceVtkMapper2D_h
14 #define mitkSurfaceVtkMapper2D_h
15 
16 #include <mitkBaseRenderer.h>
18 #include <mitkVtkMapper.h>
19 #include <MitkCoreExports.h>
20 
21 // VTK
22 #include <vtkSmartPointer.h>
23 class vtkAssembly;
24 class vtkPolyDataPlaneCutter;
25 class vtkPlane;
26 class vtkLookupTable;
27 class vtkGlyph3D;
28 class vtkArrowSource;
29 class vtkReverseSense;
30 
31 namespace mitk
32 {
33  class Surface;
34 
57  {
58  public:
60 
61  itkFactorylessNewMacro(Self);
62 
63  itkCloneMacro(Self);
64 
69  virtual const mitk::Surface *GetInput() const;
70 
80  vtkProp *GetVtkProp(mitk::BaseRenderer *renderer) override;
81 
91  static void SetDefaultProperties(mitk::DataNode *node, mitk::BaseRenderer *renderer = nullptr, bool overwrite = false);
92 
95  {
96  public:
98  itk::TimeStamp m_LastUpdateTime;
107 
132 
137 
142 
147 
152 
157 
162 
166  ~LocalStorage() override;
167  };
168 
171 
182  void UpdateVtkTransform(mitk::BaseRenderer * /*renderer*/) override {}
183  protected:
188 
193 
198  void GenerateDataForRenderer(mitk::BaseRenderer *renderer) override;
199 
207  void ResetMapper(BaseRenderer *renderer) override;
208 
220  virtual void FixupLegacyProperties(PropertyList *properties);
221 
227 
232  void Update(BaseRenderer *renderer) override;
233  };
234 } // namespace mitk
235 #endif
#define MITKCORE_EXPORT
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
Key-value list holding instances of BaseProperty.
Internal class holding the mapper, actor, etc. for each of the 3 2D render windows.
vtkSmartPointer< vtkActor > m_NormalActor
m_NormalActor actor for the normals.
vtkSmartPointer< vtkPolyDataMapper > m_Mapper
m_Mapper VTK mapper for all types of 2D polydata e.g. werewolves.
vtkSmartPointer< vtkPlane > m_CuttingPlane
m_CuttingPlane The plane where to cut off the 2D slice.
itk::TimeStamp m_LastUpdateTime
Timestamp of last update of stored data.
vtkSmartPointer< vtkPolyDataPlaneCutter > m_Cutter
m_Cutter Filter to cut out the 2D slice.
vtkSmartPointer< vtkArrowSource > m_ArrowSource
m_ArrowSource Arrow representation of the normals.
vtkSmartPointer< vtkPolyDataMapper > m_InverseNormalMapper
m_InverseNormalMapper Mapper for the inverse normals.
vtkSmartPointer< vtkReverseSense > m_ReverseSense
m_ReverseSense Filter to invert the normals.
vtkSmartPointer< vtkActor > m_Actor
m_Actor actor for the surface cut.
LocalStorage()
Default constructor of the local storage.
vtkSmartPointer< vtkGlyph3D > m_NormalGlyph
m_NormalGlyph Glyph for creating normals.
~LocalStorage() override
Default deconstructor of the local storage.
vtkSmartPointer< vtkAssembly > m_PropAssembly
m_PropAssembly Contains all vtkProps for the final rendering.
vtkSmartPointer< vtkActor > m_InverseNormalActor
m_InverseNormalActor actor for the inverse normals.
vtkSmartPointer< vtkGlyph3D > m_InverseNormalGlyph
m_InverseNormalGlyph Glyph for creating inverse normals.
vtkSmartPointer< vtkPolyDataMapper > m_NormalMapper
m_NormalMapper Mapper for the normals.
Vtk-based mapper for cutting 2D slices out of Surfaces.
vtkProp * GetVtkProp(mitk::BaseRenderer *renderer) override
Get the VTK prop assembly for the given renderer.
~SurfaceVtkMapper2D() override
~SurfaceVtkMapper2D default destructor.
mitk::LocalStorageHandler< LocalStorage > m_LSH
The LocalStorageHandler holds all (three) LocalStorages for the three 2D render windows.
virtual void FixupLegacyProperties(PropertyList *properties)
Updates legacy properties to current behavior/interpretation.
SurfaceVtkMapper2D()
SurfaceVtkMapper2D default constructor.
void ResetMapper(BaseRenderer *renderer) override
ResetMapper Called in mitk::Mapper::Update to hide objects. If TimeGeometry or time step is not valid...
virtual const mitk::Surface * GetInput() const
Get the input Surface from the associated DataNode.
void ApplyAllProperties(BaseRenderer *renderer)
ApplyAllProperties Pass all the properties to VTK.
void GenerateDataForRenderer(mitk::BaseRenderer *renderer) override
GenerateDataForRenderer produces all the data.
mitkClassMacro(SurfaceVtkMapper2D, VtkMapper)
void UpdateVtkTransform(mitk::BaseRenderer *) override
UpdateVtkTransform Overwrite the method of the base class.
static void SetDefaultProperties(mitk::DataNode *node, mitk::BaseRenderer *renderer=nullptr, bool overwrite=false)
Set the default properties for 2D surface rendering.
void Update(BaseRenderer *renderer) override
Update Check if data should be generated.
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.