DMRITool  v0.1.1-139-g860d86b4
Diffusion MRI Tool
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
itk::SamplingScheme3D< TPixelType > Class Template Reference

#include <itkSamplingScheme3D.h>

+ Inheritance diagram for itk::SamplingScheme3D< TPixelType >:
+ Collaboration diagram for itk::SamplingScheme3D< TPixelType >:

Detailed Description

template<class TPixelType = double>
class itk::SamplingScheme3D< TPixelType >

this class describes sampling in a 3D space (Q space or R space).

The sampling can be single shell sampling or multiple shell sampling, which is determined by m_IndicesInShells.

Author
Jian Cheng (JC), jian..nosp@m.chen.nosp@m.g.198.nosp@m.3@gm.nosp@m.ail.c.nosp@m.om

Definition at line 43 of file itkSamplingScheme3D.h.

Public Types

typedef SmartPointer< const SelfConstPointer
 
typedef utl_shared_ptr< Index2DVectorTypeIndex2DVectorPointer
 
typedef std::vector< IndexVectorTypeIndex2DVectorType
 
typedef std::vector< int > IndexVectorType
 
typedef utl_shared_ptr< MatrixTypeMatrixPointer
 
typedef utl::NDArray< double, 2 > MatrixType
 
typedef SmartPointer< SelfPointer
 
typedef VectorContainer< IdentifierType, Point< TPixelType, 3 > > PointsContainer
 
typedef PointsContainer::ConstIterator PointsContainerConstIterator
 
typedef PointsContainer::ConstPointer PointsContainerConstPointer
 
typedef PointsContainer::Iterator PointsContainerIterator
 
typedef PointsContainer::Pointer PointsContainerPointer
 
typedef Point< TPixelType, 3 > PointType
 
typedef SamplingScheme3D Self
 
typedef utl_shared_ptr< STDVectorTypeSTDVectorPointer
 
typedef std::vector< double > STDVectorType
 
typedef VectorContainer< IdentifierType, Point< TPixelType, 3 > > Superclass
 
typedef TPixelType ValueType
 

Public Member Functions

void AppendOrientation (const double x, const double y, const double z, const int shell=-1)
 
void AppendOrientation (const PointType &point, const int shell=-1)
 
void AppendOrientationAndRadiusValue (const double x, const double y, const double z, const double radius, const int shell=-1)
 
double CalculateElectrostaticEnergy (const double order=2.0, const bool isNormalize=true, const bool countHalf=true) const
 
double CalculateElectrostaticEnergyInShell (const unsigned int shellIndex, const double order=2.0, const bool isNormalize=true, const bool countHalf=true) const
 
MatrixPointer CalculateElectrostaticEnergyMatrix (const double order=2.0) const
 
MatrixPointer CalculateInnerProductMatrix (const bool isAbsolute=true) const
 
double CalculateMaxDot (const unsigned int index, const bool isSymmetric=true) const
 
double CalculateMaxDotInShell (const unsigned int sampleIndex, const unsigned int shellIndex, const bool isSymmetric=true) const
 
double CalculateMinDistance (const unsigned int index, const bool isSymmetric=true) const
 
STDVectorType CalculateMinDistance (const bool isSymmetric=true) const
 
double CalculateMinDistanceInShell (const unsigned int sampleIndex, const unsigned int shellIndex, const bool isSymmetric=true) const
 
STDVectorType CalculateMinDistanceInShell (const unsigned int shellIndex, const bool isSymmetric=true) const
 
double CalculatePackingDensity (const bool isSymmetric=true) const
 
double CalculatePackingDensityInShell (const unsigned int shellIndex, const bool isSymmetric=true) const
 
double CalculateSphericalCodeEntropy (const bool isSymmetric=true) const
 
double CalculateSphericalCodeEntropyInShell (const unsigned int shellIndex, const bool isSymmetric=true) const
 
double CalculateVoronoiEntropy (const int tess=7, const bool isSymmetric=true)
 
double CalculateVoronoiEntropyInShell (const unsigned int shellIndex, const int tess=7, const bool isSymmetric=true)
 
void Clear ()
 
virtual void CorrectRadiusValues ()
 
virtual ::itk::LightObject::Pointer CreateAnother (void) const
 
void GenerateFromRandomPoints (const std::vector< int > &numberOfPoints)
 
virtual double GetDeltaBig ()
 
virtual double GetDeltaSmall ()
 
virtual Index2DVectorPointer GetIndicesInShells ()
 
virtual const char * GetNameOfClass () const
 
unsigned int GetNumberOfSamples () const
 
IndexVectorType GetNumberOfSamplesAtEachShell () const
 
