Medical Imaging Interaction Toolkit  2016.11.0
Medical Imaging Interaction Toolkit
itkVtkAbstractTransform.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 MITKVTKABSTRACTTRANSFORM_H_HEADER_INCLUDED_C1C68A2C
18 #define MITKVTKABSTRACTTRANSFORM_H_HEADER_INCLUDED_C1C68A2C
19 
20 #include "itkTransform.h"
21 #include <MitkCoreExports.h>
22 
23 class vtkAbstractTransform;
24 
25 namespace itk
26 {
27  //##Documentation
28  //## @brief Adapter from vtkAbstractTransform to itk::Transform<TScalarType, 3, 3>
29  //## @ingroup Geometry
30  template <class TScalarType>
31  class VtkAbstractTransform : public itk::Transform<TScalarType, 3, 3>
32  {
33  public:
35  typedef Transform<TScalarType, 3, 3> Superclass;
38  typedef typename Superclass::OutputPointType OutputPointType;
39  typedef typename Superclass::OutputVectorType OutputVectorType;
40  typedef typename Superclass::OutputVnlVectorType OutputVnlVectorType;
41  typedef typename Superclass::OutputCovariantVectorType OutputCovariantVectorType;
42  typedef typename Superclass::InputPointType InputPointType;
43  typedef typename Superclass::InputVectorType InputVectorType;
44  typedef typename Superclass::InputVnlVectorType InputVnlVectorType;
45  typedef typename Superclass::InputCovariantVectorType InputCovariantVectorType;
46  typedef typename Superclass::ParametersType ParametersType;
47  typedef typename Superclass::JacobianType JacobianType;
48 
49  itkFactorylessNewMacro(Self) itkCloneMacro(Self)
50 
51  //##Documentation
52  //## @brief Get the vtkAbstractTransform (stored in m_VtkAbstractTransform)
53  virtual vtkAbstractTransform *GetVtkAbstractTransform() const;
54  //##Documentation
55  //## @brief Get the inverse vtkAbstractTransform (stored in m_InverseVtkAbstractTransform)
56  virtual vtkAbstractTransform *GetInverseVtkAbstractTransform() const;
57 
58  //##Documentation
59  //## @brief Set the vtkAbstractTransform (stored in m_VtkAbstractTransform)
60  virtual void SetVtkAbstractTransform(vtkAbstractTransform *aVtkAbstractTransform);
61 
62  using Superclass::TransformVector;
63  using Superclass::TransformCovariantVector;
64 
65  virtual OutputPointType TransformPoint(const InputPointType &) const override;
66  virtual OutputVectorType TransformVector(const InputVectorType &) const override;
67  virtual OutputVnlVectorType TransformVector(const InputVnlVectorType &) const override;
68  virtual OutputCovariantVectorType TransformCovariantVector(const InputCovariantVectorType &) const override;
69 
70  virtual InputPointType BackTransform(const OutputPointType &point) const;
71  virtual InputVectorType BackTransform(const OutputVectorType &vector) const;
72  virtual InputVnlVectorType BackTransform(const OutputVnlVectorType &vector) const;
73  virtual InputCovariantVectorType BackTransform(const OutputCovariantVectorType &vector) const;
74 
75  virtual void SetParameters(const ParametersType &) override;
76  virtual void SetFixedParameters(const ParametersType &) override;
77  virtual void ComputeJacobianWithRespectToParameters(const InputPointType &, JacobianType &) const override;
78  virtual void ComputeJacobianWithRespectToPosition(const InputPointType &, JacobianType &) const override;
79 
80  virtual unsigned long GetMTime() const override;
81 
82  protected:
84  virtual ~VtkAbstractTransform();
85 
86  //##Documentation
87  //## @brief Instance of the vtkAbstractTransform
88  vtkAbstractTransform *m_VtkAbstractTransform;
89 
90  //##Documentation
91  //## @brief Instance of the vtkAbstractTransform
92  vtkAbstractTransform *m_InverseVtkAbstractTransform;
93 
94  mutable unsigned long m_LastVtkAbstractTransformTimeStamp;
95  };
96 
97 } // namespace itk
98 
99 #ifndef MITK_MANUAL_INSTANTIATION
101 #endif
102 
103 #endif /* MITKVTKABSTRACTTRANSFORM_H_HEADER_INCLUDED_C1C68A2C */
Superclass::InputVectorType InputVectorType
Adapter from vtkAbstractTransform to itk::Transform
virtual vtkAbstractTransform * GetVtkAbstractTransform() const
Get the vtkAbstractTransform (stored in m_VtkAbstractTransform)
Superclass::OutputVectorType OutputVectorType
Superclass::OutputVnlVectorType OutputVnlVectorType
Superclass::InputVnlVectorType InputVnlVectorType
Superclass::InputPointType InputPointType
unsigned long m_LastVtkAbstractTransformTimeStamp
Transform< TScalarType, 3, 3 > Superclass
virtual void ComputeJacobianWithRespectToParameters(const InputPointType &, JacobianType &) const override
virtual InputPointType BackTransform(const OutputPointType &point) const
Superclass::ParametersType ParametersType
vtkAbstractTransform * m_InverseVtkAbstractTransform
Instance of the vtkAbstractTransform.
Superclass::OutputPointType OutputPointType
virtual vtkAbstractTransform * GetInverseVtkAbstractTransform() const
Get the inverse vtkAbstractTransform (stored in m_InverseVtkAbstractTransform)
Superclass::JacobianType JacobianType
Superclass::InputCovariantVectorType InputCovariantVectorType
SmartPointer< const Self > ConstPointer
virtual OutputVectorType TransformVector(const InputVectorType &) const override
virtual void SetVtkAbstractTransform(vtkAbstractTransform *aVtkAbstractTransform)
Set the vtkAbstractTransform (stored in m_VtkAbstractTransform)
virtual OutputPointType TransformPoint(const InputPointType &) const override
virtual unsigned long GetMTime() const override
vtkAbstractTransform * m_VtkAbstractTransform
Instance of the vtkAbstractTransform.
Superclass::OutputCovariantVectorType OutputCovariantVectorType
virtual void SetParameters(const ParametersType &) override
virtual OutputCovariantVectorType TransformCovariantVector(const InputCovariantVectorType &) const override
virtual void ComputeJacobianWithRespectToPosition(const InputPointType &, JacobianType &) const override
virtual void SetFixedParameters(const ParametersType &) override