Medical Imaging Interaction Toolkit  2023.12.00
Medical Imaging Interaction Toolkit
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
mitkExtractDirectedPlaneImageFilter.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 mitkExtractDirectedPlaneImageFilter_h
14 #define mitkExtractDirectedPlaneImageFilter_h
15 
16 #include "mitkImageToImageFilter.h"
18 
20 #include "vtkImageReslice.h"
21 
22 #define setMacro(name, type) \
23  virtual void Set##name(type _arg) \
24  { \
25  if (this->m_##name != _arg) \
26  { \
27  this->m_##name = _arg; \
28  } \
29  }
30 
31 #define getMacro(name, type) \
32  virtual type Get##name() { return m_##name; }
33 class vtkPoints;
34 
35 namespace mitk
36 {
61  {
62  public:
64  itkFactorylessNewMacro(Self);
65  itkCloneMacro(Self);
66  itkSetMacro(WorldGeometry, PlaneGeometry *);
67 
68  // The Reslicer is accessible to configure the desired interpolation;
69  // (See vtk::ImageReslice class for documentation).
70  // Misusage is at your own risk...
71  itkGetMacro(Reslicer, vtkImageReslice *);
72 
73  // The target timestep in a 4D image from which the 2D plane is supposed
74  // to be extracted.
75  itkSetMacro(TargetTimestep, unsigned int);
76  itkGetMacro(TargetTimestep, unsigned int);
77 
78  itkSetMacro(InPlaneResampleExtentByGeometry, bool);
79  itkGetMacro(InPlaneResampleExtentByGeometry, bool);
80 
81  setMacro(ResliceInterpolationProperty, VtkResliceInterpolationProperty *);
82  itkGetMacro(ResliceInterpolationProperty, VtkResliceInterpolationProperty *);
83 
84  setMacro(IsMapperMode, bool);
85  getMacro(IsMapperMode, bool);
86 
87  protected:
88  ExtractDirectedPlaneImageFilter(); // purposely hidden
90 
91  void GenerateData() override;
92  void GenerateOutputInformation() override;
93 
94  bool CalculateClippedPlaneBounds(const BaseGeometry *boundingGeometry,
95  const PlaneGeometry *planeGeometry,
96  double *bounds);
97  bool LineIntersectZero(vtkPoints *points, int p1, int p2, double *bounds);
98 
100  vtkImageReslice *m_Reslicer;
101 
102  unsigned int m_TargetTimestep;
107 
109  };
110 
111 } // namespace mitk
112 
113 #endif
mitkImageToImageFilter.h
mitk::PlaneGeometry
Describes a two-dimensional, rectangular plane.
Definition: mitkPlaneGeometry.h:78
mitk::ExtractDirectedPlaneImageFilter::m_ResliceInterpolationProperty
VtkResliceInterpolationProperty * m_ResliceInterpolationProperty
Definition: mitkExtractDirectedPlaneImageFilter.h:108
mitk::ExtractDirectedPlaneImageFilter::m_IsMapperMode
bool m_IsMapperMode
Definition: mitkExtractDirectedPlaneImageFilter.h:106
mitk::ExtractDirectedPlaneImageFilter::m_Reslicer
vtkImageReslice * m_Reslicer
Definition: mitkExtractDirectedPlaneImageFilter.h:100
mitk
Find image slices visible on a given plane.
Definition: RenderingTests.dox:1
getMacro
#define getMacro(name, type)
Definition: mitkExtractDirectedPlaneImageFilter.h:31
mitk::BaseDataSource
Superclass of all classes generating some kind of mitk::BaseData.
Definition: mitkBaseDataSource.h:71
mitk::ExtractDirectedPlaneImageFilter::m_ThickSlicesMode
int m_ThickSlicesMode
Definition: mitkExtractDirectedPlaneImageFilter.h:104
mitk::PlaneClipping::CalculateClippedPlaneBounds
static bool CalculateClippedPlaneBounds(const BaseGeometry *boundingGeometry, const PlaneGeometry *planeGeometry, double *bounds)
Calculate the bounding box of the resliced image. This is necessary for arbitrarily rotated planes in...
Definition: mitkPlaneClipping.h:65
mitk::ExtractDirectedPlaneImageFilter
Extracts a 2D slice of arbitrary geometry from a 3D or 4D image.
Definition: mitkExtractDirectedPlaneImageFilter.h:60
mitk::PlaneClipping::LineIntersectZero
static bool LineIntersectZero(vtkPoints *points, int p1, int p2, double *bounds)
Internal helper method for intersection testing used only in CalculateClippedPlaneBounds()
Definition: mitkPlaneClipping.h:27
mitk::BaseGeometry
BaseGeometry Describes the geometry of a data object.
Definition: mitkBaseGeometry.h:94
setMacro
#define setMacro(name, type)
Definition: mitkExtractDirectedPlaneImageFilter.h:22
mitkVtkResliceInterpolationProperty.h
MITKIMAGEEXTRACTION_EXPORT
#define MITKIMAGEEXTRACTION_EXPORT
Definition: MitkImageExtractionExports.h:15
mitk::ExtractDirectedPlaneImageFilter::m_WorldGeometry
const PlaneGeometry * m_WorldGeometry
Definition: mitkExtractDirectedPlaneImageFilter.h:99
mitk::VtkResliceInterpolationProperty
Definition: mitkVtkResliceInterpolationProperty.h:33
mitk::ExtractDirectedPlaneImageFilter::m_InPlaneResampleExtentByGeometry
bool m_InPlaneResampleExtentByGeometry
Definition: mitkExtractDirectedPlaneImageFilter.h:103
mitkClassMacro
#define mitkClassMacro(className, SuperClassName)
Definition: mitkCommon.h:36
MitkImageExtractionExports.h
mitk::ImageToImageFilter
Superclass of all classes having one or more Images as input and generating Images as output.
Definition: mitkImageToImageFilter.h:25
mitk::ExtractDirectedPlaneImageFilter::m_TargetTimestep
unsigned int m_TargetTimestep
Definition: mitkExtractDirectedPlaneImageFilter.h:102
mitk::ExtractDirectedPlaneImageFilter::m_ThickSlicesNum
int m_ThickSlicesNum
Definition: mitkExtractDirectedPlaneImageFilter.h:105