Medical Imaging Interaction Toolkit  2025.12.02
Medical Imaging Interaction Toolkit
mitkThinPlateSplineCurvedGeometry.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 mitkThinPlateSplineCurvedGeometry_h
14 #define mitkThinPlateSplineCurvedGeometry_h
15 
17 
18 class vtkPoints;
19 class vtkThinPlateSplineTransform;
20 
21 namespace mitk
22 {
23  //##Documentation
24  //## @brief Thin-plate-spline-based landmark-based curved geometry
25  //##
26  //## @ingroup Geometry
28  {
29  public:
31 
32  itkFactorylessNewMacro(Self);
33 
34  itkCloneMacro(Self);
35 
36  void ComputeGeometry() override;
37 
38  itk::LightObject::Pointer InternalClone() const override;
39 
40  vtkThinPlateSplineTransform *GetThinPlateSplineTransform() const { return m_ThinPlateSplineTransform; }
41  virtual void SetSigma(double sigma);
42  virtual double GetSigma() const;
43 
44  bool IsValid() const override;
45 
46  protected:
49 
51 
52  vtkThinPlateSplineTransform *m_ThinPlateSplineTransform;
53 
56 
57  //##Documentation
58  //## @brief PreSetSpacing
59  //##
60  //## These virtual function allows a different beahiour in subclasses.
61  //## Do implement them in every subclass of BaseGeometry. If not needed, use
62  //## {Superclass::PreSetSpacing();};
63  void PreSetSpacing(const mitk::Vector3D &aSpacing) override { Superclass::PreSetSpacing(aSpacing); };
64  };
65 } // namespace mitk
66 
67 #endif
#define MITKCORE_EXPORT
Superclass of AbstractTransformGeometry sub-classes defined by a set of landmarks.
Thin-plate-spline-based landmark-based curved geometry.
virtual double GetSigma() const
ThinPlateSplineCurvedGeometry(const ThinPlateSplineCurvedGeometry &other)
bool IsValid() const override
Is this BaseGeometry in a state that is valid?
virtual void SetSigma(double sigma)
vtkThinPlateSplineTransform * GetThinPlateSplineTransform() const
vtkThinPlateSplineTransform * m_ThinPlateSplineTransform
void PreSetSpacing(const mitk::Vector3D &aSpacing) override
PreSetSpacing.
itk::LightObject::Pointer InternalClone() const override
mitkClassMacro(ThinPlateSplineCurvedGeometry, LandmarkProjectorBasedCurvedGeometry)
Find image slices visible on a given plane.