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
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