18 #ifndef itkMultiTransform_h
19 #define itkMultiTransform_h
62 template <
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;
99 using typename Superclass::TransformCategoryEnum;
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();
251 IsLinear()
const override;
255 TransformCategoryEnum
256 GetTransformCategory()
const override;
265 const ParametersType &
266 GetParameters()
const override;
271 SetParameters(
const ParametersType & inputParameters)
override;
275 const FixedParametersType &
276 GetFixedParameters()
const override;
281 SetFixedParameters(
const FixedParametersType & inputParameters)
override;
284 NumberOfParametersType
285 GetNumberOfParameters()
const override;
288 NumberOfParametersType
289 GetNumberOfLocalParameters()
const override;
292 NumberOfParametersType
293 GetNumberOfFixedParameters()
const override;
298 UpdateTransformParameters(
const DerivativeType & update, ScalarType factor = 1.0)
override;
306 GetInverse(
Self * inverse)
const;
316 PrintSelf(std::ostream & os,
Indent indent)
const override;
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();
350 mutable NumberOfParametersType m_NumberOfLocalParameters{};
356 #ifndef ITK_MANUAL_INSTANTIATION
357 # include "itkMultiTransform.hxx"
360 #endif // itkMultiTransform_h