go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Types | Private Attributes | Static Private Attributes
itk::AdvancedCombinationTransform< TScalarType, NDimensions > Class Template Reference

#include <itkAdvancedCombinationTransform.h>

Detailed Description

template<typename TScalarType, unsigned int NDimensions = 3>
class itk::AdvancedCombinationTransform< TScalarType, NDimensions >

This class combines two transforms: an 'initial transform' with a 'current transform'.

The CombinationTransform class combines an initial transform $T_0$ with a current transform $T_1$.

Two methods of combining the transforms are supported:

The TransformPoint(), the GetJacobian() and the GetInverse() methods depend on this setting.

If the transform is used in a registration framework, the initial transform is assumed constant, and the current transform is assumed to be the transform that is optimised. So, the transform parameters of the CombinationTransform are the parameters of the CurrentTransform $T_1$.

Note: It is mandatory to set a current transform. An initial transform is not mandatory.

Definition at line 56 of file itkAdvancedCombinationTransform.h.

Inheritance diagram for itk::AdvancedCombinationTransform< TScalarType, NDimensions >:
Inheritance graph
[legend]

Public Types

using ConstPointer = SmartPointer< const Self >
 
using CurrentTransformConstPointer = typename CurrentTransformType::ConstPointer
 
using CurrentTransformInverseTransformBasePointer = typename CurrentTransformType::InverseTransformBasePointer
 
using CurrentTransformInverseTransformBaseType = typename CurrentTransformType::InverseTransformBaseType
 
using CurrentTransformPointer = typename CurrentTransformType::Pointer
 
using CurrentTransformType = Superclass
 
using InitialTransformConstPointer = typename InitialTransformType::ConstPointer
 
using InitialTransformInverseTransformBasePointer = typename InitialTransformType::InverseTransformBasePointer
 
using InitialTransformInverseTransformBaseType = typename InitialTransformType::InverseTransformBaseType
 
using InitialTransformPointer = typename InitialTransformType::Pointer
 
using InitialTransformType = Superclass
 
using InverseTransformBaseType = typename Superclass::InverseTransformBaseType
 
using Pointer = SmartPointer< Self >
 
using Self = AdvancedCombinationTransform
 
using Superclass = AdvancedTransform< TScalarType, NDimensions, NDimensions >
 
using TransformType = typename Superclass::TransformType
 
using TransformTypeConstPointer = typename TransformType::ConstPointer
 
using TransformTypePointer = typename TransformType::Pointer
 
- Public Types inherited from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >
using ConstPointer = SmartPointer< const Self >
 
using InternalMatrixType = typename SpatialJacobianType::InternalMatrixType
 
using InverseTransformBaseType = typename Superclass::InverseTransformBaseType
 
using JacobianOfSpatialHessianType = std::vector< SpatialHessianType >
 
using JacobianOfSpatialJacobianType = std::vector< SpatialJacobianType >
 
using MovingImageGradientType = OutputCovariantVectorType
 
using MovingImageGradientValueType = typename MovingImageGradientType::ValueType
 
using NonZeroJacobianIndicesType = std::vector< unsigned long >
 
using Pointer = SmartPointer< Self >
 
using Self = AdvancedTransform
 
using SpatialHessianType = FixedArray< Matrix< ScalarType, InputSpaceDimension, InputSpaceDimension >, OutputSpaceDimension >
 
using SpatialJacobianType = Matrix< ScalarType, OutputSpaceDimension, InputSpaceDimension >
 
using Superclass = Transform< TScalarType, NInputDimensions, NOutputDimensions >
 
using TransformType = Transform< TScalarType, NInputDimensions, NOutputDimensions >
 
using TransformTypeConstPointer = typename TransformType::ConstPointer
 
using TransformTypePointer = typename TransformType::Pointer
 

Public Member Functions