unsigned int GetNumberOfSamplesInShell (const unsigned int shellIndex) const
 
unsigned int GetNumberOfShells () const
 
void GetNumbers (int &numberUniqueSamples, int &numberAntipodalSamples, int &numberRepeatedSamples) const
 
PointType GetOrientation (unsigned int index)
 
MatrixPointer GetOrientationsCartesian (const bool alwarysReCalculate=false)
 
MatrixPointer GetOrientationsCartesianInShell (const unsigned int shellIndex) const
 
MatrixPointer GetOrientationsSpherical (const bool alwarysReCalculate=false)
 
MatrixPointer GetOrientationsSphericalInShell (const unsigned int shellIndex)
 
virtual double GetRadiusThresholdSingleShell ()
 
double GetRadiusValue (unsigned int index)
 
virtual STDVectorPointer GetRadiusVector ()
 
STDVectorPointer GetRadiusVectorInShell (unsigned int shellIndex)
 
virtual double GetTau ()
 
std::vector< STDVectorTypeGroupRadiusValues ()
 
void NormalizeDirections ()
 
void ReadOrientationFile (const std::string &gradFile, const int NoSymmetricDuple=DIRECTION_NODUPLICATE, const int flipx=DIRECTION_NOFLIP, const int flipy=DIRECTION_NOFLIP, const int flipz=DIRECTION_NOFLIP, const bool need_normalize=true)
 
void ReadOrientationFileList (const std::vector< std::string > &gradFileVec, const int NoSymmetricDuple=DIRECTION_NODUPLICATE, const int flipx=DIRECTION_NOFLIP, const int flipy=DIRECTION_NOFLIP, const int flipz=DIRECTION_NOFLIP, const bool need_normalize=true)
 
void RemoveSamplesNotIndexed ()
 
virtual void SetDeltaBig (double _arg)
 
virtual void SetDeltaSmall (double _arg)
 
virtual void SetIndicesInShells (Index2DVectorPointer _arg)
 
void SetOrientationsCartesian (const MatrixPointer mat)
 
void SetOrientationsSpherical (const MatrixPointer mat)
 
virtual void SetRadiusThresholdSingleShell (double _arg)
 
void SetRadiusVector (const STDVectorPointer radiusVec)
 
virtual void SetTau (double _arg)
 

Static Public Member Functions

static double CalculateMinDistanceUpperBound (const unsigned int numberOfPoints, const bool isSphericalDistance=true)
 
static double CalculateVoronoiEntropy (const MatrixType &grad, const MatrixType &gradTess, const bool isSymmetric=true)
 
static Pointer New ()
 

Protected Member Functions

LightObject::Pointer InternalClone () const ITK_OVERRIDE
 
void PrintSelf (std::ostream &os, Indent indent) const ITK_OVERRIDE
 
 SamplingScheme3D ()
 
virtual ~SamplingScheme3D ()
 

Protected Attributes

double m_DeltaBig
 
double m_DeltaSmall
 
Index2DVectorPointer m_IndicesInShells
 
MatrixPointer m_OrientationsCartesian
 
MatrixPointer m_OrientationsSpherical
 
double m_RadiusThresholdSingleShell
 
STDVectorPointer m_RadiusVector
 
double m_Tau
 

Private Member Functions

PointTypeCreateElementAt (IdentifierType)
 
void InsertElement (IdentifierType, PointType)
 
void operator= (const Self &)
 
 SamplingScheme3D (const Self &)
 
void SetElement (IdentifierType, PointType)
 

Member Typedef Documentation

template<class TPixelType = double>
typedef SmartPointer< const Self > itk::SamplingScheme3D< TPixelType >::ConstPointer

Definition at line 52 of file itkSamplingScheme3D.h.

template<class TPixelType = double>
typedef utl_shared_ptr<Index2DVectorType> itk::SamplingScheme3D< TPixelType >::Index2DVectorPointer

Definition at line 78 of file itkSamplingScheme3D.h.

template<class TPixelType = double>
typedef std::vector<IndexVectorType > itk::SamplingScheme3D< TPixelType >::Index2DVectorType

Definition at line 77 of file itkSamplingScheme3D.h.

template<class TPixelType = double>
typedef std::vector<int> itk::SamplingScheme3D< TPixelType >::IndexVectorType

Definition at line 76 of file itkSamplingScheme3D.h.

template<class TPixelType = double>
typedef utl_shared_ptr<MatrixType > itk::SamplingScheme3D< TPixelType >::MatrixPointer

Definition at line 73 of file itkSamplingScheme3D.h.

template<class TPixelType = double>
typedef utl::NDArray<double,2> itk::SamplingScheme3D< TPixelType >::MatrixType

