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   with a current transform  .
Two methods of combining the transforms are supported: 
Addition:    
Composition:  
 
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  .
Note: It is mandatory to set a current transform. An initial transform is not mandatory. 
Definition at line 56  of file itkAdvancedCombinationTransform.h .
 
 
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 
   
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 
   
 
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 ¶m) override 
   
void  SetParametersByValue  (const ParametersType ¶m) 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 
   
void  ComputeJacobianWithRespectToParameters  (const InputPointType &, JacobianType &) const override 
   
virtual bool   GetHasNonZeroJacobianOfSpatialHessian  () const 
   
  ITK_DISALLOW_COPY_AND_MOVE  (AdvancedTransform ) 
   
  itkStaticConstMacro  (InputSpaceDimension, unsigned int , NInputDimensions) 
   
  itkStaticConstMacro  (OutputSpaceDimension, unsigned int , NOutputDimensions) 
   
 
  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 
   
  AdvancedTransform  ()=default 
   
  ~AdvancedTransform  () override=default 
   
 
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