Medical Imaging Interaction Toolkit  2025.12.02
Medical Imaging Interaction Toolkit
mitkLandmarkProjectorBasedCurvedGeometry.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 mitkLandmarkProjectorBasedCurvedGeometry_h
14 #define mitkLandmarkProjectorBasedCurvedGeometry_h
15 
16 #include "mitkLandmarkProjector.h"
17 
19 #include "mitkPointSet.h"
20 
21 namespace mitk
22 {
23  //##Documentation
24  //## @brief Superclass of AbstractTransformGeometry sub-classes defined
25  //## by a set of landmarks.
26  //##
27  //## @ingroup Geometry
29  {
30  public:
32 
33  void SetLandmarkProjector(mitk::LandmarkProjector *aLandmarkProjector);
34  itkGetConstObjectMacro(LandmarkProjector, mitk::LandmarkProjector);
35 
36  void SetFrameGeometry(const mitk::BaseGeometry *frameGeometry) override;
37 
38  virtual void ComputeGeometry();
39 
40  itkGetConstMacro(InterpolatingAbstractTransform, vtkAbstractTransform *);
41 
42  itk::LightObject::Pointer InternalClone() const override;
43 
44  //##Documentation
45  //## @brief Set the landmarks through which the geometry shall pass
46  itkSetConstObjectMacro(TargetLandmarks, mitk::PointSet::DataType::PointsContainer);
47  //##Documentation
48  //## @brief Get the landmarks through which the geometry shall pass
49  itkGetConstObjectMacro(TargetLandmarks, mitk::PointSet::DataType::PointsContainer);
50 
51  protected:
53 
55 
57 
58  mitk::LandmarkProjector::Pointer m_LandmarkProjector;
59 
60  vtkAbstractTransform *m_InterpolatingAbstractTransform;
61 
62  mitk::PointSet::DataType::PointsContainer::ConstPointer m_TargetLandmarks;
63 
64  //##Documentation
65  //## @brief PreSetSpacing
66  //##
67  //## These virtual function allows a different beahiour in subclasses.
68  //## Do implement them in every subclass of BaseGeometry. If not needed, use
69  //## {Superclass::PreSetSpacing();};
70  void PreSetSpacing(const mitk::Vector3D &aSpacing) override { Superclass::PreSetSpacing(aSpacing); };
71  };
72 } // namespace mitk
73 
74 #endif
#define MITKCORE_EXPORT
Describes a geometry defined by an vtkAbstractTransform and a plane.
BaseGeometry Describes the geometry of a data object.
Superclass of AbstractTransformGeometry sub-classes defined by a set of landmarks.
itk::LightObject::Pointer InternalClone() const override
mitk::PointSet::DataType::PointsContainer::ConstPointer m_TargetLandmarks
void PreSetSpacing(const mitk::Vector3D &aSpacing) override
PreSetSpacing.
void SetLandmarkProjector(mitk::LandmarkProjector *aLandmarkProjector)
mitkClassMacro(LandmarkProjectorBasedCurvedGeometry, AbstractTransformGeometry)
LandmarkProjectorBasedCurvedGeometry(const LandmarkProjectorBasedCurvedGeometry &other)
void SetFrameGeometry(const mitk::BaseGeometry *frameGeometry) override
Set the frame geometry which is used as the standard part of an BaseGeometry (IndexToWorldTransform a...
Base-class of landmark-projectors, which project the target landmarks to create source landmarks.
Find image slices visible on a given plane.