Medical Imaging Interaction Toolkit  2025.12.02
Medical Imaging Interaction Toolkit
mitkPlaneGeometryDataToSurfaceFilter.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 mitkPlaneGeometryDataToSurfaceFilter_h
14 #define mitkPlaneGeometryDataToSurfaceFilter_h
15 
16 #include "mitkGeometry3D.h"
17 #include "mitkSurfaceSource.h"
18 #include "vtkSystemIncludes.h"
19 
20 class vtkPlaneSource;
21 class vtkTransformPolyDataFilter;
22 class vtkCubeSource;
23 class vtkTransform;
24 class vtkPlane;
25 class vtkCutter;
26 class vtkPolyData;
27 class vtkPPolyDataNormals;
28 class vtkTextureMapToPlane;
29 class vtkBox;
30 class vtkClipPolyData;
31 class vtkContourTriangulator;
32 
33 namespace mitk
34 {
35  class PlaneGeometryData;
36  class PlaneGeometryDataToSurfaceFilter;
58  {
59  public:
61  itkFactorylessNewMacro(Self);
62  itkCloneMacro(Self);
63 
64  void GenerateOutputInformation() override;
65 
66  void GenerateData() override;
67 
69  const PlaneGeometryData *GetInput(unsigned int idx);
70 
71  virtual void SetInput(const PlaneGeometryData *image);
72  using itk::ProcessObject::SetInput;
73  virtual void SetInput(unsigned int index, const PlaneGeometryData *image);
74 
78  itkGetMacro(UseGeometryParametricBounds, bool);
82  itkSetMacro(UseGeometryParametricBounds, bool);
83 
92  itkGetMacro(XResolution, int);
101  itkSetMacro(XResolution, int);
102 
111  itkGetMacro(YResolution, int);
112 
121  itkSetMacro(YResolution, int);
122 
132  itkGetConstMacro(PlaceByGeometry, bool);
133 
143  itkSetMacro(PlaceByGeometry, bool);
144  itkBooleanMacro(PlaceByGeometry);
145 
146  itkGetConstMacro(UseBoundingBox, bool);
147  itkSetMacro(UseBoundingBox, bool);
148  itkBooleanMacro(UseBoundingBox);
149 
150  void SetBoundingBox(const BoundingBox *boundingBox);
151  const BoundingBox *GetBoundingBox() const;
152 
153  protected:
155 
157 
160  vtkPlaneSource *m_PlaneSource;
161 
165  vtkTransformPolyDataFilter *m_VtkTransformPlaneFilter;
166 
171 
181 
190 
200 
202 
203  BoundingBox::ConstPointer m_BoundingBox;
204 
205  vtkCubeSource *m_CubeSource;
206  vtkTransform *m_Transform;
207  vtkTransformPolyDataFilter *m_PolyDataTransformer;
208 
209  vtkPlane *m_Plane;
210  vtkCutter *m_PlaneCutter;
211  vtkContourTriangulator *m_ContourTriangulator;
212  vtkPPolyDataNormals *m_NormalsUpdater;
213  vtkTextureMapToPlane *m_TextureMapToPlane;
214 
215  vtkBox *m_Box;
216  vtkClipPolyData *m_PlaneClipper;
217  };
218 } // namespace mitk
219 
220 #endif
#define MITKCORE_EXPORT
Superclass of all classes having a PlaneGeometryData as input and generating Images as output.
virtual void SetInput(const PlaneGeometryData *image)
vtkTransformPolyDataFilter * m_VtkTransformPlaneFilter
Filter to create the vtk-representation of the PlaneGeometry, which is a transformation of the m_Plan...
const BoundingBox * GetBoundingBox() const
const PlaneGeometryData * GetInput(void)
mitkClassMacro(PlaneGeometryDataToSurfaceFilter, SurfaceSource)
vtkPlaneSource * m_PlaneSource
Source to create the vtk-representation of the parameter space rectangle of the PlaneGeometry.
virtual void SetInput(unsigned int index, const PlaneGeometryData *image)
bool m_PlaceByGeometry
Define whether the Surface is at the origin and placed using the Geometry.
void SetBoundingBox(const BoundingBox *boundingBox)
bool m_UseGeometryParametricBounds
If true, use Geometry3D::GetParametricBounds() to define the resolution in parameter space,...
const PlaneGeometryData * GetInput(unsigned int idx)
Data class containing PlaneGeometry objects.
Superclass of all classes generating surfaces (instances of class Surface) as output.
#define DEPRECATED(func)
Definition: mitkCommon.h:175
Find image slices visible on a given plane.
itk::BoundingBox< unsigned long, 3, ScalarType > BoundingBox
Standard 3D-BoundingBox typedef.