Medical Imaging Interaction Toolkit  2018.4.99-389bf124
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_HEADER_INCLUDED_C1C68A2C
14 #define MITKLANDMARKPROJECTOR_H_HEADER_INCLUDED_C1C68A2C
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 /* MITKLANDMARKPROJECTOR_H_HEADER_INCLUDED_C1C68A2C */
mitk::PointSet::DataType::PointsContainer::Pointer m_WritableFinalTargetLandmarks
mitk::PlaneGeometry::ConstPointer m_ParameterPlane
#define MITKCORE_EXPORT
DataCollection - Class to facilitate loading/accessing structured data.
mitk::PointSet::DataType::PointsContainer::ConstPointer m_FinalTargetLandmarks
vtkAbstractTransform * m_InterpolatingAbstractTransform
mitk::BaseGeometry::ConstPointer m_FrameGeometry
Base-class of landmark-projectors, which project the target landmarks to create source landmarks...
#define mitkClassMacroItkParent(className, SuperClassName)
Definition: mitkCommon.h:49
vtkAbstractTransform * m_CompleteAbstractTransform
Describes a two-dimensional, rectangular plane.
mitk::PointSet::DataType::PointsContainer::Pointer m_ProjectedLandmarks
BaseGeometry Describes the geometry of a data object.