17 #ifndef __mitkDiffusionFunctionCollection_h_
18 #define __mitkDiffusionFunctionCollection_h_
22 #include "vnl/vnl_vector.h"
23 #include "vnl/vnl_vector_fixed.h"
24 #include "itkVectorContainer.h"
31 static double factorial(
int number);
32 static void Cart2Sph(
double x,
double y,
double z,
double* cart);
33 static double legendre0(
int l);
34 static double spherical_harmonic(
int m,
int l,
double theta,
double phi,
bool complexPart);
35 static double Yj(
int m,
int k,
double theta,
double phi);
41 typedef std::vector<unsigned int> IndiciesVector;
42 typedef std::map<unsigned int, IndiciesVector > BValueMap;
43 typedef itk::VectorContainer< unsigned int, vnl_vector_fixed< double, 3 > > GradientDirectionContainerType;
44 typedef vnl_vector_fixed<double , 3 > GradientDirectionType;
47 static std::vector<unsigned int> GetAllUniqueDirections(
const BValueMap &bValueMap, GradientDirectionContainerType *refGradientsContainer );
50 static vnl_matrix<double> ComputeSphericalHarmonicsBasis(
const vnl_matrix<double> & QBallReference,
const unsigned int & LOrder);
51 static vnl_matrix<double> ComputeSphericalFromCartesian(
const IndiciesVector & refShell,
const GradientDirectionContainerType * refGradientsContainer);
55 template<
typename type>
56 static double dot (vnl_vector_fixed< type ,3>
const& v1, vnl_vector_fixed< type ,3 >
const& v2 );
62 #endif //__mitkDiffusionFunctionCollection_h_
itk::SmartPointer< Self > Pointer
DataCollection - Class to facilitate loading/accessing structured data.
#define MITKDIFFUSIONCORE_EXPORT
itk::SmartPointer< const Self > ConstPointer