Medical Imaging Interaction Toolkit  2021.10.00
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_HEADER_INCLUDED_C1C68A2C
14 #define MITKTHINPLATESPLINECURVEDGEOMETRY_H_HEADER_INCLUDED_C1C68A2C
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 /* MITKTHINPLATESPLINECURVEDGEOMETRY_H_HEADER_INCLUDED_C1C68A2C */
Thin-plate-spline-based landmark-based curved geometry.
Superclass of AbstractTransformGeometry sub-classes defined by a set of landmarks.
#define MITKCORE_EXPORT
DataCollection - Class to facilitate loading/accessing structured data.
void PreSetSpacing(const mitk::Vector3D &aSpacing) override
PreSetSpacing.
vtkThinPlateSplineTransform * m_ThinPlateSplineTransform
#define mitkClassMacro(className, SuperClassName)
Definition: mitkCommon.h:36
Describes a geometry defined by an vtkAbstractTransform and a plane.
vtkThinPlateSplineTransform * GetThinPlateSplineTransform() const