Medical Imaging Interaction Toolkit  2024.06.00
Medical Imaging Interaction Toolkit
mitkLandmarkProjector.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 mitkLandmarkProjector_h
14 #define mitkLandmarkProjector_h
15 
16 #include "itkObject.h"
17 #include <MitkCoreExports.h>
18 
19 #include "mitkPlaneGeometry.h"
20 #include "mitkPointSet.h"
21 
22 class vtkAbstractTransform;
23 
24 namespace mitk
25 {
26  //##Documentation
27  //## @brief Base-class of landmark-projectors, which project the target landmarks
28  //## to create source landmarks.
29  //##
30  //## @ingroup Geometry
31  class MITKCORE_EXPORT LandmarkProjector : public itk::Object
32  {
33  public:
35 
36  //##Documentation
37  //## @brief Set the interpolating (world-space-to-world-space) transform,
38  //## which uses the landmarks.
39  //##
40  //## \sa GetCompleteAbstractTransform
41  virtual void SetInterpolatingAbstractTransform(vtkAbstractTransform *anInterpolatingAbstractTransform);
42  //##Documentation
43  //## @brief Get the interpolating (world-space-to-world-space) transform,
44  //## which uses the landmarks.
45  //##
46  //## \sa GetCompleteAbstractTransform
47  //## \sa ComputeCompleteAbstractTransform
48  itkGetConstMacro(InterpolatingAbstractTransform, vtkAbstractTransform *);
49 
50  //##Documentation
51  //## @brief Set frame geometry within which the interpolation shall occur.
52  //##
53  //## Used as a hint, may be ignored depending on the concrete sub-classes.
54  itkSetConstObjectMacro(FrameGeometry, mitk::BaseGeometry);
55  //##Documentation
56  //## @brief Get frame geometry within which the interpolation shall occur.
57  //##
58  //## Used as a hint, may be ignored depending on the concrete sub-classes.
59  itkGetConstObjectMacro(FrameGeometry, mitk::BaseGeometry);
60 
61  //##Documentation
62  //## @brief Get the parameter plane for use in AbstractTransformGeometry::SetPlane.
63  //##
64  itkGetConstObjectMacro(ParameterPlane, mitk::PlaneGeometry);
65 
66  //##Documentation
67  //## @brief Get the projected landmarks.
68  //##
69  //## @note Valid only after calling ProjectLandmarks.
70  itkGetConstObjectMacro(ProjectedLandmarks, mitk::PointSet::DataType::PointsContainer);
71  //##Documentation
72  //## @brief Get the final target landmarks to use for the interpolating transform.
73  //##
74  //## @note Valid only after calling ProjectLandmarks.
75  itkGetConstObjectMacro(FinalTargetLandmarks, mitk::PointSet::DataType::PointsContainer);
76 
77  //##Documentation
78  //## @brief Get the transform from parameter space to world space incorporating
79  //## the given interpolating transform, which uses the landmarks.
80  //##
81  //## \sa ComputeCompleteAbstractTransform
82  //## \sa SetInterpolatingAbstractTransform
83  virtual vtkAbstractTransform *GetCompleteAbstractTransform() const;
84 
85  virtual void ProjectLandmarks(const mitk::PointSet::DataType::PointsContainer *targetLandmarks) = 0;
86 
87  protected:
89  ~LandmarkProjector() override;
90 
91  //##Documentation
92  //## @brief Compute the transform from parameter space to world space incorporating
93  //## the given interpolating transform, which uses the landmarks.
94  //##
95  //## Called after a new interpolating transform is set via
96  //## SetInterpolatingAbstractTransform().
97  //## \sa SetInterpolatingAbstractTransform
98  //## \sa GetCompleteAbstractTransform
99  virtual void ComputeCompleteAbstractTransform() = 0;
100 
101  vtkAbstractTransform *m_InterpolatingAbstractTransform;
102  vtkAbstractTransform *m_CompleteAbstractTransform;
105  mitk::PointSet::DataType::PointsContainer::Pointer m_WritableFinalTargetLandmarks;
106  mitk::PointSet::DataType::PointsContainer::ConstPointer m_FinalTargetLandmarks;
107  mitk::PointSet::DataType::PointsContainer::Pointer m_ProjectedLandmarks;
108  };
109 
110 } // namespace mitk
111 
112 #endif
mitk::LandmarkProjector
Base-class of landmark-projectors, which project the target landmarks to create source landmarks.
Definition: mitkLandmarkProjector.h:31
mitk::PlaneGeometry
Describes a two-dimensional, rectangular plane.
Definition: mitkPlaneGeometry.h:78
mitk::LandmarkProjector::m_FinalTargetLandmarks
mitk::PointSet::DataType::PointsContainer::ConstPointer m_FinalTargetLandmarks
Definition: mitkLandmarkProjector.h:106
itk::SmartPointer< const Self >
mitk::LandmarkProjector::m_InterpolatingAbstractTransform
vtkAbstractTransform * m_InterpolatingAbstractTransform
Definition: mitkLandmarkProjector.h:101
mitkClassMacroItkParent
#define mitkClassMacroItkParent(className, SuperClassName)
Definition: mitkCommon.h:45
mitkPointSet.h
mitk
Find image slices visible on a given plane.
Definition: RenderingTests.dox:1
mitk::LandmarkProjector::m_ParameterPlane
mitk::PlaneGeometry::ConstPointer m_ParameterPlane
Definition: mitkLandmarkProjector.h:104
MitkCoreExports.h
mitk::BaseGeometry
BaseGeometry Describes the geometry of a data object.
Definition: mitkBaseGeometry.h:94
mitk::LandmarkProjector::m_WritableFinalTargetLandmarks
mitk::PointSet::DataType::PointsContainer::Pointer m_WritableFinalTargetLandmarks
Definition: mitkLandmarkProjector.h:105
mitk::LandmarkProjector::m_CompleteAbstractTransform
vtkAbstractTransform * m_CompleteAbstractTransform
Definition: mitkLandmarkProjector.h:102
mitk::LandmarkProjector::m_FrameGeometry
mitk::BaseGeometry::ConstPointer m_FrameGeometry
Definition: mitkLandmarkProjector.h:103
mitk::LandmarkProjector::m_ProjectedLandmarks
mitk::PointSet::DataType::PointsContainer::Pointer m_ProjectedLandmarks
Definition: mitkLandmarkProjector.h:107
MITKCORE_EXPORT
#define MITKCORE_EXPORT
Definition: MitkCoreExports.h:15
mitkPlaneGeometry.h