Definition at line 72 of file itkSamplingScheme3D.h.

template<class TPixelType = double>
typedef SmartPointer< Self > itk::SamplingScheme3D< TPixelType >::Pointer

Definition at line 51 of file itkSamplingScheme3D.h.

template<class TPixelType = double>
typedef VectorContainer<IdentifierType, Point< TPixelType, 3 > > itk::SamplingScheme3D< TPixelType >::PointsContainer

Definition at line 58 of file itkSamplingScheme3D.h.

template<class TPixelType = double>
typedef PointsContainer::ConstIterator itk::SamplingScheme3D< TPixelType >::PointsContainerConstIterator

Create types that are iterators for each of the container types.

Definition at line 69 of file itkSamplingScheme3D.h.

template<class TPixelType = double>
typedef PointsContainer::ConstPointer itk::SamplingScheme3D< TPixelType >::PointsContainerConstPointer

Definition at line 66 of file itkSamplingScheme3D.h.

template<class TPixelType = double>
typedef PointsContainer::Iterator itk::SamplingScheme3D< TPixelType >::PointsContainerIterator

Definition at line 70 of file itkSamplingScheme3D.h.

template<class TPixelType = double>
typedef PointsContainer::Pointer itk::SamplingScheme3D< TPixelType >::PointsContainerPointer

Create types that are pointers to each of the container types.

Definition at line 65 of file itkSamplingScheme3D.h.

template<class TPixelType = double>
typedef Point<TPixelType, 3> itk::SamplingScheme3D< TPixelType >::PointType

Definition at line 61 of file itkSamplingScheme3D.h.

template<class TPixelType = double>
typedef SamplingScheme3D itk::SamplingScheme3D< TPixelType >::Self

Standard class typedefs.

Definition at line 49 of file itkSamplingScheme3D.h.

template<class TPixelType = double>
typedef utl_shared_ptr<STDVectorType > itk::SamplingScheme3D< TPixelType >::STDVectorPointer

Definition at line 75 of file itkSamplingScheme3D.h.

template<class TPixelType = double>
typedef std::vector<double> itk::SamplingScheme3D< TPixelType >::STDVectorType

Definition at line 74 of file itkSamplingScheme3D.h.

template<class TPixelType = double>
typedef VectorContainer<IdentifierType, Point< TPixelType, 3 > > itk::SamplingScheme3D< TPixelType >::Superclass

Definition at line 50 of file itkSamplingScheme3D.h.

template<class TPixelType = double>
typedef TPixelType itk::SamplingScheme3D< TPixelType >::ValueType

Definition at line 62 of file itkSamplingScheme3D.h.

Constructor & Destructor Documentation

template<class TPixelType >
itk::SamplingScheme3D< TPixelType >::SamplingScheme3D ( )
protected

Definition at line 31 of file itkSamplingScheme3D.hxx.

References ONE_OVER_4_PI_2, and itk::SamplingScheme3D< TPixelType >::SetRadiusVector().

+ Here is the call graph for this function:

template<class TPixelType = double>
virtual itk::SamplingScheme3D< TPixelType >::~SamplingScheme3D ( )
inlineprotectedvirtual

Definition at line 225 of file itkSamplingScheme3D.h.

References ITK_OVERRIDE.

template<class TPixelType = double>
itk::SamplingScheme3D< TPixelType >::SamplingScheme3D ( const Self )
private

Member Function Documentation

template<class TPixelType >
void itk::SamplingScheme3D< TPixelType >::AppendOrientation ( const double  x,
const double  y,
const double  z,
const int  shell = -1 
)

push_back a new orientation

Definition at line 463 of file itkSamplingScheme3D.hxx.

Referenced by itk::SamplingScheme3D< TPixelType >::GenerateFromRandomPoints().

+ Here is the caller graph for this function:

template<class TPixelType >
void itk::SamplingScheme3D< TPixelType >::AppendOrientation ( const PointType point,
const int  shell = -1 
)

push_back a new orientation

Definition at line 473 of file itkSamplingScheme3D.hxx.

References itk::SamplingScheme3D< TPixelType >::AppendOrientationAndRadiusValue(), utlException, and utlSAException.

+ Here is the call graph for this function:

template<class TPixelType >
void itk::SamplingScheme3D< TPixelType >::AppendOrientationAndRadiusValue ( const double  x,
const double  y,
const double  z,
const double  radius,
const int  shell = -1 
)

push_back a new orientation and a radius value

Definition at line 504 of file itkSamplingScheme3D.hxx.

References itk::SamplingScheme3D< TPixelType >::CalculateInnerProductMatrix().

