18 #ifndef itkMatrixOffsetTransformBase_h
19 #define itkMatrixOffsetTransformBase_h
96 template<
typename TParametersValueType=double,
97 unsigned int NInputDimensions = 3,
98 unsigned int NOutputDimensions = 3>
100 public Transform<TParametersValueType, NInputDimensions, NOutputDimensions>
119 static constexpr
unsigned int InputSpaceDimension = NInputDimensions;
120 static constexpr
unsigned int OutputSpaceDimension = NOutputDimensions;
121 static constexpr
unsigned int ParametersDimension = NOutputDimensions * ( NInputDimensions + 1 );
142 Self::InputSpaceDimension>;
144 Self::OutputSpaceDimension>;
149 Self::InputSpaceDimension>;
151 Self::OutputSpaceDimension>;
169 Self::InputSpaceDimension>;
171 Self::OutputSpaceDimension>;
175 Self::InputSpaceDimension>;
178 Self::OutputSpaceDimension>;
183 Self::InputSpaceDimension>;
188 Self::OutputSpaceDimension>;
207 virtual void SetIdentity();
230 m_Matrix = matrix; this->ComputeOffset();
231 this->ComputeMatrixParameters();
232 m_MatrixMTime.Modified(); this->Modified();
return;
258 m_Offset = offset; this->ComputeTranslation();
259 this->Modified();
return;
297 m_Center = center; this->ComputeOffset();
298 this->Modified();
return;
321 m_Translation = translation; this->ComputeOffset();
322 this->Modified();
return;
334 return m_Translation;
341 void SetParameters(
const ParametersType & parameters)
override;
344 const ParametersType & GetParameters()
const override;
347 void SetFixedParameters(
const FixedParametersType &)
override;
350 const FixedParametersType & GetFixedParameters()
const override;
363 void Compose(
const Self *other,
bool pre =
false);
373 OutputPointType TransformPoint(
const InputPointType & point)
const override;
375 using Superclass::TransformVector;
377 OutputVectorType TransformVector(
const InputVectorType & vector)
const override;
379 OutputVnlVectorType TransformVector(
const InputVnlVectorType & vector)
const override;
381 OutputVectorPixelType TransformVector(
const InputVectorPixelType & vector)
const override;
383 using Superclass::TransformCovariantVector;
385 OutputCovariantVectorType TransformCovariantVector(
const InputCovariantVectorType & vector)
const override;
387 OutputVectorPixelType TransformCovariantVector(
const InputVectorPixelType & vector)
const override;
389 using Superclass::TransformDiffusionTensor3D;
391 OutputDiffusionTensor3DType TransformDiffusionTensor3D(
const InputDiffusionTensor3DType & tensor)
const override;
393 OutputVectorPixelType TransformDiffusionTensor3D(
const InputVectorPixelType & tensor )
const override;
395 using Superclass::TransformSymmetricSecondRankTensor;
396 OutputSymmetricSecondRankTensorType TransformSymmetricSecondRankTensor(
const InputSymmetricSecondRankTensorType & tensor )
const override;
398 OutputVectorPixelType TransformSymmetricSecondRankTensor(
const InputVectorPixelType & tensor )
const override;
410 void ComputeJacobianWithRespectToParameters(
const InputPointType & x, JacobianType & j)
const override;
416 void ComputeJacobianWithRespectToPosition(
const InputPointType & x, JacobianPositionType & jac)
const override;
417 using Superclass::ComputeJacobianWithRespectToPosition;
422 void ComputeInverseJacobianWithRespectToPosition(
const InputPointType & x,
423 InverseJacobianPositionType & jac)
const override;
424 using Superclass::ComputeInverseJacobianWithRespectToPosition;
444 bool GetInverse(Self *inverse)
const;
448 InverseTransformBasePointer GetInverseTransform()
const override;
463 const InverseMatrixType & GetInverseMatrix()
const;
482 void PrintSelf(std::ostream & s,
Indent indent)
const override;
486 return m_InverseMatrix;
490 m_InverseMatrix = matrix; m_InverseMatrixMTime.Modified();
494 if( m_MatrixMTime != m_InverseMatrixMTime )
504 virtual void ComputeMatrixParameters();
506 virtual void ComputeMatrix();
510 m_Matrix = matrix; m_MatrixMTime.Modified();
513 virtual void ComputeTranslation();
517 m_Translation = translation;
520 virtual void ComputeOffset();
532 itkGetConstMacro(Singular,
bool);
536 const Self & operator=(
const Self &) =
delete;
552 #ifndef ITK_MANUAL_INSTANTIATION
553 #include "itkMatrixOffsetTransformBase.hxx"
Light weight base class for most itk classes.
Represent a symmetric tensor of second rank.
TParametersValueType ValueType
Represents an array whose length can be defined at run-time.
Array2D class representing a 2D array with size defined at construction time.
A templated class holding a n-Dimensional vector.
Generate a unique, increasing time value.
static constexpr double e
The base of the natural logarithm or Euler's number
Control indentation during Print() invocation.
A templated class holding a geometric point in n-Dimensional space.
static double GetTolerance()
Represent a diffusion tensor as used in DTI images.
A templated class holding a n-Dimensional covariant vector.
static float GetTolerance()