18 #ifndef sitkBSplineTransform_h
19 #define sitkBSplineTransform_h
55 explicit BSplineTransform( std::vector<Image> &coefficientImages,
unsigned int order=3 );
64 std::string
GetName()
const {
return std::string (
"BSplineTransform"); }
69 SITK_RETURN_SELF_TYPE_HEADER SetTransformDomainDirection(
const std::vector<double> &);
70 std::vector<double> GetTransformDomainDirection()
const;
71 SITK_RETURN_SELF_TYPE_HEADER SetTransformDomainMeshSize(
const std::vector<unsigned int>&);
72 std::vector<unsigned int> GetTransformDomainMeshSize()
const;
73 SITK_RETURN_SELF_TYPE_HEADER SetTransformDomainOrigin(
const std::vector<double>&);
74 std::vector<double> GetTransformDomainOrigin()
const;
75 SITK_RETURN_SELF_TYPE_HEADER SetTransformDomainPhysicalDimensions(
const std::vector<double> &);
76 std::vector<double> GetTransformDomainPhysicalDimensions()
const;
87 std::vector<Image> GetCoefficientImages ()
const;
89 unsigned int GetOrder()
const;
93 virtual void SetPimpleTransform( PimpleTransformBase *pimpleTransform );
97 using Superclass::AddTransform;
103 template<
typename TransformType >
104 void operator() (
void )
const
106 TransformType *t =
dynamic_cast<TransformType*
>(transform);
107 if (t && (
typeid(*t) ==
typeid(TransformType)))
116 template <
typename TransformType>
117 void InternalInitialization(TransformType *transform);
119 static PimpleTransformBase *CreateBSplinePimpleTransform(
unsigned int dimension,
unsigned int order);
121 template <
unsigned int ND>
122 static PimpleTransformBase *CreateBSplinePimpleTransform(
unsigned int order);
124 nsstd::function<std::vector<double> ()> m_pfGetTransformDomainDirection;
125 nsstd::function<void (const std::vector<double> &)> m_pfSetTransformDomainDirection;
126 nsstd::function<std::vector<unsigned int> ()> m_pfGetTransformDomainMeshSize;
127 nsstd::function<void (const std::vector<unsigned int>&)> m_pfSetTransformDomainMeshSize;
128 nsstd::function<std::vector<double> ()> m_pfGetTransformDomainOrigin;
129 nsstd::function<void (const std::vector<double>&)> m_pfSetTransformDomainOrigin;
130 nsstd::function<std::vector<double> ()> m_pfGetTransformDomainPhysicalDimensions;
131 nsstd::function<void (const std::vector<double> &)> m_pfSetTransformDomainPhysicalDimensions;
133 nsstd::function<std::vector<Image> ()> m_pfGetCoefficientImages;
136 nsstd::function<void (std::vector<Image> &)> m_pfSetCoefficientImages;
143 #endif // sitkBSplineTransform_h
#define SITKCommon_EXPORT