Referenced by itk::SamplingScheme3D< TPixelType >::AppendOrientation().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType >
double itk::SamplingScheme3D< TPixelType >::CalculateElectrostaticEnergy ( const double  order = 2.0,
const bool  isNormalize = true,
const bool  countHalf = true 
) const

calculate electrostatic energy

Definition at line 878 of file itkSamplingScheme3D.hxx.

References itk::SamplingScheme3D< TPixelType >::CalculateElectrostaticEnergyInShell(), and utlWarning.

Referenced by itk::SamplingScheme3D< TPixelType >::GetNumbers(), and processOrientation().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType >
double itk::SamplingScheme3D< TPixelType >::CalculateElectrostaticEnergyInShell ( const unsigned int  shellIndex,
const double  order = 2.0,
const bool  isNormalize = true,
const bool  countHalf = true 
) const

Definition at line 912 of file itkSamplingScheme3D.hxx.

References itk::SamplingScheme3D< TPixelType >::CalculateMinDistanceUpperBound(), and utlWarning.

Referenced by itk::SamplingScheme3D< TPixelType >::CalculateElectrostaticEnergy().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType >
SamplingScheme3D< TPixelType >::MatrixPointer itk::SamplingScheme3D< TPixelType >::CalculateElectrostaticEnergyMatrix ( const double  order = 2.0) const

return electrostatic energy matrix, the diagonal elements are maximal double value

Definition at line 546 of file itkSamplingScheme3D.hxx.

References spams::abs(), itk::SamplingScheme3D< TPixelType >::CalculatePackingDensity(), utl::max(), and utlWarning.

Referenced by itk::SamplingScheme3D< TPixelType >::CalculateInnerProductMatrix().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType >
SamplingScheme3D< TPixelType >::MatrixPointer itk::SamplingScheme3D< TPixelType >::CalculateInnerProductMatrix ( const bool  isAbsolute = true) const

return dot products between samples.

Definition at line 516 of file itkSamplingScheme3D.hxx.

References itk::SamplingScheme3D< TPixelType >::CalculateElectrostaticEnergyMatrix().

Referenced by itk::SamplingScheme3D< TPixelType >::AppendOrientationAndRadiusValue().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType >
double itk::SamplingScheme3D< TPixelType >::CalculateMaxDot ( const unsigned int  index,
const bool  isSymmetric = true 
) const

Definition at line 716 of file itkSamplingScheme3D.hxx.

References itk::SamplingScheme3D< TPixelType >::CalculateMaxDotInShell(), M_EPS, and utlGlobalException.

Referenced by itk::SamplingScheme3D< TPixelType >::CalculateVoronoiEntropyInShell().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType >
double itk::SamplingScheme3D< TPixelType >::CalculateMaxDotInShell ( const unsigned int  sampleIndex,
const unsigned int  shellIndex,
const bool  isSymmetric = true 
) const

Definition at line 749 of file itkSamplingScheme3D.hxx.

References itk::SamplingScheme3D< TPixelType >::CalculateMinDistance(), M_EPS, and utlGlobalException.

Referenced by itk::SamplingScheme3D< TPixelType >::CalculateMaxDot().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType >
double itk::SamplingScheme3D< TPixelType >::CalculateMinDistance ( const unsigned int  index,
const bool  isSymmetric = true 
) const

calculate the minimum distance for the point with a given index.

Definition at line 783 of file itkSamplingScheme3D.hxx.

References itk::SamplingScheme3D< TPixelType >::CalculateMinDistanceInShell(), M_EPS, and M_PI.

Referenced by itk::SamplingScheme3D< TPixelType >::CalculateMaxDotInShell(), itk::SamplingScheme3D< TPixelType >::CalculateMinDistanceInShell(), and processOrientation().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType >
SamplingScheme3D< TPixelType >::STDVectorType itk::SamplingScheme3D< TPixelType >::CalculateMinDistance ( const bool  isSymmetric = true) const

calculate the minimum distance for all points.

Definition at line 815 of file itkSamplingScheme3D.hxx.

References itk::SamplingScheme3D< TPixelType >::CalculateMinDistanceInShell().

+ Here is the call graph for this function:

template<class TPixelType >
double itk::SamplingScheme3D< TPixelType >::CalculateMinDistanceInShell ( const unsigned int  sampleIndex,
const unsigned int  shellIndex,
const bool  isSymmetric = true 
) const

Definition at line 799 of file itkSamplingScheme3D.hxx.

References itk::SamplingScheme3D< TPixelType >::CalculateMinDistance(), M_EPS, and M_PI.

