Medical Imaging Interaction Toolkit  2025.12.02
Medical Imaging Interaction Toolkit
mitkPlaneGeometryDataMapper2D.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 mitkPlaneGeometryDataMapper2D_h
14 #define mitkPlaneGeometryDataMapper2D_h
15 
16 #include "mitkBaseRenderer.h"
17 #include "mitkVtkMapper.h"
18 #include <MitkCoreExports.h>
19 #include <vtkSmartPointer.h>
20 
21 class vtkActor2D;
22 class vtkPropAssembly;
23 class vtkCellArray;
24 class vtkPolyDataMapper2D;
25 
26 namespace mitk
27 {
46  {
47  public:
49 
50  itkFactorylessNewMacro(Self);
51 
52  itkCloneMacro(Self);
53 
54  virtual const mitk::PlaneGeometryData *GetInput() const;
55 
57  vtkProp *GetVtkProp(mitk::BaseRenderer *renderer) override;
58 
60  virtual void ApplyAllProperties(BaseRenderer *renderer);
61 
63  static void SetDefaultProperties(mitk::DataNode *node, mitk::BaseRenderer *renderer = nullptr, bool overwrite = false);
64 
67  {
68  public:
69  /* constructor */
71 
72  /* destructor */
73  ~LocalStorage() override;
74 
75  // actor
83  };
84 
87 
88  protected:
89  /* constructor */
91 
92  /* destructor */
94 
95  /* \brief Applies the color and opacity properties and calls CreateVTKRenderObjects */
96  void GenerateDataForRenderer(mitk::BaseRenderer *renderer) override;
97 
99 
100  static bool TestPointInPlaneGeometry(const PlaneGeometry *planeGeometry, const Point3D &point);
101  static bool TestPointInReferenceGeometry(const BaseGeometry *referenceGeometry, const Point3D &point);
102 
103  static bool CutCrossLineWithPlaneGeometry(const PlaneGeometry *planeGeometry, Line3D &crossLine);
104  static bool CutCrossLineWithReferenceGeometry(const BaseGeometry *referenceGeometry, Line3D &crossLine);
105 
106  void DrawLine(Point3D p0, Point3D p1, vtkCellArray *lines, vtkPoints *points);
107 
108  // member variables holding the current value of the properties used in this mapper
109  typedef std::vector<DataNode *> NodesVectorType;
111 
112  typedef std::set<Self *> AllInstancesContainer;
114 
117 
118  void ApplyColorAndOpacityProperties2D(BaseRenderer *renderer, vtkActor2D *actor);
120  vtkSmartPointer<vtkPoints> triPoints,
121  double triangleSizeMM,
122  Vector3D &orthogonalVector,
123  Point3D &point1,
124  Point3D &point2);
125  };
126 } // namespace mitk
127 #endif
#define MITKCORE_EXPORT
BaseGeometry Describes the geometry of a data object.
Class for nodes of the DataTree.
Definition: mitkDataNode.h:64
Describes a line.
Definition: mitkLine.h:29
Base class for mapper specific rendering resources.
Definition: mitkMapper.h:191
Base class of all mappers, Vtk as well as OpenGL mappers.
Definition: mitkMapper.h:47
Internal class holding the mapper, actor, etc. for each of the 3 2D render windows.
vtkSmartPointer< vtkPolyDataMapper2D > m_HelperLinesmapper
vtkSmartPointer< vtkPolyDataMapper2D > m_Arrowmapper
Vtk-based 2D mapper for rendering a crosshair with the plane geometry.
void CreateVtkCrosshair(BaseRenderer *renderer)
virtual void ApplyAllProperties(BaseRenderer *renderer)
mitk::LocalStorageHandler< LocalStorage > m_LSH
The LocalStorageHandler holds all (three) LocalStorages for the three 2D render windows.
static bool TestPointInReferenceGeometry(const BaseGeometry *referenceGeometry, const Point3D &point)
static bool CutCrossLineWithPlaneGeometry(const PlaneGeometry *planeGeometry, Line3D &crossLine)
void GenerateDataForRenderer(mitk::BaseRenderer *renderer) override
Generate the data needed for rendering into renderer.
vtkProp * GetVtkProp(mitk::BaseRenderer *renderer) override
returns the a prop assembly
void ApplyColorAndOpacityProperties2D(BaseRenderer *renderer, vtkActor2D *actor)
virtual const mitk::PlaneGeometryData * GetInput() const
void DrawOrientationArrow(vtkSmartPointer< vtkCellArray > triangles, vtkSmartPointer< vtkPoints > triPoints, double triangleSizeMM, Vector3D &orthogonalVector, Point3D &point1, Point3D &point2)
static AllInstancesContainer s_AllInstances
static void SetDefaultProperties(mitk::DataNode *node, mitk::BaseRenderer *renderer=nullptr, bool overwrite=false)
set the default properties for this mapper
static bool CutCrossLineWithReferenceGeometry(const BaseGeometry *referenceGeometry, Line3D &crossLine)
void DrawLine(Point3D p0, Point3D p1, vtkCellArray *lines, vtkPoints *points)
static bool TestPointInPlaneGeometry(const PlaneGeometry *planeGeometry, const Point3D &point)
Data class containing PlaneGeometry objects.
Describes a two-dimensional, rectangular plane.
Base class of all Vtk Mappers in order to display primitives by exploiting Vtk functionality.
Definition: mitkVtkMapper.h:48
#define mitkClassMacro(className, SuperClassName)
Definition: mitkCommon.h:36
Find image slices visible on a given plane.