Medical Imaging Interaction Toolkit  2026.06.00
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;
55  {
56  public:
58  itkFactorylessNewMacro(Self);
59  itkCloneMacro(Self);
60 
62  void GenerateOutputInformation() override;
63 
65  void GenerateData() override;
66 
69 
74  const PlaneGeometryData *GetInput(unsigned int idx);
75 
80  virtual void SetInput(const PlaneGeometryData *image);
81  using itk::ProcessObject::SetInput;
82 
88  virtual void SetInput(unsigned int index, const PlaneGeometryData *image);
89 
93  itkGetMacro(UseGeometryParametricBounds, bool);
97  itkSetMacro(UseGeometryParametricBounds, bool);
98 
107  itkGetMacro(XResolution, int);
116  itkSetMacro(XResolution, int);
117 
126  itkGetMacro(YResolution, int);
127 
136  itkSetMacro(YResolution, int);
137 
147  itkGetConstMacro(PlaceByGeometry, bool);
148 
158  itkSetMacro(PlaceByGeometry, bool);
159  itkBooleanMacro(PlaceByGeometry);
160 
162  itkGetConstMacro(UseBoundingBox, bool);
164  itkSetMacro(UseBoundingBox, bool);
166  itkBooleanMacro(UseBoundingBox);
167 
172  void SetBoundingBox(const BoundingBox *boundingBox);
173 
178  const BoundingBox *GetBoundingBox() const;
179 
180  protected:
182 
184 
187  vtkPlaneSource *m_PlaneSource;
188 
192  vtkTransformPolyDataFilter *m_VtkTransformPlaneFilter;
193 
198 
208 
217 
227 
229 
230  BoundingBox::ConstPointer m_BoundingBox;
231 
232  vtkCubeSource *m_CubeSource;
233  vtkTransform *m_Transform;
234  vtkTransformPolyDataFilter *m_PolyDataTransformer;
235 
236  vtkPlane *m_Plane;
237  vtkCutter *m_PlaneCutter;
238  vtkContourTriangulator *m_ContourTriangulator;
239  vtkPPolyDataNormals *m_NormalsUpdater;
240  vtkTextureMapToPlane *m_TextureMapToPlane;
241 
242  vtkBox *m_Box;
243  vtkClipPolyData *m_PlaneClipper;
244  };
245 } // namespace mitk
246 
247 #endif
#define MITKCORE_EXPORT
Superclass of all classes having a PlaneGeometryData as input and generating Images as output.
virtual void SetInput(const PlaneGeometryData *image)
Set the PlaneGeometryData input (at index 0).
vtkTransformPolyDataFilter * m_VtkTransformPlaneFilter
Filter to create the vtk-representation of the PlaneGeometry, which is a transformation of the m_Plan...
const BoundingBox * GetBoundingBox() const
Get the bounding box used to clip the generated surface.
const PlaneGeometryData * GetInput(void)
Get the first PlaneGeometryData input.
mitkClassMacro(PlaneGeometryDataToSurfaceFilter, SurfaceSource)
vtkPlaneSource * m_PlaneSource
Source to create the vtk-representation of the parameter space rectangle of the PlaneGeometry.
void GenerateOutputInformation() override
Generate information about the output (size, spacing, etc.).
virtual void SetInput(unsigned int index, const PlaneGeometryData *image)
Set the PlaneGeometryData input at the given index.
bool m_PlaceByGeometry
Define whether the Surface is at the origin and placed using the Geometry.
void GenerateData() override
Generate the Surface output from the PlaneGeometryData input.
void SetBoundingBox(const BoundingBox *boundingBox)
Set the bounding box used to clip the generated surface.
bool m_UseGeometryParametricBounds
If true, use Geometry3D::GetParametricBounds() to define the resolution in parameter space,...
const PlaneGeometryData * GetInput(unsigned int idx)
Get the PlaneGeometryData input at the given index.
Data class containing PlaneGeometry objects.
Superclass of all classes generating surfaces (instances of class Surface) as output.
Find image slices visible on a given plane.
itk::BoundingBox< unsigned long, 3, ScalarType > BoundingBox
Standard 3D bounding box type.