27#include "vnl/vnl_vector_fixed.h"
28#include "vnl/vnl_matrix_fixed.h"
82template <
typename TParametersValueType,
unsigned int VInputDimension = 3,
unsigned int VOutputDimension = 3>
99 static constexpr unsigned int InputSpaceDimension = VInputDimension;
100 static constexpr unsigned int OutputSpaceDimension = VOutputDimension;
109 return VInputDimension;
116 return VOutputDimension;
121 itkSetMacro(InputSpaceName, std::string);
122 itkGetConstReferenceMacro(InputSpaceName, std::string);
130 itkSetMacro(OutputSpaceName, std::string);
131 itkGetConstReferenceMacro(OutputSpaceName, std::string);
134 using typename Superclass::FixedParametersType;
135 using typename Superclass::FixedParametersValueType;
136 using typename Superclass::ParametersType;
137 using typename Superclass::ParametersValueType;
189 using typename Superclass::NumberOfParametersType;
202 itkExceptionMacro(
"TransformVector(const InputVectorType &)"
203 "is unimplemented for "
211 virtual OutputVectorType
218 itkExceptionMacro(
"TransformVector( const InputVnlVectorType & ) is "
227 virtual OutputVnlVectorType
234 itkExceptionMacro(
"TransformVector( const InputVectorPixelType & ) is "
243 virtual OutputVectorPixelType
250 itkExceptionMacro(
"TransformCovariantVector( const InputCovariantVectorType & ) is "
260 virtual OutputCovariantVectorType
268 itkExceptionMacro(
"TransformCovariantVector(const InputVectorPixelType &)"
269 "is unimplemented for "
278 virtual OutputVectorPixelType
285 itkExceptionMacro(
"TransformDiffusionTensor3D( const InputDiffusionTensor3DType & ) is "
295 virtual OutputDiffusionTensor3DType
302 itkExceptionMacro(
"TransformDiffusionTensor( const InputVectorPixelType & ) is "
307 virtual OutputVectorPixelType
323 itkExceptionMacro(
"TransformSymmetricSecondRankTensor( const InputSymmetricSecondRankTensorType & ) is "
329 virtual OutputVectorPixelType
332 itkExceptionMacro(
"TransformSymmetricSecondRankTensor( const InputVectorPixelType & ) is "
343 virtual OutputVectorPixelType
366 this->SetParameters(p);
399 return m_FixedParameters;
423 return this->GetNumberOfParameters();
427 NumberOfParametersType
430 return this->m_Parameters.Size();
434 virtual NumberOfParametersType
437 return this->m_FixedParameters.Size();
460 virtual InverseTransformBasePointer
470 using typename Superclass::TransformCategoryEnum;
478 return Superclass::TransformCategoryEnum::UnknownTransformCategory;
484 return (this->GetTransformCategory() == Superclass::TransformCategoryEnum::Linear);
532 this->ComputeJacobianWithRespectToParameters(p, jacobian);
545 itkExceptionMacro(
"ComputeJacobianWithRespectToPosition( InputPointType, JacobianType )"
546 " is unimplemented for "
574 template <
typename TImage>
575 std::enable_if_t<TImage::ImageDimension == VInputDimension && TImage::ImageDimension == VOutputDimension, void>
577 template <
typename TImage>
578 std::enable_if_t<TImage::ImageDimension == VInputDimension && TImage::ImageDimension == VOutputDimension, void>
581 this->ApplyToImageMetadata(image.
GetPointer());
611 OutputDiffusionTensor3DType
617 template <
typename TTransform>
622 return transform.GetInverse(inverse) ? inverse.GetPointer() :
nullptr;
627 std::string m_InputSpaceName{};
628 std::string m_OutputSpaceName{};
630 template <
typename TType>
634 std::string rval(
"other");
642 std::string rval(
"float");
650 std::string rval(
"double");
657#ifndef ITK_MANUAL_INSTANTIATION
658# include "itkTransform.hxx"
Array2D class representing a 2D array.
Array class with size defined at construction time.
A templated class holding a n-Dimensional covariant vector.
Represent a diffusion tensor as used in DTI images.
Light weight base class for most itk classes.
A templated class holding a M x N size Matrix.
Class to hold and manage different parameter types used during optimization.
A templated class holding a geometric point in n-Dimensional space.
ObjectType * GetPointer() const noexcept
Represent a symmetric tensor of second rank.
A templated class holding a n-Dimensional vector.
const char * GetNameOfClass() const override
SmartPointer< Self > Pointer
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
*par Constraints *The filter image with at least two dimensions and a vector *length of at least The theory supports extension to scalar but *the implementation of the itk vector classes do not **The template parameter TRealType must be floating point(float or double) or *a user-defined "real" numerical type with arithmetic operations defined *sufficient to compute derivatives. **\par Performance *This filter will automatically multithread if run with *SetUsePrincipleComponents