void EvaluateJacobianWithImageGradientProduct (const InputPointType &inputPoint, const MovingImageGradientType &movingImageGradient, DerivativeType &imageJacobian, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
 
virtual const char * GetClassName () const
 
const FixedParametersType & GetFixedParameters () const override
 
bool GetHasNonZeroSpatialHessian () const override
 
bool GetInverse (Self *inverse) const
 
void GetJacobian (const InputPointType &inputPoint, JacobianType &j, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
 
void GetJacobianOfSpatialHessian (const InputPointType &inputPoint, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
 
void GetJacobianOfSpatialHessian (const InputPointType &inputPoint, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
 
void GetJacobianOfSpatialJacobian (const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
 
void GetJacobianOfSpatialJacobian (const InputPointType &inputPoint, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
 
const TransformTypePointer GetNthTransform (SizeValueType n) const
 
NumberOfParametersType GetNumberOfNonZeroJacobianIndices () const override
 
NumberOfParametersType GetNumberOfParameters () const override
 
SizeValueType GetNumberOfTransforms () const
 
const ParametersType & GetParameters () const override
 
void GetSpatialHessian (const InputPointType &inputPoint, SpatialHessianType &sh) const override
 
void GetSpatialJacobian (const InputPointType &inputPoint, SpatialJacobianType &sj) const override
 
TransformCategoryEnum GetTransformCategory () const override
 
virtual bool GetUseAddition () const
 
virtual bool GetUseComposition () const
 
bool HasNonZeroJacobianOfSpatialHessian () const
 
bool IsLinear () const override
 
 ITK_DISALLOW_COPY_AND_MOVE (AdvancedCombinationTransform)
 
 itkGetModifiableObjectMacro (CurrentTransform, CurrentTransformType)
 
 itkGetModifiableObjectMacro (InitialTransform, InitialTransformType)
 
 itkStaticConstMacro (SpaceDimension, unsigned int, NDimensions)
 
void SetCurrentTransform (CurrentTransformType *_arg)
 
void SetFixedParameters (const FixedParametersType &fixedParam) override
 
void SetInitialTransform (InitialTransformType *_arg)
 
void SetParameters (const ParametersType &param) override
 
void SetParametersByValue (const ParametersType &param) override
 
void SetUseAddition (bool _arg)
 
void SetUseComposition (bool _arg)
 
OutputCovariantVectorType TransformCovariantVector (const InputCovariantVectorType &) const override
 
OutputPointType TransformPoint (const InputPointType &point) const override
 
OutputVectorType TransformVector (const InputVectorType &) const override
 
OutputVnlVectorType TransformVector (const InputVnlVectorType &) const override
 
- Public Member Functions inherited from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >
void ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &) const override
 
virtual void EvaluateJacobianWithImageGradientProduct (const InputPointType &inputPoint, const MovingImageGradientType &movingImageGradient, DerivativeType &imageJacobian, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
virtual const char * GetClassName () const
 
virtual bool GetHasNonZeroJacobianOfSpatialHessian () const
 
virtual bool GetHasNonZeroSpatialHessian () const
 
virtual void GetJacobian (const InputPointType &inputPoint, JacobianType &j, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const =0
 
virtual void GetJacobianOfSpatialHessian (const InputPointType &inputPoint, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const =0
 
virtual void GetJacobianOfSpatialHessian (const InputPointType &inputPoint, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const =0
 
virtual void GetJacobianOfSpatialJacobian (const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const =0
 
virtual void GetJacobianOfSpatialJacobian (const InputPointType &inputPoint, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const =0
 
virtual NumberOfParametersType GetNumberOfNonZeroJacobianIndices () const
 
virtual void GetSpatialHessian (const InputPointType &inputPoint, SpatialHessianType &sh) const =0
 
virtual void GetSpatialJacobian (const InputPointType &inputPoint, SpatialJacobianType &sj) const =0
 
 ITK_DISALLOW_COPY_AND_MOVE (AdvancedTransform)
 
 itkStaticConstMacro (InputSpaceDimension, unsigned int, NInputDimensions)
 
 itkStaticConstMacro (OutputSpaceDimension, unsigned int, NOutputDimensions)
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

 AdvancedCombinationTransform ()
 
void EvaluateJacobianWithImageGradientProductNoCurrentTransform (const InputPointType &, const MovingImageGradientType &, DerivativeType &, NonZeroJacobianIndicesType &) const
 
void EvaluateJacobianWithImageGradientProductNoInitialTransform (const InputPointType &, const MovingImageGradientType &, DerivativeType &, NonZeroJacobianIndicesType &) const
 
void EvaluateJacobianWithImageGradientProductUseAddition (const InputPointType &, const MovingImageGradientType &, DerivativeType &, NonZeroJacobianIndicesType &) const
 
void EvaluateJacobianWithImageGradientProductUseComposition (const InputPointType &, const MovingImageGradientType &, DerivativeType &, NonZeroJacobianIndicesType &) const
 
void GetJacobianNoCurrentTransform (const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const
 
void GetJacobianNoInitialTransform (const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const
 
void GetJacobianOfSpatialHessianNoCurrentTransform (const InputPointType &inputPoint, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
void GetJacobianOfSpatialHessianNoCurrentTransform (const InputPointType &inputPoint, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
void GetJacobianOfSpatialHessianNoInitialTransform (const InputPointType &inputPoint, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
void GetJacobianOfSpatialHessianNoInitialTransform (const InputPointType &inputPoint, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
void GetJacobianOfSpatialHessianUseAddition (const InputPointType &inputPoint, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
void GetJacobianOfSpatialHessianUseAddition (const InputPointType &inputPoint, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
void GetJacobianOfSpatialHessianUseComposition (const InputPointType &inputPoint, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
void GetJacobianOfSpatialHessianUseComposition (const InputPointType &inputPoint, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
void GetJacobianOfSpatialJacobianNoCurrentTransform (const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
void GetJacobianOfSpatialJacobianNoCurrentTransform (const InputPointType &inputPoint, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
void GetJacobianOfSpatialJacobianNoInitialTransform (const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
void GetJacobianOfSpatialJacobianNoInitialTransform (const InputPointType &inputPoint, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
void GetJacobianOfSpatialJacobianUseAddition (const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
void GetJacobianOfSpatialJacobianUseAddition (const InputPointType &inputPoint, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
void GetJacobianOfSpatialJacobianUseComposition (const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
void GetJacobianOfSpatialJacobianUseComposition (const InputPointType &inputPoint, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
void GetJacobianUseAddition (const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const
 
void GetJacobianUseComposition (const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const
 
void GetSpatialHessianNoCurrentTransform (const InputPointType &inputPoint, SpatialHessianType &sh) const
 
void GetSpatialHessianNoInitialTransform (const InputPointType &inputPoint, SpatialHessianType &sh) const
 
void GetSpatialHessianUseAddition (const InputPointType &inputPoint, SpatialHessianType &sh) const
 
void GetSpatialHessianUseComposition (const InputPointType &inputPoint, SpatialHessianType &sh) const
 
void GetSpatialJacobianNoCurrentTransform (const InputPointType &inputPoint, SpatialJacobianType &sj) const
 
void GetSpatialJacobianNoInitialTransform (const InputPointType &inputPoint, SpatialJacobianType &sj) const
 
void GetSpatialJacobianUseAddition (const InputPointType &inputPoint, SpatialJacobianType &sj) const
 
void GetSpatialJacobianUseComposition (const InputPointType &inputPoint, SpatialJacobianType &sj) const
 
OutputPointType TransformPointNoCurrentTransform (const InputPointType &point) const
 
OutputPointType TransformPointNoInitialTransform (const InputPointType &point) const
 
OutputPointType TransformPointUseAddition (const InputPointType &point) const
 
OutputPointType TransformPointUseComposition (const InputPointType &point) const
 
void UpdateCombinationMethod ()
 
 ~AdvancedCombinationTransform () override=default
 
- Protected Member Functions inherited from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >
 AdvancedTransform ()=default
 
 ~AdvancedTransform () override=default
 

Private Types

using EvaluateJacobianWithImageGradientProductFunctionPointer = void(Self::*)(const InputPointType &, const MovingImageGradientType &, DerivativeType &, NonZeroJacobianIndicesType &) const
 
using GetJacobianOfSpatialHessianFunctionPointer = void(Self::*)(const InputPointType &, JacobianOfSpatialHessianType &, NonZeroJacobianIndicesType &) const
 
using GetJacobianOfSpatialHessianFunctionPointer2 = void(Self::*)(const InputPointType &, SpatialHessianType &, JacobianOfSpatialHessianType &, NonZeroJacobianIndicesType &) const
 
using GetJacobianOfSpatialJacobianFunctionPointer = void(Self::*)(const InputPointType &, JacobianOfSpatialJacobianType &, NonZeroJacobianIndicesType &) const
 
using GetJacobianOfSpatialJacobianFunctionPointer2 = void(Self::*)(const InputPointType &, SpatialJacobianType &, JacobianOfSpatialJacobianType &, NonZeroJacobianIndicesType &) const
 
using GetSparseJacobianFunctionPointer = void(Self::*)(const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const
 
using GetSpatialHessianFunctionPointer = void(Self::*)(const InputPointType &, SpatialHessianType &) const
 
using GetSpatialJacobianFunctionPointer = void(Self::*)(const InputPointType &, SpatialJacobianType &) const
 
using TransformPointFunctionPointer = OutputPointType(Self::*)(const InputPointType &) const
 

Private Attributes

CurrentTransformPointer m_CurrentTransform { nullptr }
 
InitialTransformPointer m_InitialTransform { nullptr }
 
EvaluateJacobianWithImageGradientProductFunctionPointer m_SelectedEvaluateJacobianWithImageGradientProductFunction
 
GetJacobianOfSpatialHessianFunctionPointer m_SelectedGetJacobianOfSpatialHessianFunction
 
GetJacobianOfSpatialHessianFunctionPointer2 m_SelectedGetJacobianOfSpatialHessianFunction2
 
GetJacobianOfSpatialJacobianFunctionPointer m_SelectedGetJacobianOfSpatialJacobianFunction
 
GetJacobianOfSpatialJacobianFunctionPointer2 m_SelectedGetJacobianOfSpatialJacobianFunction2
 
GetSparseJacobianFunctionPointer m_SelectedGetSparseJacobianFunction { &Self::GetJacobianNoCurrentTransform }
 
GetSpatialHessianFunctionPointer m_SelectedGetSpatialHessianFunction { &Self::GetSpatialHessianNoCurrentTransform }
 
GetSpatialJacobianFunctionPointer m_SelectedGetSpatialJacobianFunction { &Self::GetSpatialJacobianNoCurrentTransform }
 
TransformPointFunctionPointer m_SelectedTransformPointFunction { &Self::TransformPointNoCurrentTransform }
 
bool m_UseAddition { false }
 
bool m_UseComposition { true }
 

Static Private Attributes

static constexpr const char * NoCurrentTransformSet = "No current transform set in the AdvancedCombinationTransform"
 

Additional Inherited Members

- Protected Attributes inherited from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >
bool m_HasNonZeroJacobianOfSpatialHessian { true }
 
bool m_HasNonZeroSpatialHessian { true }
 

Member Typedef Documentation

◆ ConstPointer

template<typename TScalarType , unsigned int NDimensions = 3>
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::ConstPointer = SmartPointer<const Self>

Definition at line 65 of file itkAdvancedCombinationTransform.h.

◆ CurrentTransformConstPointer

template<typename TScalarType , unsigned int NDimensions = 3>
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::CurrentTransformConstPointer = typename CurrentTransformType::ConstPointer

Definition at line 119 of file itkAdvancedCombinationTransform.h.

◆ CurrentTransformInverseTransformBasePointer

template<typename TScalarType , unsigned int NDimensions = 3>
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::CurrentTransformInverseTransformBasePointer = typename CurrentTransformType::InverseTransformBasePointer

Definition at line 121 of file itkAdvancedCombinationTransform.h.

◆ CurrentTransformInverseTransformBaseType

template<typename TScalarType , unsigned int NDimensions = 3>
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::CurrentTransformInverseTransformBaseType = typename CurrentTransformType::InverseTransformBaseType

Definition at line 120 of file itkAdvancedCombinationTransform.h.

◆ CurrentTransformPointer

template<typename TScalarType , unsigned int NDimensions = 3>
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::CurrentTransformPointer = typename CurrentTransformType::Pointer

Definition at line 118 of file itkAdvancedCombinationTransform.h.

◆ CurrentTransformType

template<typename TScalarType , unsigned int NDimensions = 3>
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::CurrentTransformType = Superclass

Typedefs for the CurrentTransform.

Definition at line 117 of file itkAdvancedCombinationTransform.h.

◆ EvaluateJacobianWithImageGradientProductFunctionPointer

template<typename TScalarType , unsigned int NDimensions = 3>
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::EvaluateJacobianWithImageGradientProductFunctionPointer = void (Self::*)(const InputPointType &, const MovingImageGradientType &, DerivativeType &, NonZeroJacobianIndicesType &) const
private

Definition at line 562 of file itkAdvancedCombinationTransform.h.

◆ GetJacobianOfSpatialHessianFunctionPointer

template<typename TScalarType , unsigned int NDimensions = 3>
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetJacobianOfSpatialHessianFunctionPointer = void (Self::*)(const InputPointType &, JacobianOfSpatialHessianType &, NonZeroJacobianIndicesType &) const
private

Definition at line 575 of file itkAdvancedCombinationTransform.h.

◆ GetJacobianOfSpatialHessianFunctionPointer2

template<typename TScalarType , unsigned int NDimensions = 3>
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetJacobianOfSpatialHessianFunctionPointer2 = void (Self::*)(const InputPointType &, SpatialHessianType &, JacobianOfSpatialHessianType &, NonZeroJacobianIndicesType &) const
private

Definition at line 578 of file itkAdvancedCombinationTransform.h.

◆ GetJacobianOfSpatialJacobianFunctionPointer

template<typename TScalarType , unsigned int NDimensions = 3>
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetJacobianOfSpatialJacobianFunctionPointer = void (Self::*)(const InputPointType &, JacobianOfSpatialJacobianType &, NonZeroJacobianIndicesType &) const
private

Definition at line 568 of file itkAdvancedCombinationTransform.h.

◆ GetJacobianOfSpatialJacobianFunctionPointer2

template<typename TScalarType , unsigned int NDimensions = 3>
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetJacobianOfSpatialJacobianFunctionPointer2 = void (Self::*)(const InputPointType &, SpatialJacobianType &, JacobianOfSpatialJacobianType &, NonZeroJacobianIndicesType &) const
private

Definition at line 571 of file itkAdvancedCombinationTransform.h.

◆ GetSparseJacobianFunctionPointer

template<typename TScalarType , unsigned int NDimensions = 3>
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetSparseJacobianFunctionPointer = void (Self::*)(const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const
private

Definition at line 559 of file itkAdvancedCombinationTransform.h.

◆ GetSpatialHessianFunctionPointer

template<typename TScalarType , unsigned int NDimensions = 3>
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetSpatialHessianFunctionPointer = void (Self::*)(const InputPointType &, SpatialHessianType &) const
private

Definition at line 567 of file itkAdvancedCombinationTransform.h.

◆ GetSpatialJacobianFunctionPointer

template<typename TScalarType , unsigned int NDimensions = 3>
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetSpatialJacobianFunctionPointer = void (Self::*)(const InputPointType &, SpatialJacobianType &) const
private

Definition at line 566 of file itkAdvancedCombinationTransform.h.

◆ InitialTransformConstPointer

template<typename TScalarType , unsigned int NDimensions = 3>
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::InitialTransformConstPointer = typename InitialTransformType::ConstPointer

Definition at line 112 of file itkAdvancedCombinationTransform.h.

◆ InitialTransformInverseTransformBasePointer

template<typename TScalarType , unsigned int NDimensions = 3>
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::InitialTransformInverseTransformBasePointer = typename InitialTransformType::InverseTransformBasePointer

Definition at line 114 of file itkAdvancedCombinationTransform.h.

◆ InitialTransformInverseTransformBaseType

template<typename TScalarType , unsigned int NDimensions = 3>
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::InitialTransformInverseTransformBaseType = typename InitialTransformType::InverseTransformBaseType

Definition at line 113 of file itkAdvancedCombinationTransform.h.

◆ InitialTransformPointer

template<typename TScalarType , unsigned int NDimensions = 3>
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::InitialTransformPointer = typename InitialTransformType::Pointer

Definition at line 111 of file itkAdvancedCombinationTransform.h.

◆ InitialTransformType

template<typename TScalarType , unsigned int NDimensions = 3>
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::InitialTransformType = Superclass

Typedefs for the InitialTransform.

Definition at line 110 of file itkAdvancedCombinationTransform.h.

◆ InverseTransformBaseType

template<typename TScalarType , unsigned int NDimensions = 3>
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::InverseTransformBaseType = typename Superclass::InverseTransformBaseType

Definition at line 98 of file itkAdvancedCombinationTransform.h.

◆ Pointer

template<typename TScalarType , unsigned int NDimensions = 3>
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::Pointer = SmartPointer<Self>

Definition at line 64 of file itkAdvancedCombinationTransform.h.

◆ Self

template<typename TScalarType , unsigned int NDimensions = 3>
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::Self = AdvancedCombinationTransform

Standard itk.

Definition at line 62 of file itkAdvancedCombinationTransform.h.

◆ Superclass

template<typename TScalarType , unsigned int NDimensions = 3>
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::Superclass = AdvancedTransform<TScalarType, NDimensions, NDimensions>

Definition at line 63 of file itkAdvancedCombinationTransform.h.

◆ TransformPointFunctionPointer

template<typename TScalarType , unsigned int NDimensions = 3>
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::TransformPointFunctionPointer = OutputPointType (Self::*)(const InputPointType &) const
private

Typedefs for function pointers.

Definition at line 558 of file itkAdvancedCombinationTransform.h.

◆ TransformType

template<typename TScalarType , unsigned int NDimensions = 3>
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::TransformType = typename Superclass::TransformType

Transform typedefs for the from Superclass.

Definition at line 105 of file itkAdvancedCombinationTransform.h.

◆ TransformTypeConstPointer

template<typename TScalarType , unsigned int NDimensions = 3>
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::TransformTypeConstPointer = typename TransformType::ConstPointer

Definition at line 107 of file itkAdvancedCombinationTransform.h.

◆ TransformTypePointer

template<typename TScalarType , unsigned int NDimensions = 3>
using itk::AdvancedCombinationTransform< TScalarType, NDimensions >::TransformTypePointer = typename TransformType::Pointer

Definition at line 106 of file itkAdvancedCombinationTransform.h.

Constructor & Destructor Documentation

◆ AdvancedCombinationTransform()

template<typename TScalarType , unsigned int NDimensions = 3>
itk::AdvancedCombinationTransform< TScalarType, NDimensions >::AdvancedCombinationTransform ( )
protected

Constructor.

◆ ~AdvancedCombinationTransform()

template<typename TScalarType , unsigned int NDimensions = 3>
itk::AdvancedCombinationTransform< TScalarType, NDimensions >::~AdvancedCombinationTransform ( )
overrideprotecteddefault

Destructor.

Member Function Documentation

◆ EvaluateJacobianWithImageGradientProduct()

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::EvaluateJacobianWithImageGradientProduct ( const InputPointType &  inputPoint,
const MovingImageGradientType movingImageGradient,
DerivativeType &  imageJacobian,
NonZeroJacobianIndicesType nonZeroJacobianIndices 
) const
overridevirtual

Compute the inner product of the Jacobian with the moving image gradient.

Reimplemented from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >.

◆ EvaluateJacobianWithImageGradientProductNoCurrentTransform()

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::EvaluateJacobianWithImageGradientProductNoCurrentTransform ( const InputPointType &  ,
const MovingImageGradientType ,
DerivativeType &  ,
NonZeroJacobianIndicesType  
) const
protected

NO CURRENT TRANSFORM SET: throw an exception.

◆ EvaluateJacobianWithImageGradientProductNoInitialTransform()

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::EvaluateJacobianWithImageGradientProductNoInitialTransform ( const InputPointType &  ,
const MovingImageGradientType ,
DerivativeType &  ,
NonZeroJacobianIndicesType  
) const
protected

CURRENT ONLY: $J(x) = J_1(x)$

◆ EvaluateJacobianWithImageGradientProductUseAddition()

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::EvaluateJacobianWithImageGradientProductUseAddition ( const InputPointType &  ,
const MovingImageGradientType ,
DerivativeType &  ,
NonZeroJacobianIndicesType  
) const
protected

Methods to compute the inner product of the Jacobian with the moving image gradient. ADDITION: $J(x) = J_1(x)$

◆ EvaluateJacobianWithImageGradientProductUseComposition()

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::EvaluateJacobianWithImageGradientProductUseComposition ( const InputPointType &  ,
const MovingImageGradientType ,
DerivativeType &  ,
NonZeroJacobianIndicesType  
) const
protected

COMPOSITION: $J(x) = J_1( T_0(x) )$

Warning
: assumes that input and output point type are the same.

◆ GetClassName()

template<typename TScalarType , unsigned int NDimensions = 3>
virtual const char * itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetClassName ( ) const
virtual

◆ GetFixedParameters()

template<typename TScalarType , unsigned int NDimensions = 3>
const FixedParametersType & itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetFixedParameters ( ) const
override

Get the fixed parameters from the CurrentTransform.

◆ GetHasNonZeroSpatialHessian()

template<typename TScalarType , unsigned int NDimensions = 3>
bool itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetHasNonZeroSpatialHessian ( ) const
overridevirtual

Whether the advanced transform has nonzero matrices.

Reimplemented from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >.

◆ GetInverse()

template<typename TScalarType , unsigned int NDimensions = 3>
bool itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetInverse ( Self inverse) const

Return the inverse $T^{-1}$ of the transform. This is only possible when:

  • both the inverses of the initial and the current transform are defined, and Composition is used: $T^{-1}(y) = T_0^{-1} ( T_1^{-1}(y) )$
  • No initial transform is used and the current transform is defined. In all other cases this function returns false and does not provide an inverse transform. An exception is thrown when no CurrentTransform is set.

◆ GetJacobian()

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetJacobian ( const InputPointType &  inputPoint,
JacobianType &  j,
NonZeroJacobianIndicesType nonZeroJacobianIndices 
) const
overridevirtual

Compute the (sparse) Jacobian of the transformation.

Implements itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >.

◆ GetJacobianNoCurrentTransform()

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetJacobianNoCurrentTransform ( const InputPointType &  ,
JacobianType &  ,
NonZeroJacobianIndicesType  
) const
protected

NO CURRENT TRANSFORM SET: throw an exception.

◆ GetJacobianNoInitialTransform()

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetJacobianNoInitialTransform ( const InputPointType &  ,
JacobianType &  ,
NonZeroJacobianIndicesType  
) const
protected

CURRENT ONLY: $J(x) = J_1(x)$

◆ GetJacobianOfSpatialHessian() [1/2]

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetJacobianOfSpatialHessian ( const InputPointType &  inputPoint,
JacobianOfSpatialHessianType jsh,
NonZeroJacobianIndicesType nonZeroJacobianIndices 
) const
overridevirtual

Compute the Jacobian of the spatial Hessian of the transformation.

Implements itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >.

◆ GetJacobianOfSpatialHessian() [2/2]

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetJacobianOfSpatialHessian ( const InputPointType &  inputPoint,
SpatialHessianType sh,
JacobianOfSpatialHessianType jsh,
NonZeroJacobianIndicesType nonZeroJacobianIndices 
) const
overridevirtual

Compute both the spatial Hessian and the Jacobian of the spatial Hessian of the transformation.

Implements itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >.

◆ GetJacobianOfSpatialHessianNoCurrentTransform() [1/2]

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetJacobianOfSpatialHessianNoCurrentTransform ( const InputPointType &  inputPoint,
JacobianOfSpatialHessianType jsh,
NonZeroJacobianIndicesType nonZeroJacobianIndices 
) const
protected

NO CURRENT TRANSFORM SET: throw an exception.

◆ GetJacobianOfSpatialHessianNoCurrentTransform() [2/2]

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetJacobianOfSpatialHessianNoCurrentTransform ( const InputPointType &  inputPoint,
SpatialHessianType sh,
JacobianOfSpatialHessianType jsh,
NonZeroJacobianIndicesType nonZeroJacobianIndices 
) const
protected

◆ GetJacobianOfSpatialHessianNoInitialTransform() [1/2]

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetJacobianOfSpatialHessianNoInitialTransform ( const InputPointType &  inputPoint,
JacobianOfSpatialHessianType jsh,
NonZeroJacobianIndicesType nonZeroJacobianIndices 
) const
protected

CURRENT ONLY: $J(x) = J_1(x)$

◆ GetJacobianOfSpatialHessianNoInitialTransform() [2/2]

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetJacobianOfSpatialHessianNoInitialTransform ( const InputPointType &  inputPoint,
SpatialHessianType sh,
JacobianOfSpatialHessianType jsh,
NonZeroJacobianIndicesType nonZeroJacobianIndices 
) const
protected

◆ GetJacobianOfSpatialHessianUseAddition() [1/2]

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetJacobianOfSpatialHessianUseAddition ( const InputPointType &  inputPoint,
JacobianOfSpatialHessianType jsh,
NonZeroJacobianIndicesType nonZeroJacobianIndices 
) const
protected

Methods to compute the Jacobian of the spatial Hessian. ADDITION: $J(x) = J_1(x)$

◆ GetJacobianOfSpatialHessianUseAddition() [2/2]

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetJacobianOfSpatialHessianUseAddition ( const InputPointType &  inputPoint,
SpatialHessianType sh,
JacobianOfSpatialHessianType jsh,
NonZeroJacobianIndicesType nonZeroJacobianIndices 
) const
protected

◆ GetJacobianOfSpatialHessianUseComposition() [1/2]

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetJacobianOfSpatialHessianUseComposition ( const InputPointType &  inputPoint,
JacobianOfSpatialHessianType jsh,
NonZeroJacobianIndicesType nonZeroJacobianIndices 
) const
protected

COMPOSITION: $J(x) = J_1( T_0(x) )$

Warning
: assumes that input and output point type are the same.

◆ GetJacobianOfSpatialHessianUseComposition() [2/2]

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetJacobianOfSpatialHessianUseComposition ( const InputPointType &  inputPoint,
SpatialHessianType sh,
JacobianOfSpatialHessianType jsh,
NonZeroJacobianIndicesType nonZeroJacobianIndices 
) const
protected

◆ GetJacobianOfSpatialJacobian() [1/2]

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetJacobianOfSpatialJacobian ( const InputPointType &  inputPoint,
JacobianOfSpatialJacobianType jsj,
NonZeroJacobianIndicesType nonZeroJacobianIndices 
) const
overridevirtual

Compute the Jacobian of the spatial Jacobian of the transformation.

Implements itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >.

◆ GetJacobianOfSpatialJacobian() [2/2]

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetJacobianOfSpatialJacobian ( const InputPointType &  inputPoint,
SpatialJacobianType sj,
JacobianOfSpatialJacobianType jsj,
NonZeroJacobianIndicesType nonZeroJacobianIndices 
) const
overridevirtual

Compute both the spatial Jacobian and the Jacobian of the spatial Jacobian of the transformation.

Implements itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >.

◆ GetJacobianOfSpatialJacobianNoCurrentTransform() [1/2]

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetJacobianOfSpatialJacobianNoCurrentTransform ( const InputPointType &  inputPoint,
JacobianOfSpatialJacobianType jsj,
NonZeroJacobianIndicesType nonZeroJacobianIndices 
) const
protected

NO CURRENT TRANSFORM SET: throw an exception.

◆ GetJacobianOfSpatialJacobianNoCurrentTransform() [2/2]

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetJacobianOfSpatialJacobianNoCurrentTransform ( const InputPointType &  inputPoint,
SpatialJacobianType sj,
JacobianOfSpatialJacobianType jsj,
NonZeroJacobianIndicesType nonZeroJacobianIndices 
) const
protected

◆ GetJacobianOfSpatialJacobianNoInitialTransform() [1/2]

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetJacobianOfSpatialJacobianNoInitialTransform ( const InputPointType &  inputPoint,
JacobianOfSpatialJacobianType jsj,
NonZeroJacobianIndicesType nonZeroJacobianIndices 
) const
protected

CURRENT ONLY: $J(x) = J_1(x)$

◆ GetJacobianOfSpatialJacobianNoInitialTransform() [2/2]

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetJacobianOfSpatialJacobianNoInitialTransform ( const InputPointType &  inputPoint,
SpatialJacobianType sj,
JacobianOfSpatialJacobianType jsj,
NonZeroJacobianIndicesType nonZeroJacobianIndices 
) const
protected

◆ GetJacobianOfSpatialJacobianUseAddition() [1/2]

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetJacobianOfSpatialJacobianUseAddition ( const InputPointType &  inputPoint,
JacobianOfSpatialJacobianType jsj,
NonZeroJacobianIndicesType nonZeroJacobianIndices 
) const
protected

Methods to compute the Jacobian of the spatial Jacobian. ADDITION: $J(x) = J_1(x)$

◆ GetJacobianOfSpatialJacobianUseAddition() [2/2]

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetJacobianOfSpatialJacobianUseAddition ( const InputPointType &  inputPoint,
SpatialJacobianType sj,
JacobianOfSpatialJacobianType jsj,
NonZeroJacobianIndicesType nonZeroJacobianIndices 
) const
protected

◆ GetJacobianOfSpatialJacobianUseComposition() [1/2]

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetJacobianOfSpatialJacobianUseComposition ( const InputPointType &  inputPoint,
JacobianOfSpatialJacobianType jsj,
NonZeroJacobianIndicesType nonZeroJacobianIndices 
) const
protected

COMPOSITION: $J(x) = J_1( T_0(x) )$

Warning
: assumes that input and output point type are the same.

◆ GetJacobianOfSpatialJacobianUseComposition() [2/2]

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetJacobianOfSpatialJacobianUseComposition ( const InputPointType &  inputPoint,
SpatialJacobianType sj,
JacobianOfSpatialJacobianType jsj,
NonZeroJacobianIndicesType nonZeroJacobianIndices 
) const
protected

◆ GetJacobianUseAddition()

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetJacobianUseAddition ( const InputPointType &  ,
JacobianType &  ,
NonZeroJacobianIndicesType  
) const
protected

Methods to compute the sparse Jacobian. ADDITION: $J(x) = J_1(x)$

◆ GetJacobianUseComposition()

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetJacobianUseComposition ( const InputPointType &  ,
JacobianType &  ,
NonZeroJacobianIndicesType  
) const
protected

COMPOSITION: $J(x) = J_1( T_0(x) )$

Warning
: assumes that input and output point type are the same.

◆ GetNthTransform()

template<typename TScalarType , unsigned int NDimensions = 3>
const TransformTypePointer itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetNthTransform ( SizeValueType  n) const

Get the Nth current transform. Exact interface to the ITK4 MultiTransform::GetNthTransform( SizeValueType n )

Warning
The bounds checking is performed.

◆ GetNumberOfNonZeroJacobianIndices()

template<typename TScalarType , unsigned int NDimensions = 3>
NumberOfParametersType itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetNumberOfNonZeroJacobianIndices ( ) const
overridevirtual

Get the number of nonzero Jacobian indices. By default all.

Reimplemented from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >.

◆ GetNumberOfParameters()

template<typename TScalarType , unsigned int NDimensions = 3>
NumberOfParametersType itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetNumberOfParameters ( ) const
override

Return the number of parameters that completely define the CurrentTransform.

◆ GetNumberOfTransforms()

template<typename TScalarType , unsigned int NDimensions = 3>
SizeValueType itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetNumberOfTransforms ( ) const

Return the number of sub-transforms.

◆ GetParameters()

template<typename TScalarType , unsigned int NDimensions = 3>
const ParametersType & itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetParameters ( ) const
override

Get the transformation parameters from the CurrentTransform.

◆ GetSpatialHessian()

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetSpatialHessian ( const InputPointType &  inputPoint,
SpatialHessianType sh 
) const
overridevirtual

Compute the spatial Hessian of the transformation.

Implements itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >.

◆ GetSpatialHessianNoCurrentTransform()

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetSpatialHessianNoCurrentTransform ( const InputPointType &  inputPoint,
SpatialHessianType sh 
) const
protected

NO CURRENT TRANSFORM SET: throw an exception.

◆ GetSpatialHessianNoInitialTransform()

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetSpatialHessianNoInitialTransform ( const InputPointType &  inputPoint,
SpatialHessianType sh 
) const
protected

CURRENT ONLY: $J(x) = J_1(x)$

◆ GetSpatialHessianUseAddition()

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetSpatialHessianUseAddition ( const InputPointType &  inputPoint,
SpatialHessianType sh 
) const
protected

Methods to compute the spatial Hessian. ADDITION: $J(x) = J_1(x)$

◆ GetSpatialHessianUseComposition()

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetSpatialHessianUseComposition ( const InputPointType &  inputPoint,
SpatialHessianType sh 
) const
protected

COMPOSITION: $J(x) = J_1( T_0(x) )$

Warning
: assumes that input and output point type are the same.

◆ GetSpatialJacobian()

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetSpatialJacobian ( const InputPointType &  inputPoint,
SpatialJacobianType sj 
) const
overridevirtual

Compute the spatial Jacobian of the transformation.

Implements itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >.

◆ GetSpatialJacobianNoCurrentTransform()

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetSpatialJacobianNoCurrentTransform ( const InputPointType &  inputPoint,
SpatialJacobianType sj 
) const
protected

NO CURRENT TRANSFORM SET: throw an exception.

◆ GetSpatialJacobianNoInitialTransform()

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetSpatialJacobianNoInitialTransform ( const InputPointType &  inputPoint,
SpatialJacobianType sj 
) const
protected

CURRENT ONLY: $J(x) = J_1(x)$

◆ GetSpatialJacobianUseAddition()

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetSpatialJacobianUseAddition ( const InputPointType &  inputPoint,
SpatialJacobianType sj 
) const
protected

Methods to compute the spatial Jacobian. ADDITION: $J(x) = J_1(x)$

◆ GetSpatialJacobianUseComposition()

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetSpatialJacobianUseComposition ( const InputPointType &  inputPoint,
SpatialJacobianType sj 
) const
protected

COMPOSITION: $J(x) = J_1( T_0(x) )$

Warning
: assumes that input and output point type are the same.

◆ GetTransformCategory()

template<typename TScalarType , unsigned int NDimensions = 3>
TransformCategoryEnum itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetTransformCategory ( ) const
override

Special handling for combination transform. If all transforms are linear, then return category Linear. Otherwise if all transforms set to optimize are DisplacementFields, then return DisplacementField category.

◆ GetUseAddition()

template<typename TScalarType , unsigned int NDimensions = 3>
virtual bool itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetUseAddition ( ) const
virtual

◆ GetUseComposition()

template<typename TScalarType , unsigned int NDimensions = 3>
virtual bool itk::AdvancedCombinationTransform< TScalarType, NDimensions >::GetUseComposition ( ) const
virtual

◆ HasNonZeroJacobianOfSpatialHessian()

template<typename TScalarType , unsigned int NDimensions = 3>
bool itk::AdvancedCombinationTransform< TScalarType, NDimensions >::HasNonZeroJacobianOfSpatialHessian ( ) const

◆ IsLinear()

template<typename TScalarType , unsigned int NDimensions = 3>
bool itk::AdvancedCombinationTransform< TScalarType, NDimensions >::IsLinear ( ) const
override

Return whether the transform is linear (or actually: affine) Returns true when both initial and current transform are linear

◆ ITK_DISALLOW_COPY_AND_MOVE()

template<typename TScalarType , unsigned int NDimensions = 3>
itk::AdvancedCombinationTransform< TScalarType, NDimensions >::ITK_DISALLOW_COPY_AND_MOVE ( AdvancedCombinationTransform< TScalarType, NDimensions >  )

◆ itkGetModifiableObjectMacro() [1/2]

template<typename TScalarType , unsigned int NDimensions = 3>
itk::AdvancedCombinationTransform< TScalarType, NDimensions >::itkGetModifiableObjectMacro ( CurrentTransform  ,
CurrentTransformType   
)

◆ itkGetModifiableObjectMacro() [2/2]

template<typename TScalarType , unsigned int NDimensions = 3>
itk::AdvancedCombinationTransform< TScalarType, NDimensions >::itkGetModifiableObjectMacro ( InitialTransform  ,
InitialTransformType   
)

◆ itkStaticConstMacro()

template<typename TScalarType , unsigned int NDimensions = 3>
itk::AdvancedCombinationTransform< TScalarType, NDimensions >::itkStaticConstMacro ( SpaceDimension  ,
unsigned int  ,
NDimensions   
)

Input and Output space dimension.

◆ New()

template<typename TScalarType , unsigned int NDimensions = 3>
static Pointer itk::AdvancedCombinationTransform< TScalarType, NDimensions >::New ( )
static

New method for creating an object using a factory.

◆ SetCurrentTransform()

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::SetCurrentTransform ( CurrentTransformType _arg)

Set/Get a pointer to the CurrentTransform. Make sure to set the CurrentTransform before calling functions like TransformPoint(), GetJacobian(), SetParameters() etc.

◆ SetFixedParameters()

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::SetFixedParameters ( const FixedParametersType &  fixedParam)
override

Set the fixed parameters in the CurrentTransform.

◆ SetInitialTransform()

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::SetInitialTransform ( InitialTransformType _arg)

Set/Get a pointer to the InitialTransform.

◆ SetParameters()

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::SetParameters ( const ParametersType &  param)
override

Set the transformation parameters in the CurrentTransform.

◆ SetParametersByValue()

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::SetParametersByValue ( const ParametersType &  param)
override

Set the transformation parameters in the CurrentTransform. This method forces the transform to copy the parameters.

◆ SetUseAddition()

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::SetUseAddition ( bool  _arg)

Control the way transforms are combined.

◆ SetUseComposition()

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::SetUseComposition ( bool  _arg)

Control the way transforms are combined.

◆ TransformCovariantVector()

template<typename TScalarType , unsigned int NDimensions = 3>
OutputCovariantVectorType itk::AdvancedCombinationTransform< TScalarType, NDimensions >::TransformCovariantVector ( const InputCovariantVectorType &  ) const
inlineoverride

Definition at line 186 of file itkAdvancedCombinationTransform.h.

◆ TransformPoint()

template<typename TScalarType , unsigned int NDimensions = 3>
OutputPointType itk::AdvancedCombinationTransform< TScalarType, NDimensions >::TransformPoint ( const InputPointType &  point) const
override

Method to transform a point.

◆ TransformPointNoCurrentTransform()

template<typename TScalarType , unsigned int NDimensions = 3>
OutputPointType itk::AdvancedCombinationTransform< TScalarType, NDimensions >::TransformPointNoCurrentTransform ( const InputPointType &  point) const
protected

NO CURRENT TRANSFORM SET: throw an exception.

◆ TransformPointNoInitialTransform()

template<typename TScalarType , unsigned int NDimensions = 3>
OutputPointType itk::AdvancedCombinationTransform< TScalarType, NDimensions >::TransformPointNoInitialTransform ( const InputPointType &  point) const
protected

CURRENT ONLY: $T(x) = T_1(x)$

◆ TransformPointUseAddition()

template<typename TScalarType , unsigned int NDimensions = 3>
OutputPointType itk::AdvancedCombinationTransform< TScalarType, NDimensions >::TransformPointUseAddition ( const InputPointType &  point) const
protected

Methods to transform a point. ADDITION: $T(x) = T_0(x) + T_1(x) - x$

◆ TransformPointUseComposition()

template<typename TScalarType , unsigned int NDimensions = 3>
OutputPointType itk::AdvancedCombinationTransform< TScalarType, NDimensions >::TransformPointUseComposition ( const InputPointType &  point) const
protected

COMPOSITION: $T(x) = T_1( T_0(x) )$

Warning
: assumes that input and output point type are the same.

◆ TransformVector() [1/2]

template<typename TScalarType , unsigned int NDimensions = 3>
OutputVectorType itk::AdvancedCombinationTransform< TScalarType, NDimensions >::TransformVector ( const InputVectorType &  ) const
inlineoverride

ITK4 change: The following pure virtual functions must be overloaded. For now just throw an exception, since these are not used in elastix.

Definition at line 170 of file itkAdvancedCombinationTransform.h.

◆ TransformVector() [2/2]

template<typename TScalarType , unsigned int NDimensions = 3>
OutputVnlVectorType itk::AdvancedCombinationTransform< TScalarType, NDimensions >::TransformVector ( const InputVnlVectorType &  ) const
inlineoverride

Definition at line 178 of file itkAdvancedCombinationTransform.h.

◆ UpdateCombinationMethod()

template<typename TScalarType , unsigned int NDimensions = 3>
void itk::AdvancedCombinationTransform< TScalarType, NDimensions >::UpdateCombinationMethod ( )
protected

Set the SelectedTransformPointFunction and the SelectedGetJacobianFunction.

Field Documentation

◆ m_CurrentTransform

template<typename TScalarType , unsigned int NDimensions = 3>
CurrentTransformPointer itk::AdvancedCombinationTransform< TScalarType, NDimensions >::m_CurrentTransform { nullptr }
private

Definition at line 555 of file itkAdvancedCombinationTransform.h.

◆ m_InitialTransform

template<typename TScalarType , unsigned int NDimensions = 3>
InitialTransformPointer itk::AdvancedCombinationTransform< TScalarType, NDimensions >::m_InitialTransform { nullptr }
private

Declaration of members.

Definition at line 554 of file itkAdvancedCombinationTransform.h.

◆ m_SelectedEvaluateJacobianWithImageGradientProductFunction

template<typename TScalarType , unsigned int NDimensions = 3>
EvaluateJacobianWithImageGradientProductFunctionPointer itk::AdvancedCombinationTransform< TScalarType, NDimensions >::m_SelectedEvaluateJacobianWithImageGradientProductFunction
private
Initial value:
{
}
void EvaluateJacobianWithImageGradientProductNoInitialTransform(const InputPointType &, const MovingImageGradientType &, DerivativeType &, NonZeroJacobianIndicesType &) const

Definition at line 601 of file itkAdvancedCombinationTransform.h.

◆ m_SelectedGetJacobianOfSpatialHessianFunction

template<typename TScalarType , unsigned int NDimensions = 3>
GetJacobianOfSpatialHessianFunctionPointer itk::AdvancedCombinationTransform< TScalarType, NDimensions >::m_SelectedGetJacobianOfSpatialHessianFunction
private
Initial value:
{
}
void GetJacobianOfSpatialHessianNoCurrentTransform(const InputPointType &inputPoint, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const

Definition at line 612 of file itkAdvancedCombinationTransform.h.

◆ m_SelectedGetJacobianOfSpatialHessianFunction2

template<typename TScalarType , unsigned int NDimensions = 3>
GetJacobianOfSpatialHessianFunctionPointer2 itk::AdvancedCombinationTransform< TScalarType, NDimensions >::m_SelectedGetJacobianOfSpatialHessianFunction2
private

◆ m_SelectedGetJacobianOfSpatialJacobianFunction

template<typename TScalarType , unsigned int NDimensions = 3>
GetJacobianOfSpatialJacobianFunctionPointer itk::AdvancedCombinationTransform< TScalarType, NDimensions >::m_SelectedGetJacobianOfSpatialJacobianFunction
private
Initial value:
{
}
void GetJacobianOfSpatialJacobianNoCurrentTransform(const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const

Definition at line 606 of file itkAdvancedCombinationTransform.h.

◆ m_SelectedGetJacobianOfSpatialJacobianFunction2

template<typename TScalarType , unsigned int NDimensions = 3>
GetJacobianOfSpatialJacobianFunctionPointer2 itk::AdvancedCombinationTransform< TScalarType, NDimensions >::m_SelectedGetJacobianOfSpatialJacobianFunction2
private

◆ m_SelectedGetSparseJacobianFunction

template<typename TScalarType , unsigned int NDimensions = 3>
GetSparseJacobianFunctionPointer itk::AdvancedCombinationTransform< TScalarType, NDimensions >::m_SelectedGetSparseJacobianFunction { &Self::GetJacobianNoCurrentTransform }
private

A pointer to one of the following functions:

  • GetJacobianUseAddition,
  • GetJacobianUseComposition,
  • GetJacobianNoCurrentTransform
  • GetJacobianNoInitialTransform. More of these. Set everything to have no current transform.

Definition at line 600 of file itkAdvancedCombinationTransform.h.

◆ m_SelectedGetSpatialHessianFunction

template<typename TScalarType , unsigned int NDimensions = 3>
GetSpatialHessianFunctionPointer itk::AdvancedCombinationTransform< TScalarType, NDimensions >::m_SelectedGetSpatialHessianFunction { &Self::GetSpatialHessianNoCurrentTransform }
private

Definition at line 605 of file itkAdvancedCombinationTransform.h.

◆ m_SelectedGetSpatialJacobianFunction

template<typename TScalarType , unsigned int NDimensions = 3>
GetSpatialJacobianFunctionPointer itk::AdvancedCombinationTransform< TScalarType, NDimensions >::m_SelectedGetSpatialJacobianFunction { &Self::GetSpatialJacobianNoCurrentTransform }
private

Definition at line 604 of file itkAdvancedCombinationTransform.h.

◆ m_SelectedTransformPointFunction

template<typename TScalarType , unsigned int NDimensions = 3>
TransformPointFunctionPointer itk::AdvancedCombinationTransform< TScalarType, NDimensions >::m_SelectedTransformPointFunction { &Self::TransformPointNoCurrentTransform }
private

A pointer to one of the following functions:

  • TransformPointUseAddition,
  • TransformPointUseComposition,
  • TransformPointNoCurrentTransform
  • TransformPointNoInitialTransform.

Definition at line 589 of file itkAdvancedCombinationTransform.h.

◆ m_UseAddition

template<typename TScalarType , unsigned int NDimensions = 3>
bool itk::AdvancedCombinationTransform< TScalarType, NDimensions >::m_UseAddition { false }
private

How to combine the transformations. Composition by default.

Definition at line 620 of file itkAdvancedCombinationTransform.h.

◆ m_UseComposition

template<typename TScalarType , unsigned int NDimensions = 3>
bool itk::AdvancedCombinationTransform< TScalarType, NDimensions >::m_UseComposition { true }
private

Definition at line 621 of file itkAdvancedCombinationTransform.h.

◆ NoCurrentTransformSet

template<typename TScalarType , unsigned int NDimensions = 3>
constexpr const char* itk::AdvancedCombinationTransform< TScalarType, NDimensions >::NoCurrentTransformSet = "No current transform set in the AdvancedCombinationTransform"
staticconstexprprivate

Exception text.

Definition at line 551 of file itkAdvancedCombinationTransform.h.



Generated on 2023-01-13 for elastix by doxygen 1.9.6 elastix logo