19 #ifndef __itkSphericalPolarFourierGenerator_h 20 #define __itkSphericalPolarFourierGenerator_h 22 #include <itkObject.h> 23 #include <itkObjectFactory.h> 36 template<
class PreciseType =
double>
60 itkSetMacro(SPFType, SPFType);
61 itkGetMacro(SPFType, SPFType);
63 itkSetMacro(Scale,
double );
64 itkGetMacro(Scale,
double );
72 void SetNLSPF(
const int n,
const int l,
const SPFType spf)
74 SetN(n); SetL(l); SetSPFType(spf);
77 PreciseType Evaluate(
const PreciseType qrValue,
const bool isFourier=
false)
const;
79 PreciseType GetNormalizeFacotr(
const bool isFourier=
false)
const;
96 void operator=(
const Self&);
105 template<
class PreciseType =
double>
124 using RadialType::SPF;
125 using RadialType::DSPF;
126 using RadialType::SHORE;
131 if (n!=m_Radial->GetN())
139 if (l!=m_Radial->GetL())
146 int GetN()
const {
return m_Radial->GetN();}
147 int GetL()
const {
return m_Radial->GetL();}
152 void SetNLM(
const int n,
const int l,
const int m)
161 if (scale!=m_Radial->GetScale())
163 m_Radial->SetScale(scale);
167 double GetScale()
const {
return m_Radial->GetScale();}
171 if (model!=m_Radial->GetSPFType())
173 m_Radial->SetSPFType(model);
179 PreciseType EvaluateRadial(
const PreciseType qrValue,
const bool isFourier=
false)
const;
181 PreciseType Evaluate(
const PreciseType qrValue,
const PreciseType theta,
const PreciseType phi,
const bool isFourier=
false)
const;
185 return m_Radial->GetNormalizeFacotr(isFourier);
192 m_Radial = RadialType::New();
200 void PrintSelf(std::ostream & os, Indent indent)
const;
207 void operator=(
const Self&);
214 #define ITK_TEMPLATE_SphericalPolarFourierRadialGenerator(_, EXPORT, x, y) namespace itk { \ 215 _(2(class EXPORT SphericalPolarFourierRadialGenerator< ITK_TEMPLATE_2 x >)) \ 216 namespace Templates { typedef SphericalPolarFourierRadialGenerator< ITK_TEMPLATE_2 x > SphericalPolarFourierRadialGenerator##y; } \ 219 #if ITK_TEMPLATE_EXPLICIT 220 # include "Templates/itkSphericalPolarFourierRadialGenerator+-.h" 223 #define ITK_TEMPLATE_SphericalPolarFourierGenerator(_, EXPORT, x, y) namespace itk { \ 224 _(2(class EXPORT SphericalPolarFourierGenerator< ITK_TEMPLATE_2 x >)) \ 225 namespace Templates { typedef SphericalPolarFourierGenerator< ITK_TEMPLATE_2 x > SphericalPolarFourierGenerator##y; } \ 228 #if ITK_TEMPLATE_EXPLICIT 229 # include "Templates/itkSphericalPolarFourierGenerator+-.h" 232 #if !defined(ITK_MANUAL_INSTANTIATION) && !defined(__itkSphericalPolarFourierGenerator_hxx)
radial part of general SPF basis
SmartPointer< const Self > ConstPointer
void SetNLM(const int n, const int l, const int m)
RadialType::Pointer RadialPointer
void SetNLSPF(const int n, const int l, const SPFType spf)
SmartPointer< const Self > ConstPointer
RadialType::SPFType GetSPFType() const
virtual ~SphericalPolarFourierGenerator()
SphericalPolarFourierGenerator Self
void SetSPFType(const SPFType model)
virtual ~SphericalPolarFourierRadialGenerator()
general SPF basis in radial part, SH basis in spherical part
PreciseType GetNormalizeFacotr(const bool isFourier=false) const
RadialType::SPFType SPFType
SphericalPolarFourierGenerator()
SphericalPolarFourierRadialGenerator Self
void SetScale(const double scale)
SphericalPolarFourierRadialGenerator< PreciseType > RadialType
SmartPointer< Self > Pointer
SmartPointer< Self > Pointer