18#ifndef __itkEulerTransform_H__
19#define __itkEulerTransform_H__
34template<
unsigned int Dimension >
39 template<
class TScalarType >
45 typedef AdvancedMatrixOffsetTransformBase< TScalarType, Dimension, Dimension > EulerTransform_tmp;
62 template<
class TScalarType >
68 typedef AdvancedRigid2DTransform< TScalarType > EulerTransform_tmp;
85 template<
class TScalarType >
91 typedef AdvancedEuler3DTransform< TScalarType > EulerTransform_tmp;
103template<
class TScalarType,
unsigned int Dimension >
104class EulerGroupTemplate
108 typedef EulerGroupTemplate Self;
110 itkStaticConstMacro( SpaceDimension,
unsigned int, Dimension );
115 template<
unsigned int D >
120 typedef EulerGroup< D > Euler;
123 typedef EulerGroupWrap< Dimension > EulerGroupWrapInstance;
124 typedef typename EulerGroupWrapInstance::Euler Euler;
126 typedef typename Euler::template Dummy< ScalarType > EulerDummy;
127 typedef typename EulerDummy::EulerTransform_tmp EulerTransform_tmp;
140template<
class TScalarType,
unsigned int Dimension >
142 public EulerGroupTemplate<
143 TScalarType, Dimension >::EulerTransform_tmp
149 typedef typename EulerGroupTemplate<
181 typedef typename Superclass
184 typedef typename Superclass
187 typedef typename Superclass
196 static_assert(SpaceDimension != 3,
"This is not the specialization is 3D!");
205 static_assert(SpaceDimension != 3,
"This is not the specialization is 3D!");
222template<
class TScalarType >
224 public EulerGroupTemplate<
225 TScalarType, 3 >::EulerTransform_tmp
231 typedef typename EulerGroupTemplate<
253 static_assert(SpaceDimension == 3,
"This specialization is for 3D only!");
256 typename Euler3DTransformType::Pointer transform
257 =
dynamic_cast< Euler3DTransformType *
>( this );
260 transform->Euler3DTransformType::SetComputeZYX( arg );
271 static_assert(SpaceDimension == 3,
"This specialization is for 3D only!");
274 typename Euler3DTransformType::ConstPointer transform
275 =
dynamic_cast< const Euler3DTransformType *
>( this );
279 return transform->Euler3DTransformType::GetComputeZYX();