Medical Imaging Interaction Toolkit  2016.11.0
Medical Imaging Interaction Toolkit
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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