18#ifndef itkAdvancedTransformAdapter_h
19#define itkAdvancedTransformAdapter_h
37template <
class TScalarType,
unsigned int NDimensions>
61 using typename Superclass::ParametersType;
62 using typename Superclass::JacobianType;
63 using typename Superclass::InputVectorType;
64 using typename Superclass::OutputVectorType;
65 using typename Superclass::InputCovariantVectorType;
66 using typename Superclass::OutputCovariantVectorType;
67 using typename Superclass::InputVnlVectorType;
68 using typename Superclass::OutputVnlVectorType;
69 using typename Superclass::InputPointType;
70 using typename Superclass::OutputPointType;
83 if (m_ExternalTransform || !parameters.empty())
85 itkExceptionMacro(
"The parameters of an external transform cannot be set! Only the trivial case of setting an "
86 "empty parameters to an unspecified (null) external transform is supported!");
94 itkExceptionMacro(<< unimplementedOverrideMessage);
98 const ParametersType &
101 return itk::Deref(m_ExternalTransform.GetPointer()).GetFixedParameters();
108 return itk::Deref(m_ExternalTransform.GetPointer()).TransformPoint(point);
115 itkExceptionMacro(<< unimplementedOverrideMessage);
121 itkExceptionMacro(<< unimplementedOverrideMessage);
124 OutputCovariantVectorType
127 itkExceptionMacro(<< unimplementedOverrideMessage);
133 return itk::Deref(m_ExternalTransform.GetPointer()).IsLinear();
140 itkExceptionMacro(<< unimplementedOverrideMessage);
146 itkExceptionMacro(<< unimplementedOverrideMessage);
152 itkExceptionMacro(<< unimplementedOverrideMessage);
160 itkExceptionMacro(<< unimplementedOverrideMessage);
169 itkExceptionMacro(<< unimplementedOverrideMessage);
177 itkExceptionMacro(<< unimplementedOverrideMessage);
186 itkExceptionMacro(<< unimplementedOverrideMessage);
189 using typename Superclass::TransformType;
196 return m_ExternalTransform.GetPointer();
208 PrintSelf(std::ostream & os, itk::Indent indent)
const override
210 Superclass::PrintSelf(os, indent);
212 os << indent <<
"ExternalTransform: ";
214 if (m_ExternalTransform)
216 os << *m_ExternalTransform << std::endl;
220 os << indent <<
"null" << std::endl;
226 using Superclass::TransformCovariantVector;
227 using Superclass::TransformVector;
229 static constexpr const char * unimplementedOverrideMessage =
"Not implemented for AdvancedTransformAdapter";
231 itk::SmartPointer<TransformType> m_ExternalTransform{};