Referenced by itk::SamplingScheme3D< TPixelType >::CalculateMinDistance().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType >
SamplingScheme3D< TPixelType >::STDVectorType itk::SamplingScheme3D< TPixelType >::CalculateMinDistanceInShell ( const unsigned int  shellIndex,
const bool  isSymmetric = true 
) const

calculate the minimum distance for all points in a single shell.

Definition at line 829 of file itkSamplingScheme3D.hxx.

References itk::SamplingScheme3D< TPixelType >::GetNumbers().

+ Here is the call graph for this function:

template<class TPixelType >
double itk::SamplingScheme3D< TPixelType >::CalculateMinDistanceUpperBound ( const unsigned int  numberOfPoints,
const bool  isSphericalDistance = true 
)
static

calculate an upper bound of the minimal distance for a given number of points. If isSphericalDistance is true, return spherical distance instead of Euclidean distance. http://mathworld.wolfram.com/SphericalCode.html

Definition at line 948 of file itkSamplingScheme3D.hxx.

References M_PI, and itk::SamplingScheme3D< TPixelType >::PrintSelf().

Referenced by itk::SamplingScheme3D< TPixelType >::CalculateElectrostaticEnergyInShell().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType >
double itk::SamplingScheme3D< TPixelType >::CalculatePackingDensity ( const bool  isSymmetric = true) const
template<class TPixelType >
double itk::SamplingScheme3D< TPixelType >::CalculatePackingDensityInShell ( const unsigned int  shellIndex,
const bool  isSymmetric = true 
) const

Definition at line 597 of file itkSamplingScheme3D.hxx.

References itk::SamplingScheme3D< TPixelType >::CalculateSphericalCodeEntropy().

Referenced by itk::SamplingScheme3D< TPixelType >::CalculatePackingDensity().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType >
double itk::SamplingScheme3D< TPixelType >::CalculateSphericalCodeEntropy ( const bool  isSymmetric = true) const

Calculate entropy based on spherical cap. https://en.wikipedia.org/wiki/Spherical_cap

Definition at line 614 of file itkSamplingScheme3D.hxx.

References itk::SamplingScheme3D< TPixelType >::CalculateSphericalCodeEntropyInShell(), and utl::Entropy().

Referenced by itk::SamplingScheme3D< TPixelType >::CalculatePackingDensityInShell().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType >
double itk::SamplingScheme3D< TPixelType >::CalculateSphericalCodeEntropyInShell ( const unsigned int  shellIndex,
const bool  isSymmetric = true 
) const

Definition at line 637 of file itkSamplingScheme3D.hxx.

References itk::SamplingScheme3D< TPixelType >::CalculateVoronoiEntropy(), and utl::Entropy().

Referenced by itk::SamplingScheme3D< TPixelType >::CalculateSphericalCodeEntropy().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType >
double itk::SamplingScheme3D< TPixelType >::CalculateVoronoiEntropy ( const MatrixType grad,
const MatrixType gradTess,
const bool  isSymmetric = true 
)
static

Definition at line 656 of file itkSamplingScheme3D.hxx.

References utl::Entropy().

Referenced by itk::SamplingScheme3D< TPixelType >::CalculateSphericalCodeEntropyInShell().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType >
double itk::SamplingScheme3D< TPixelType >::CalculateVoronoiEntropy ( const int  tess = 7,
const bool  isSymmetric = true 
)
template<class TPixelType >
double itk::SamplingScheme3D< TPixelType >::CalculateVoronoiEntropyInShell ( const unsigned int  shellIndex,
const int  tess = 7,
const bool  isSymmetric = true 
)
template<class TPixelType >
void itk::SamplingScheme3D< TPixelType >::Clear ( )

Definition at line 264 of file itkSamplingScheme3D.hxx.

References itk::SamplingScheme3D< TPixelType >::RemoveSamplesNotIndexed().

Referenced by itk::SamplingScheme3D< TPixelType >::InternalClone().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType >
void itk::SamplingScheme3D< TPixelType >::CorrectRadiusValues ( )
virtual

Reimplemented in itk::SamplingSchemeQSpace< TPixelType >.

Definition at line 369 of file itkSamplingScheme3D.hxx.

References itk::SamplingScheme3D< TPixelType >::ReadOrientationFile(), and utlGlobalException.

Referenced by itk::SamplingScheme3D< TPixelType >::GroupRadiusValues().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType = double>
virtual::itk::LightObject::Pointer itk::SamplingScheme3D< TPixelType >::CreateAnother ( void  ) const
template<class TPixelType = double>
PointType& itk::SamplingScheme3D< TPixelType >::CreateElementAt ( IdentifierType  )
private
template<class TPixelType >
void itk::SamplingScheme3D< TPixelType >::GenerateFromRandomPoints ( const std::vector< int > &  numberOfPoints)

