ITK  5.3.0
Insight Toolkit
itkv3Rigid3DTransform.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright NumFOCUS
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *=========================================================================*/
18 #ifndef itkv3Rigid3DTransform_h
19 #define itkv3Rigid3DTransform_h
20 
21 #include <iostream>
22 #include "itkRigid3DTransform.h"
23 #include "itkVersor.h"
24 
25 namespace itk
26 {
27 namespace v3
28 {
62 template <typename TParametersValueType = double>
63 class ITK_TEMPLATE_EXPORT Rigid3DTransform : public itk::Rigid3DTransform<TParametersValueType>
64 {
65 public:
66  ITK_DISALLOW_COPY_AND_MOVE(Rigid3DTransform);
67 
73 
74 
76  itkTypeMacro(Rigid3DTransform, Rigid3DTransform);
77 
79  itkNewMacro(Self);
80 
82  static constexpr unsigned int SpaceDimension = 3;
83  static constexpr unsigned int InputSpaceDimension = 3;
84  static constexpr unsigned int OutputSpaceDimension = 3;
85  static constexpr unsigned int ParametersDimension = 12;
86 
87  using typename Superclass::ParametersType;
88  using typename Superclass::ParametersValueType;
89  using typename Superclass::FixedParametersType;
90  using typename Superclass::FixedParametersValueType;
91  using typename Superclass::JacobianType;
92  using typename Superclass::JacobianPositionType;
93  using typename Superclass::InverseJacobianPositionType;
94  using typename Superclass::ScalarType;
95  using typename Superclass::InputVectorType;
96  using typename Superclass::OutputVectorType;
97  using typename Superclass::OutputVectorValueType;
98  using typename Superclass::InputCovariantVectorType;
99  using typename Superclass::OutputCovariantVectorType;
100  using typename Superclass::InputVnlVectorType;
101  using typename Superclass::OutputVnlVectorType;
102  using typename Superclass::InputPointType;
103  using typename Superclass::OutputPointType;
104  using typename Superclass::MatrixType;
105  using typename Superclass::InverseMatrixType;
106  using typename Superclass::MatrixValueType;
107  using typename Superclass::CenterType;
108  using typename Superclass::TranslationType;
109  using typename Superclass::OffsetType;
110 
113  using InverseTransformBaseType = typename Superclass::InverseTransformBaseType;
114  using InverseTransformBasePointer = typename InverseTransformBaseType::Pointer;
115 
117  bool
118  GetInverse(Self * inverse) const
119  {
120  return this->Superclass::GetInverse(inverse);
121  }
122 
124  InverseTransformBasePointer
125  GetInverseTransform() const override
126  {
127  Pointer inv = New();
128  return this->GetInverse(inv) ? inv.GetPointer() : nullptr;
129  }
131 
132 protected:
133  Rigid3DTransform() = default;
134 }; // class Rigid3DTransform
135 } // namespace v3
136 } // namespace itk
137 
138 #if !defined(ITK_LEGACY_REMOVE)
139 # define itkv3 itk::v3
140 #endif
141 
142 #endif /* itkv3Rigid3DTransform_h */
itk::Rigid3DTransform
Rigid3DTransform of a vector space (e.g. space coordinates)
Definition: itkRigid3DTransform.h:57
itk::Rigid3DTransform::InverseTransformBaseType
typename Superclass::InverseTransformBaseType InverseTransformBaseType
Definition: itkRigid3DTransform.h:106
itk::v3::Rigid3DTransform::GetInverse
bool GetInverse(Self *inverse) const
Definition: itkv3Rigid3DTransform.h:118
itk::v3::Rigid3DTransform::GetInverseTransform
InverseTransformBasePointer GetInverseTransform() const override
Definition: itkv3Rigid3DTransform.h:125
itk::SmartPointer< Self >
itk::LightObject
Light weight base class for most itk classes.
Definition: itkLightObject.h:59
itkVersor.h
itk::v3::Rigid3DTransform
ITK3.x compatible Rigid3DTransform of a vector space (e.g. space coordinates)
Definition: itkv3Rigid3DTransform.h:63
itkRigid3DTransform.h
itk::SmartPointer::GetPointer
ObjectType * GetPointer() const noexcept
Definition: itkSmartPointer.h:132
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition: itkAnnulusOperator.h:24
itk::Rigid3DTransform::InverseTransformBasePointer
typename InverseTransformBaseType::Pointer InverseTransformBasePointer
Definition: itkRigid3DTransform.h:107