Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
mitkBoundingShapeVtkMapper2D.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 mitkBoundingShapeVtkMapper2D_h
14 #define mitkBoundingShapeVtkMapper2D_h
15 
16 #include <mitkVtkMapper.h>
17 
19 
20 #include <vtkActor2D.h>
21 #include <vtkCutter.h>
22 #include <vtkPlane.h>
23 #include <vtkPolyDataMapper2D.h>
24 #include <vtkPropAssembly.h>
25 #include <vtkSmartPointer.h>
26 #include <vtkCubeSource.h>
27 
28 namespace mitk
29 {
39  {
40  class LocalStorage : public Mapper::BaseLocalStorage
41  {
42  public:
43  LocalStorage();
44  ~LocalStorage() override;
45 
46  bool IsUpdateRequired(mitk::BaseRenderer *renderer, mitk::Mapper *mapper, mitk::DataNode *dataNode);
47 
49  vtkSmartPointer<vtkActor2D> m_HandleActor;
50  vtkSmartPointer<vtkActor2D> m_SelectedHandleActor;
53  vtkSmartPointer<vtkPolyDataMapper2D> m_SelectedHandleMapper;
55  vtkSmartPointer<vtkPlane> m_CuttingPlane;
56  unsigned int m_LastSliceNumber;
57  std::vector<vtkSmartPointer<vtkCubeSource>> m_Handles;
58  vtkSmartPointer<vtkPropAssembly> m_PropAssembly;
59  double m_ZoomFactor;
60 
61  private:
62  LocalStorage(const LocalStorage &);
63  LocalStorage &operator=(const LocalStorage &);
64  };
65 
66  public:
73  static void SetDefaultProperties(DataNode *node, BaseRenderer *renderer = nullptr, bool overwrite = false);
74 
76  itkFactorylessNewMacro(Self);
77  itkCloneMacro(Self);
78 
80  void ApplyColorAndOpacityProperties(BaseRenderer *renderer, vtkActor *actor) override;
81 
87  vtkProp *GetVtkProp(BaseRenderer *renderer) override;
88 
89  private:
91  ~BoundingShapeVtkMapper2D() override;
92 
93  BoundingShapeVtkMapper2D(const Self &);
94  Self &operator=(const Self &);
95 
96  void GenerateDataForRenderer(BaseRenderer *renderer) override;
97  void Update(mitk::BaseRenderer *renderer) override;
98 
99  class Impl;
100  Impl *m_Impl;
101  };
102 }
103 
104 #endif
#define MITKBOUNDINGSHAPE_EXPORT
Organizes the rendering process.
VTK-based 2D mapper for rendering bounding shape cross-sections and handles.
mitkClassMacro(BoundingShapeVtkMapper2D, VtkMapper)
void ApplyColorAndOpacityProperties(BaseRenderer *renderer, vtkActor *actor) override
Apply color and opacity properties read from the PropertyList to the given vtkActor.
vtkProp * GetVtkProp(BaseRenderer *renderer) override
Get the VTK prop assembly for rendering.
static void SetDefaultProperties(DataNode *node, BaseRenderer *renderer=nullptr, bool overwrite=false)
Set default rendering properties for bounding shape 2D visualization.
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
Base class of all mappers, Vtk as well as OpenGL mappers.
Definition: mitkMapper.h:56
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.