generate sampling scheme from random points in sphere

Definition at line 440 of file itkSamplingScheme3D.hxx.

References itk::SamplingScheme3D< TPixelType >::AppendOrientation(), and utl::RandomPointInSphere().

Referenced by itk::SamplingScheme3D< TPixelType >::ReadOrientationFileList().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType = double>
virtual double itk::SamplingScheme3D< TPixelType >::GetDeltaBig ( )
virtual
template<class TPixelType = double>
virtual double itk::SamplingScheme3D< TPixelType >::GetDeltaSmall ( )
virtual
template<class TPixelType = double>
virtual Index2DVectorPointer itk::SamplingScheme3D< TPixelType >::GetIndicesInShells ( )
virtual
template<class TPixelType = double>
virtual const char* itk::SamplingScheme3D< TPixelType >::GetNameOfClass ( ) const
virtual

Standard part of every itk Object.

Reimplemented in itk::SamplingSchemeQSpace< TPixelType >.

template<class TPixelType = double>
unsigned int itk::SamplingScheme3D< TPixelType >::GetNumberOfSamples ( ) const
inline

Definition at line 109 of file itkSamplingScheme3D.h.

Referenced by processOrientation().

+ Here is the caller graph for this function:

template<class TPixelType = double>
IndexVectorType itk::SamplingScheme3D< TPixelType >::GetNumberOfSamplesAtEachShell ( ) const
inline

Definition at line 125 of file itkSamplingScheme3D.h.

References DIRECTION_NODUPLICATE, and DIRECTION_NOFLIP.

template<class TPixelType = double>
unsigned int itk::SamplingScheme3D< TPixelType >::GetNumberOfSamplesInShell ( const unsigned int  shellIndex) const
inline

Definition at line 113 of file itkSamplingScheme3D.h.

template<class TPixelType = double>
unsigned int itk::SamplingScheme3D< TPixelType >::GetNumberOfShells ( ) const
inline

Definition at line 120 of file itkSamplingScheme3D.h.

template<class TPixelType >
void itk::SamplingScheme3D< TPixelType >::GetNumbers ( int &  numberUniqueSamples,
int &  numberAntipodalSamples,
int &  numberRepeatedSamples 
) const

Definition at line 845 of file itkSamplingScheme3D.hxx.

References itk::SamplingScheme3D< TPixelType >::CalculateElectrostaticEnergy().

Referenced by itk::SamplingScheme3D< TPixelType >::CalculateMinDistanceInShell(), and processOrientation().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType = double>
PointType itk::SamplingScheme3D< TPixelType >::GetOrientation ( unsigned int  index)
inline

Definition at line 167 of file itkSamplingScheme3D.h.

template<class TPixelType >
SamplingScheme3D< TPixelType >::MatrixPointer itk::SamplingScheme3D< TPixelType >::GetOrientationsCartesian ( const bool  alwarysReCalculate = false)

Orientations as matrix, return a pointer

Definition at line 78 of file itkSamplingScheme3D.hxx.

References itk::SamplingScheme3D< TPixelType >::GetOrientationsSpherical(), utl::SphericalToCartesian(), and utlGlobalException.

Referenced by itk::SamplingScheme3D< TPixelType >::GetRadiusVectorInShell().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType >
SamplingScheme3D< TPixelType >::MatrixPointer itk::SamplingScheme3D< TPixelType >::GetOrientationsCartesianInShell ( const unsigned int  shellIndex) const

Definition at line 185 of file itkSamplingScheme3D.hxx.

References itk::SamplingScheme3D< TPixelType >::NormalizeDirections(), utlException, and utlGlobalException.

Referenced by itk::SamplingScheme3D< TPixelType >::SetOrientationsSpherical().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType >
SamplingScheme3D< TPixelType >::MatrixPointer itk::SamplingScheme3D< TPixelType >::GetOrientationsSpherical ( const bool  alwarysReCalculate = false)

Definition at line 111 of file itkSamplingScheme3D.hxx.

References utl::CartesianToSpherical(), itk::SamplingScheme3D< TPixelType >::SetOrientationsCartesian(), and utlGlobalException.

Referenced by itk::SamplingScheme3D< TPixelType >::GetOrientationsCartesian().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType >
SamplingScheme3D< TPixelType >::MatrixPointer itk::SamplingScheme3D< TPixelType >::GetOrientationsSphericalInShell ( const unsigned int  shellIndex)

