18#ifndef sitkTransform_h
19#define sitkTransform_h
31template <
typename TScalar>
36template <
typename TScalar,
unsigned int NDimension>
43class PimpleTransformBase;
99 template <
unsigned int NDimension>
103 static_assert(NDimension == 2 || NDimension == 3,
"Only 2D and 3D transforms are supported");
104 if (compositeTransform ==
nullptr)
279 explicit Transform(PimpleTransformBase * pimpleTransform);
288 template <
unsigned int VDimension>
296 template <
typename TransformType>
300 TransformType * t =
dynamic_cast<TransformType *
>(
transform);
303 that->InternalInitialization<TransformType>(t);
309 template <
class TransformType>
316 template <
unsigned int>
320 template <
typename TDisplacementType>
324 template <
class TMemberFunctionPo
inter>
327 using ObjectType = typename ::detail::FunctionTraits<TMemberFunctionPointer>::ClassType;
329 template <
typename TImageType>
330 TMemberFunctionPointer
The Image class for SimpleITK.
@ sitkComposeScaleSkewVersor
SITKCommon_EXPORT void WriteTransform(const Transform &transform, const PathType &filename)
SITKCommon_EXPORT Transform ReadTransform(const PathType &filename)
*par Constraints *The filter image with at least two dimensions and a vector *length of at least The theory supports extension to scalar but *the implementation of the itk vector classes do not **The template parameter TRealType must be floating point(float or double) or *a user-defined "real" numerical type with arithmetic operations defined *sufficient to compute derivatives. **\par Performance *This filter will automatically multithread if run with *SetUsePrincipleComponents
TransformBaseTemplate< double > TransformBase
#define SITKCommon_EXPORT
#define sitkExceptionMacro(x)