Medical Imaging Interaction Toolkit  2016.11.0
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,
6 Division of Medical and Biological Informatics.
7 All rights reserved.
8 
9 This software is distributed WITHOUT ANY WARRANTY; without
10 even the implied warranty of MERCHANTABILITY or FITNESS FOR
11 A PARTICULAR PURPOSE.
12 
13 See LICENSE.txt or http://www.mitk.org for details.
14 
15 ===================================================================*/
16 
17 #ifndef MITKLANDMARKPROJECTOR_H_HEADER_INCLUDED_C1C68A2C
18 #define MITKLANDMARKPROJECTOR_H_HEADER_INCLUDED_C1C68A2C
19 
20 #include "itkObject.h"
21 #include <MitkCoreExports.h>
22 
23 #include "mitkPlaneGeometry.h"
24 #include "mitkPointSet.h"
25 
26 class vtkAbstractTransform;
27 
28 namespace mitk
29 {
30  //##Documentation
31  //## @brief Base-class of landmark-projectors, which project the target landmarks
32  //## to create source landmarks.
33  //##
34  //## @ingroup Geometry
35  class MITKCORE_EXPORT LandmarkProjector : public itk::Object
36  {
37  public:
39 
40  //##Documentation
41  //## @brief Set the interpolating (world-space-to-world-space) transform,
42  //## which uses the landmarks.
43  //##
44  //## \sa GetCompleteAbstractTransform
45  virtual void SetInterpolatingAbstractTransform(vtkAbstractTransform *anInterpolatingAbstractTransform);
46  //##Documentation
47  //## @brief Get the interpolating (world-space-to-world-space) transform,
48  //## which uses the landmarks.
49  //##
50  //## \sa GetCompleteAbstractTransform
51  //## \sa ComputeCompleteAbstractTransform
52  itkGetConstMacro(InterpolatingAbstractTransform, vtkAbstractTransform *);
53 
54  //##Documentation
55  //## @brief Set frame geometry within which the interpolation shall occur.
56  //##
57  //## Used as a hint, may be ignored depending on the concrete sub-classes.
58  itkSetConstObjectMacro(FrameGeometry, mitk::BaseGeometry);
59  //##Documentation
60  //## @brief Get frame geometry within which the interpolation shall occur.
61  //##
62  //## Used as a hint, may be ignored depending on the concrete sub-classes.
63  itkGetConstObjectMacro(FrameGeometry, mitk::BaseGeometry);
64 
65  //##Documentation
66  //## @brief Get the parameter plane for use in AbstractTransformGeometry::SetPlane.
67  //##
68  itkGetConstObjectMacro(ParameterPlane, mitk::PlaneGeometry);
69 
70  //##Documentation
71  //## @brief Get the projected landmarks.
72  //##
73  //## @note Valid only after calling ProjectLandmarks.
74  itkGetConstObjectMacro(ProjectedLandmarks, mitk::PointSet::DataType::PointsContainer);
75  //##Documentation
76  //## @brief Get the final target landmarks to use for the interpolating transform.
77  //##
78  //## @note Valid only after calling ProjectLandmarks.
79  itkGetConstObjectMacro(FinalTargetLandmarks, mitk::PointSet::DataType::PointsContainer);
80 
81  //##Documentation
82  //## @brief Get the transform from parameter space to world space incorporating
83  //## the given interpolating transform, which uses the landmarks.
84  //##
85  //## \sa ComputeCompleteAbstractTransform
86  //## \sa SetInterpolatingAbstractTransform
87  virtual vtkAbstractTransform *GetCompleteAbstractTransform() const;
88 
89  virtual void ProjectLandmarks(const mitk::PointSet::DataType::PointsContainer *targetLandmarks) = 0;
90 
91  protected:
93  virtual ~LandmarkProjector();
94 
95  //##Documentation
96  //## @brief Compute the transform from parameter space to world space incorporating
97  //## the given interpolating transform, which uses the landmarks.
98  //##
99  //## Called after a new interpolating transform is set via
100  //## SetInterpolatingAbstractTransform().
101  //## \sa SetInterpolatingAbstractTransform
102  //## \sa GetCompleteAbstractTransform
103  virtual void ComputeCompleteAbstractTransform() = 0;
104 
105  vtkAbstractTransform *m_InterpolatingAbstractTransform;
106  vtkAbstractTransform *m_CompleteAbstractTransform;
112  };
113 
114 } // namespace mitk
115 
116 #endif /* MITKLANDMARKPROJECTOR_H_HEADER_INCLUDED_C1C68A2C */
mitk::PointSet::DataType::PointsContainer::Pointer m_WritableFinalTargetLandmarks
mitk::PlaneGeometry::ConstPointer m_ParameterPlane
itk::SmartPointer< Self > Pointer
#define MITKCORE_EXPORT
DataCollection - Class to facilitate loading/accessing structured data.
mitk::PointSet::DataType::PointsContainer::ConstPointer m_FinalTargetLandmarks
itk::SmartPointer< const Self > ConstPointer
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:53
vtkAbstractTransform * m_CompleteAbstractTransform
Describes a two-dimensional, rectangular plane.
mitk::PointSet::DataType::PointsContainer::Pointer m_ProjectedLandmarks
BaseGeometry Describes the geometry of a data object.