Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
mitkHeightFieldSurfaceClipImageFilter.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 mitkHeightFieldSurfaceClipImageFilter_h
14 #define mitkHeightFieldSurfaceClipImageFilter_h
15 
17 #include <mitkCommon.h>
18 #include <mitkGeometry3D.h>
19 #include <mitkImageTimeSelector.h>
20 #include <mitkImageToImageFilter.h>
21 #include <mitkSurface.h>
22 
23 namespace itk
24 {
25  template <class TPixel, unsigned int VImageDimension>
26  class ITK_EXPORT Image;
27 }
28 
29 namespace mitk
30 {
44  {
45  public:
47  typedef std::vector<mitk::Surface *> ClippingPlaneList;
48 
50 
51  itkFactorylessNewMacro(Self);
52 
53  itkCloneMacro(Self);
54 
59  void SetClippingSurface(Surface *clippingSurface);
60 
66 
71  const Surface *GetClippingSurface() const;
72 
81  enum
82  {
83  CLIPPING_MODE_CONSTANT = 0,
85  CLIPPING_MODE_MULTIPLANE
86  };
87 
92  void SetClippingMode(int mode);
93 
99 
102 
105 
108 
113  itkSetMacro(ClippingConstant, ScalarType);
114 
119  itkGetConstMacro(ClippingConstant, ScalarType);
120 
125  itkSetMacro(MultiplicationFactor, ScalarType);
126 
131  itkGetConstMacro(MultiplicationFactor, ScalarType);
132 
137  itkSetMacro(HeightFieldResolutionX, unsigned int);
138 
143  itkGetConstMacro(HeightFieldResolutionX, unsigned int);
144 
149  itkSetMacro(HeightFieldResolutionY, unsigned int);
150 
155  itkGetConstMacro(HeightFieldResolutionY, unsigned int);
156 
157  protected:
159 
161 
163 
164  void GenerateOutputInformation() override;
165 
166  void GenerateData() override;
167 
168  template <typename TPixel, unsigned int VImageDimension>
169  void _InternalComputeClippedImage(itk::Image<TPixel, VImageDimension> *itkImage,
170  HeightFieldSurfaceClipImageFilter *clipImageFilter,
171  vtkPolyData *clippingPolyData,
172  AffineTransform3D *imageToPlaneTransform);
173 
174  ImageTimeSelector::Pointer m_InputTimeSelector;
175  ImageTimeSelector::Pointer m_OutputTimeSelector;
176 
178 
182 
185 
186  double m_MaxHeight;
187 
190  };
191 
192 } // namespace mitk
193 
194 #endif
#define MITKALGORITHMSEXT_EXPORT
Filter for clipping an image with an height-field represented by an mitk::Surface.
void SetClippingMode(int mode)
Set the clipping mode.
void SetClippingModeToMultiPlaneValue()
Set clipping mode to CLIPPING_MODE_MULTIPLANE.
void SetClippingModeToMultiplyByFactor()
Set clipping mode to CLIPPING_MODE_MULTIPLYBYFACTOR.
void SetClippingSurfaces(ClippingPlaneList planeList)
Set multiple surfaces for multi-plane clipping.
mitkClassMacro(HeightFieldSurfaceClipImageFilter, ImageToImageFilter)
int GetClippingMode()
Get the current clipping mode.
void _InternalComputeClippedImage(itk::Image< TPixel, VImageDimension > *itkImage, HeightFieldSurfaceClipImageFilter *clipImageFilter, vtkPolyData *clippingPolyData, AffineTransform3D *imageToPlaneTransform)
const Surface * GetClippingSurface() const
Get the clipping surface.
void SetClippingModeToConstant()
Set clipping mode to CLIPPING_MODE_CONSTANT.
itk::TimeStamp m_TimeOfHeaderInitialization
Time when Header was last initialized.
std::vector< mitk::Surface * > ClippingPlaneList
List of Surface pointers used for multi-plane clipping.
void SetClippingSurface(Surface *clippingSurface)
Set the surface defining a height field as a triangle mesh.
Superclass of all classes having one or more Images as input and generating Images as output.
Data class for storing polygonal surfaces (vtkPolyData).
Definition: mitkSurface.h:37
class ITK_EXPORT Image
Find image slices visible on a given plane.
itk::ScalableAffineTransform< ScalarType, 3 > AffineTransform3D
3D affine transform type used throughout MITK.
double ScalarType
Scalar type used throughout MITK for geometric computations.