Medical Imaging Interaction Toolkit  2016.11.0
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,
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 MITKTHINPLATESPLINECURVEDGEOMETRY_H_HEADER_INCLUDED_C1C68A2C
18 #define MITKTHINPLATESPLINECURVEDGEOMETRY_H_HEADER_INCLUDED_C1C68A2C
19 
21 
22 class vtkPoints;
23 class vtkThinPlateSplineTransform;
24 
25 namespace mitk
26 {
27  //##Documentation
28  //## @brief Thin-plate-spline-based landmark-based curved geometry
29  //##
30  //## @ingroup Geometry
32  {
33  public:
35 
36  itkFactorylessNewMacro(Self) itkCloneMacro(Self)
37 
38  virtual void ComputeGeometry() override;
39 
40  virtual itk::LightObject::Pointer InternalClone() const override;
41 
42  vtkThinPlateSplineTransform *GetThinPlateSplineTransform() const { return m_ThinPlateSplineTransform; }
43  virtual void SetSigma(double sigma);
44  virtual double GetSigma() const;
45 
46  virtual bool IsValid() const override;
47 
48  protected:
51 
53 
54  vtkThinPlateSplineTransform *m_ThinPlateSplineTransform;
55 
58 
59  //##Documentation
60  //## @brief PreSetSpacing
61  //##
62  //## These virtual function allows a different beahiour in subclasses.
63  //## Do implement them in every subclass of BaseGeometry. If not needed, use
64  //## {Superclass::PreSetSpacing();};
65  virtual void PreSetSpacing(const mitk::Vector3D &aSpacing) override { Superclass::PreSetSpacing(aSpacing); };
66  };
67 } // namespace mitk
68 
69 #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.
vtkThinPlateSplineTransform * m_ThinPlateSplineTransform
#define mitkClassMacro(className, SuperClassName)
Definition: mitkCommon.h:44
virtual void PreSetSpacing(const mitk::Vector3D &aSpacing) override
PreSetSpacing.
Describes a geometry defined by an vtkAbstractTransform and a plane.