Definition at line 159 of file itkSamplingScheme3D.hxx.

References itk::SamplingScheme3D< TPixelType >::SetOrientationsSpherical(), utlException, and utlGlobalException.

Referenced by itk::SamplingScheme3D< TPixelType >::SetOrientationsCartesian().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType = double>
virtual double itk::SamplingScheme3D< TPixelType >::GetRadiusThresholdSingleShell ( )
virtual
template<class TPixelType = double>
double itk::SamplingScheme3D< TPixelType >::GetRadiusValue ( unsigned int  index)
inline

Definition at line 171 of file itkSamplingScheme3D.h.

template<class TPixelType = double>
virtual STDVectorPointer itk::SamplingScheme3D< TPixelType >::GetRadiusVector ( )
virtual
template<class TPixelType >
SamplingScheme3D< TPixelType >::STDVectorPointer itk::SamplingScheme3D< TPixelType >::GetRadiusVectorInShell ( unsigned int  shellIndex)

Definition at line 60 of file itkSamplingScheme3D.hxx.

References itk::SamplingScheme3D< TPixelType >::GetOrientationsCartesian().

Referenced by itk::SamplingScheme3D< TPixelType >::SetRadiusVector().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType = double>
virtual double itk::SamplingScheme3D< TPixelType >::GetTau ( )
virtual
template<class TPixelType >
std::vector< typename SamplingScheme3D< TPixelType >::STDVectorType > itk::SamplingScheme3D< TPixelType >::GroupRadiusValues ( )

Definition at line 306 of file itkSamplingScheme3D.hxx.

References itk::SamplingScheme3D< TPixelType >::CorrectRadiusValues(), and utlGlobalException.

Referenced by itk::SamplingScheme3D< TPixelType >::RemoveSamplesNotIndexed().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType = double>
void itk::SamplingScheme3D< TPixelType >::InsertElement ( IdentifierType  ,
PointType   
)
private
template<class TPixelType >
LightObject::Pointer itk::SamplingScheme3D< TPixelType >::InternalClone ( ) const
protected

Definition at line 234 of file itkSamplingScheme3D.hxx.

References itk::SamplingScheme3D< TPixelType >::Clear().

Referenced by itk::SamplingScheme3D< TPixelType >::NormalizeDirections().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType = double>
static Pointer itk::SamplingScheme3D< TPixelType >::New ( )
static

Method for creation through the object factory.

template<class TPixelType >
void itk::SamplingScheme3D< TPixelType >::NormalizeDirections ( )

Definition at line 204 of file itkSamplingScheme3D.hxx.

References itk::SamplingScheme3D< TPixelType >::InternalClone().

Referenced by itk::SamplingScheme3D< TPixelType >::GetOrientationsCartesianInShell().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType = double>
void itk::SamplingScheme3D< TPixelType >::operator= ( const Self )
private
template<class TPixelType >
void itk::SamplingScheme3D< TPixelType >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
protected

Definition at line 961 of file itkSamplingScheme3D.hxx.

References utl::PrintUtlMatrix(), PrintVar3, and utl::PrintVector().

Referenced by itk::SamplingScheme3D< TPixelType >::CalculateMinDistanceUpperBound().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType >
void itk::SamplingScheme3D< TPixelType >::ReadOrientationFile ( const std::string &  gradFile,
const int  NoSymmetricDuple = DIRECTION_NODUPLICATE,
const int  flipx = DIRECTION_NOFLIP,
const int  flipy = DIRECTION_NOFLIP,
const int  flipz = DIRECTION_NOFLIP,
const bool  need_normalize = true 
)

Nx3 gradient file, each row is a point in S^2, catesian format

Definition at line 391 of file itkSamplingScheme3D.hxx.

References CARTESIAN_TO_CARTESIAN, and itk::SamplingScheme3D< TPixelType >::ReadOrientationFileList().

Referenced by itk::SamplingScheme3D< TPixelType >::CorrectRadiusValues().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType >
void itk::SamplingScheme3D< TPixelType >::ReadOrientationFileList ( const std::vector< std::string > &  gradFileVec,
const int  NoSymmetricDuple = DIRECTION_NODUPLICATE,
const int  flipx = DIRECTION_NOFLIP,
const int  flipy = DIRECTION_NOFLIP,
const int  flipz = DIRECTION_NOFLIP,
const bool  need_normalize = true 
)

Read a list of gradient files. Each file contains gradients for a single shell.

Definition at line 409 of file itkSamplingScheme3D.hxx.

References CARTESIAN_TO_CARTESIAN, itk::SamplingScheme3D< TPixelType >::GenerateFromRandomPoints(), and utlGlobalException.

