18#ifndef itkMultiTransform_h
19#define itkMultiTransform_h
62template <
typename TParametersValueType =
double,
unsigned int VDimension = 3,
unsigned int VSubDimensions = VDimension>
84 using typename Superclass::ParametersType;
85 using typename Superclass::ParametersValueType;
86 using typename Superclass::FixedParametersType;
87 using typename Superclass::FixedParametersValueType;
91 using typename Superclass::DerivativeType;
94 using typename Superclass::JacobianType;
95 using typename Superclass::JacobianPositionType;
96 using typename Superclass::InverseJacobianPositionType;
99 using typename Superclass::TransformCategoryEnum;
104 using typename Superclass::InverseTransformBasePointer;
107 using typename Superclass::InputPointType;
108 using typename Superclass::OutputPointType;
111 using typename Superclass::InputVectorType;
112 using typename Superclass::OutputVectorType;
115 using typename Superclass::InputCovariantVectorType;
116 using typename Superclass::OutputCovariantVectorType;
119 using typename Superclass::InputVnlVectorType;
120 using typename Superclass::OutputVnlVectorType;
123 using typename Superclass::InputVectorPixelType;
124 using typename Superclass::OutputVectorPixelType;
127 using typename Superclass::InputDiffusionTensor3DType;
128 using typename Superclass::OutputDiffusionTensor3DType;
131 using typename Superclass::InputSymmetricSecondRankTensorType;
132 using typename Superclass::OutputSymmetricSecondRankTensorType;
143 using typename Superclass::NumberOfParametersType;
146 static constexpr unsigned int InputDimension = VDimension;
147 static constexpr unsigned int OutputDimension = VDimension;
149 static constexpr unsigned int SubInputDimension = VSubDimensions;
150 static constexpr unsigned int SubOutputDimension = VSubDimensions;
160 this->PushBackTransform(t);
167 this->AddTransform(t);
174 this->PushFrontTransform(t);
181 this->PopBackTransform();
185 virtual const TransformType *
188 return this->m_TransformQueue.front().GetPointer();
191 virtual const TransformType *
194 return this->m_TransformQueue.back().GetPointer();
197 virtual const TransformTypePointer
202 return this->m_TransformQueue[n];
207 virtual TransformType *
210 return this->m_TransformQueue[n].GetPointer();
213 virtual const TransformType *
216 return this->m_TransformQueue[n].GetPointer();
220 virtual const TransformQueueType &
223 return this->m_TransformQueue;
230 return this->m_TransformQueue.empty();
237 return static_cast<SizeValueType>(this->m_TransformQueue.size());
244 this->m_TransformQueue.clear();
321 this->m_TransformQueue.push_front(t);
328 this->m_TransformQueue.push_back(t);
335 this->m_TransformQueue.pop_front();
342 this->m_TransformQueue.pop_back();
356#ifndef ITK_MANUAL_INSTANTIATION
357# include "itkMultiTransform.hxx"
Array class with size defined at construction time.
Control indentation during Print() invocation.
Light weight base class for most itk classes.
Class to hold and manage different parameter types used during optimization.
SmartPointer< Self > Pointer
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
SizeValueType ModifiedTimeType
unsigned long SizeValueType