DMRITool  v0.1.1-139-g860d86b4
Diffusion MRI Tool
itkSamplingSchemeQSpace.h
Go to the documentation of this file.
1 
18 #ifndef __itkSamplingSchemeQSpace_h
19 #define __itkSamplingSchemeQSpace_h
20 
21 #include "itkSamplingScheme3D.h"
22 #include "itkObject.h"
23 
24 namespace itk
25 {
26 
37 template<class TPixelType = double>
38 class ITK_EXPORT SamplingSchemeQSpace : public SamplingScheme3D<TPixelType>
39 {
40 public:
44  typedef SmartPointer<Self> Pointer;
45  typedef SmartPointer<const Self> ConstPointer;
46 
48  itkNewMacro(Self);
49 
52 
53  typedef typename Superclass::STDVectorType STDVectorType;
55  typedef typename Superclass::IndexVectorType IndexVectorType;
56  typedef typename Superclass::Index2DVectorType Index2DVectorType;
57  typedef typename Superclass::Index2DVectorPointer Index2DVectorPointer;
58 
59  itkSetMacro(BThresholdSingleShell, double);
60  itkGetMacro(BThresholdSingleShell, double);
61 
62  void SetBVector(const STDVectorPointer bVec);
63  itkGetMacro(BVector, STDVectorPointer);
64  STDVectorPointer GetBVectorInShell(unsigned int shellIndex);
65 
66  void SetSamplingScheme3D(typename Superclass::Pointer scheme3D);
67 
68  void Clear();
69 
70  void ConvertBVectorToQVector();
71 
72  void ConvertQVectorToBVector();
73 
74  std::vector<STDVectorType> GroupBValues();
75 
76  void CorrectBValues();
77  void CorrectRadiusValues() ITK_OVERRIDE;
78 
80  void RemoveSamplesNotIndexed();
81 
82 protected:
84 
85  virtual ~SamplingSchemeQSpace ()
86  {
87  }
88 
89  typename LightObject::Pointer InternalClone() const ITK_OVERRIDE;
90 
91  void PrintSelf(std::ostream& os, Indent indent) const ITK_OVERRIDE;
92 
96 
97  STDVectorPointer m_BVector;
98 
99 private:
100  SamplingSchemeQSpace(const Self &); //purposely not implemented
101  void operator=(const Self &); //purposely not implemented
102 
103  // std::vector<STDVectorType> GroupRadiusValues();
104  // void CorrectRadiusValues();
105 };
106 
107 }
108 
109 #if !defined(ITK_MANUAL_INSTANTIATION) && !defined(__itkSamplingSchemeQSpace_hxx)
111 #endif
112 
113 #endif
114 
SamplingScheme3D< TPixelType > Superclass
Superclass::STDVectorPointer STDVectorPointer
#define ITK_OVERRIDE
Definition: utlITKMacro.h:46
this class describes sampling in a 3D space (Q space or R space).
this class describes sampling in Q space.
utl_shared_ptr< STDVectorType > STDVectorPointer
Superclass::Index2DVectorType Index2DVectorType
Superclass::IndexVectorType IndexVectorType
Superclass::Index2DVectorPointer Index2DVectorPointer
Superclass::STDVectorType STDVectorType
SmartPointer< const Self > ConstPointer