Referenced by itk::SamplingScheme3D< TPixelType >::ReadOrientationFile().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType >
void itk::SamplingScheme3D< TPixelType >::RemoveSamplesNotIndexed ( )

remove samples not in m_IndicesInShells

Definition at line 277 of file itkSamplingScheme3D.hxx.

References itk::SamplingScheme3D< TPixelType >::GroupRadiusValues(), and utlGlobalException.

Referenced by itk::SamplingScheme3D< TPixelType >::Clear().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType = double>
virtual void itk::SamplingScheme3D< TPixelType >::SetDeltaBig ( double  _arg)
virtual
template<class TPixelType = double>
virtual void itk::SamplingScheme3D< TPixelType >::SetDeltaSmall ( double  _arg)
virtual
template<class TPixelType = double>
void itk::SamplingScheme3D< TPixelType >::SetElement ( IdentifierType  ,
PointType   
)
private
template<class TPixelType = double>
virtual void itk::SamplingScheme3D< TPixelType >::SetIndicesInShells ( Index2DVectorPointer  _arg)
virtual
template<class TPixelType >
void itk::SamplingScheme3D< TPixelType >::SetOrientationsCartesian ( const MatrixPointer  mat)

Definition at line 148 of file itkSamplingScheme3D.hxx.

References itk::SamplingScheme3D< TPixelType >::GetOrientationsSphericalInShell().

Referenced by itk::SamplingScheme3D< TPixelType >::GetOrientationsSpherical().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType >
void itk::SamplingScheme3D< TPixelType >::SetOrientationsSpherical ( const MatrixPointer  mat)

Definition at line 173 of file itkSamplingScheme3D.hxx.

References itk::SamplingScheme3D< TPixelType >::GetOrientationsCartesianInShell(), and utl::SphericalToCartesian().

Referenced by itk::SamplingScheme3D< TPixelType >::GetOrientationsSphericalInShell().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType = double>
virtual void itk::SamplingScheme3D< TPixelType >::SetRadiusThresholdSingleShell ( double  _arg)
virtual
template<class TPixelType >
void itk::SamplingScheme3D< TPixelType >::SetRadiusVector ( const STDVectorPointer  radiusVec)

Definition at line 46 of file itkSamplingScheme3D.hxx.

References itk::SamplingScheme3D< TPixelType >::GetRadiusVectorInShell().

Referenced by itk::SamplingScheme3D< TPixelType >::SamplingScheme3D().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType = double>
virtual void itk::SamplingScheme3D< TPixelType >::SetTau ( double  _arg)
virtual

Member Data Documentation

template<class TPixelType = double>
double itk::SamplingScheme3D< TPixelType >::m_DeltaBig
protected

big delta

Definition at line 238 of file itkSamplingScheme3D.h.

template<class TPixelType = double>
double itk::SamplingScheme3D< TPixelType >::m_DeltaSmall
protected

small delta

Definition at line 235 of file itkSamplingScheme3D.h.

template<class TPixelType = double>
Index2DVectorPointer itk::SamplingScheme3D< TPixelType >::m_IndicesInShells
protected

2D vector, each element is a vector containing the indices for orientations in each shell. If m_IndicesInShells is empty, single shell sampling is used.

Note
: There may be some samples whose indices are not in m_IndicesInShells. These samples which are not indexed can be removed by using RemoveSamplesNotIndexed().

Definition at line 249 of file itkSamplingScheme3D.h.

template<class TPixelType = double>
MatrixPointer itk::SamplingScheme3D< TPixelType >::m_OrientationsCartesian
protected

Orientation matrix

Definition at line 258 of file itkSamplingScheme3D.h.

template<class TPixelType = double>
MatrixPointer itk::SamplingScheme3D< TPixelType >::m_OrientationsSpherical
protected

Definition at line 259 of file itkSamplingScheme3D.h.

template<class TPixelType = double>
double itk::SamplingScheme3D< TPixelType >::m_RadiusThresholdSingleShell
protected

threshould to separate radius values into different shells. If it is positive, radius values whose distance is smallter the threshold will be considered in the same shell, and they will be replaced as their mean b value.

Definition at line 255 of file itkSamplingScheme3D.h.

template<class TPixelType = double>
STDVectorPointer itk::SamplingScheme3D< TPixelType >::m_RadiusVector
protected

radius values

Definition at line 241 of file itkSamplingScheme3D.h.

template<class TPixelType = double>
double itk::SamplingScheme3D< TPixelType >::m_Tau
protected

tau value

Definition at line 232 of file itkSamplingScheme3D.h.


The documentation for this class was generated from the following files: