00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __freITKTransformControllerBase_h
00023 #define __freITKTransformControllerBase_h
00024
00025 #include "freTransformControllerBase.h"
00026 #include "freITKTransformControllerInterface.h"
00027
00028 namespace FREE
00029 {
00030
00036 freControllerIDMacro(ITKTransformControllerBase, "ITKTransformControllerBase");
00037 template <class TITKTransform, unsigned int VDimension>
00038 class ITKTransformControllerBase : public TransformControllerBase< TITKTransform, VDimension >,
00039 public ITKTransformControllerInterface<typename TITKTransform::ScalarType,
00040 TITKTransform::InputSpaceDimension,
00041 TITKTransform::OutputSpaceDimension>
00042 {
00043 public:
00044 typedef TITKTransform ComponentType;
00045 typedef TransformControllerBase<ComponentType, VDimension> Superclass;
00046 typedef ITKTransformControllerInterface<typename ComponentType::ScalarType,
00047 ComponentType::InputSpaceDimension,
00048 ComponentType::OutputSpaceDimension> InterfaceType;
00049
00050 typedef typename Superclass::GenericComponentType GenericComponentType;
00051 typedef typename Superclass::GenericComponentPointer GenericComponentPointer;
00052
00053 typedef typename InterfaceType::TransformFunctionMediaType TransformFunctionMediaType;
00054 typedef typename InterfaceType::TransformFunctionMediaPointer TransformFunctionMediaPointer;
00055 typedef typename InterfaceType::TransformParametersType TransformParametersType;
00056
00057 itkTypeMacro(ITKTransformControllerBase, TransformControllerBase);
00058
00063 virtual GenericComponentPointer BuildInverseTransform(GenericComponentType* pTransformComponent) const;
00064
00072 virtual TransformFunctionMediaPointer GenerateTransformationFunction(SessionComponentCache* pTransformCache,
00073 const TransformParametersType& parameters) const;
00074
00081 virtual TransformFunctionMediaPointer GenerateInverseTransformationFunction(SessionComponentCache* pTransformCache,
00082 const TransformParametersType& parameters) const;
00083 protected:
00090 virtual void CopyFixedParameters(ComponentType* pOrigin, ComponentType* pDestination) const;
00091
00094 ITKTransformControllerBase();
00095 };
00096
00097 }
00098
00099 #ifndef ITK_MANUAL_INSTANTIATION
00100 #include "freITKTransformControllerBase.txx"
00101 #endif
00102
00103 #endif