18 #ifndef itkMultiTransform_h
19 #define itkMultiTransform_h
62 template <
typename TParametersValueType = double,
63 unsigned int NDimensions = 3,
64 unsigned int NSubDimensions = NDimensions>
148 static constexpr
unsigned int InputDimension = NDimensions;
149 static constexpr
unsigned int OutputDimension = NDimensions;
151 static constexpr
unsigned int SubInputDimension = NSubDimensions;
152 static constexpr
unsigned int SubOutputDimension = NSubDimensions;
162 this->PushBackTransform(t);
169 this->AddTransform(t);
176 this->PushFrontTransform(t);
183 this->PopBackTransform();
187 virtual const TransformType *
190 return this->m_TransformQueue.front().GetPointer();
193 virtual const TransformType *
196 return this->m_TransformQueue.back().GetPointer();
199 virtual const TransformTypePointer
204 return this->m_TransformQueue[n];
209 virtual TransformType *
212 return this->m_TransformQueue[n].GetPointer();
215 virtual const TransformType *
218 return this->m_TransformQueue[n].GetPointer();
222 virtual const TransformQueueType &
225 return this->m_TransformQueue;
232 return this->m_TransformQueue.empty();
239 return static_cast<SizeValueType>(this->m_TransformQueue.size());
246 this->m_TransformQueue.clear();
253 IsLinear()
const override;
257 TransformCategoryEnum
258 GetTransformCategory()
const override;
267 const ParametersType &
268 GetParameters()
const override;
273 SetParameters(
const ParametersType & inputParameters)
override;
277 const FixedParametersType &
278 GetFixedParameters()
const override;
283 SetFixedParameters(
const FixedParametersType & inputParameters)
override;
286 NumberOfParametersType
287 GetNumberOfParameters()
const override;
290 NumberOfParametersType
291 GetNumberOfLocalParameters()
const override;
294 NumberOfParametersType
295 GetNumberOfFixedParameters()
const override;
300 UpdateTransformParameters(
const DerivativeType & update, ScalarType factor = 1.0)
override;
308 GetInverse(Self * inverse)
const;
318 PrintSelf(std::ostream & os,
Indent indent)
const override;
323 this->m_TransformQueue.push_front(t);
330 this->m_TransformQueue.push_back(t);
337 this->m_TransformQueue.pop_front();
344 this->m_TransformQueue.pop_back();
358 #ifndef ITK_MANUAL_INSTANTIATION
359 # include "itkMultiTransform.hxx"
362 #endif // itkMultiTransform_h