18 #ifndef sitkTransform_h
19 #define sitkTransform_h
34 #if ( ( SITK_ITK_VERSION_MAJOR == 4 ) && ( SITK_ITK_VERSION_MINOR < 5 ) )
46 class PimpleTransformBase;
97 template<
unsigned int NDimension>
101 sitkStaticAssert( NDimension == 2 || NDimension == 3,
"Only 2D and 3D transforms are supported" );
106 this->InternalInitialization<NDimension>(
sitkComposite, compositeTransform );
160 unsigned int GetDimension(
void )
const;
167 void SetParameters (
const std::vector<double>& parameters );
168 std::vector<double> GetParameters(
void )
const;
174 void SetFixedParameters (
const std::vector<double>& parameters );
175 std::vector<double> GetFixedParameters(
void )
const;
179 SITK_RETURN_SELF_TYPE_HEADER AddTransform(
Transform t );
181 std::vector< double > TransformPoint(
const std::vector< double > &point )
const;
186 virtual bool IsLinear()
const;
188 virtual void SetIdentity();
200 virtual bool SetInverse();
211 std::string ToString(
void )
const;
215 virtual std::string GetName()
const;
224 void MakeUnique(
void );
229 explicit Transform( PimpleTransformBase *pimpleTransform );
234 virtual void SetPimpleTransform( PimpleTransformBase *pimpleTransform );
238 template<
unsigned int VDimension>
245 template<
typename TransformType >
246 void operator() (
void )
const
248 TransformType *t =
dynamic_cast<TransformType*
>(transform);
257 template<
class TransformType>
258 void InternalInitialization( TransformType *t );
262 template<
unsigned int >
263 void InternalBSplineInitialization(
Image & img );
265 template<
typename TDisplacementType >
266 void InternalDisplacementInitialization(
Image & img );
268 template <
class TMemberFunctionPo
inter >
271 typedef typename ::detail::FunctionTraits<TMemberFunctionPointer>::ClassType
ObjectType;
273 template<
typename TImageType >
274 TMemberFunctionPointer operator() (
void )
const
276 return &ObjectType::template InternalDisplacementInitialization< TImageType >;
296 #endif // sitkTransform_h