ANIMA  4.0
animaODFResampleImageFilter.h
Go to the documentation of this file.
1 #pragma once
2 
4 
5 #include <vector>
6 #include <vnl/vnl_matrix.h>
7 
8 namespace anima
9 {
10 template <typename TImageType, typename TInterpolatorPrecisionType=double>
12  public OrientedModelBaseResampleImageFilter <TImageType,TInterpolatorPrecisionType>
13 {
14 public:
17 
19  typedef itk::SmartPointer<Self> Pointer;
20  typedef itk::SmartPointer<const Self> ConstPointer;
21 
24  itkStaticConstMacro(ImageDimension, unsigned int,InputImageType::ImageDimension);
25 
27  itkNewMacro(Self)
28 
29 
31 
32 protected:
34  {
35  m_LOrder = 4;
36  }
37 
39 
40  virtual void BeforeThreadedGenerateData() ITK_OVERRIDE;
41 
42  virtual void ReorientInterpolatedModel(const InputPixelType &interpolatedModel, vnl_matrix <double> &modelOrientationMatrix,
43  InputPixelType &rotatedModel, itk::ThreadIdType threadId) ITK_OVERRIDE;
44 
45 private:
46  ITK_DISALLOW_COPY_AND_ASSIGN(ODFResampleImageFilter);
47 
48  unsigned int m_LOrder;
49 
50  std::vector < std::vector <double> > m_EulerAngles;
51  std::vector < vnl_matrix <double> > m_ODFRotationMatrices;
52 };
53 
54 } // end namespace anima
55 
itk::SmartPointer< const Self > ConstPointer
virtual void BeforeThreadedGenerateData() ITK_OVERRIDE
Superclass::InputPixelType InputPixelType
static const unsigned int ImageDimension
virtual void ReorientInterpolatedModel(const InputPixelType &interpolatedModel, vnl_matrix< double > &modelOrientationMatrix, InputPixelType &rotatedModel, itk::ThreadIdType threadId) ITK_OVERRIDE
Needs to be implemented in sub-classes, does the actual re-orientation of the model.
Superclass::InputImageType InputImageType
OrientedModelBaseResampleImageFilter< TImageType, TInterpolatorPrecisionType > Superclass