Slicer  5.0
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
itkDiffusionTensor3DInterpolateImageFunctionReimplementation.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Diffusion Applications
4  Module: $HeadURL$
5  Language: C++
6  Date: $Date$
7  Version: $Revision$
8 
9  Copyright (c) Brigham and Women's Hospital (BWH) All Rights Reserved.
10 
11  See License.txt or http://www.slicer.org/copyright/copyright.txt for details.
12 
13 ==========================================================================*/
14 #ifndef itkDiffusionTensor3DInterpolateImageFunctionReimplementation_h
15 #define itkDiffusionTensor3DInterpolateImageFunctionReimplementation_h
16 
18 #include <itkImage.h>
19 #include <itkInterpolateImageFunction.h>
21 
22 namespace itk
23 {
24 
31 template <class TData, class TCoordRep = double>
33  public DiffusionTensor3DInterpolateImageFunction<TData, TCoordRep>
34 {
35 public:
36  typedef TData DataType;
42  typedef Image<DataType, 3> ImageType;
43  typedef typename ImageType::Pointer ImagePointer;
44  typedef typename Superclass::PointType PointType;
45  typedef SmartPointer<Self> Pointer;
46  typedef SmartPointer<const Self> ConstPointer;
47  typedef ImageRegionIteratorWithIndex<DiffusionImageType> IteratorDiffusionImageType;
48  typedef ImageRegionIteratorWithIndex<ImageType> IteratorImageType;
49  typedef InterpolateImageFunction<ImageType, double> InterpolateImageFunctionType;
50  typedef typename DiffusionImageType::RegionType itkRegionType;
51  typedef typename DiffusionImageType::SizeType SizeType;
53 
56 
59  // TensorDataType Evaluate( const PointType &point ) ;
60  TensorDataType EvaluateAtContinuousIndex( const ContinuousIndexType & index ) const override;
61 
62  void SetInputImage( const DiffusionImageType *inputImage ) override;
63 
64  itkSetMacro( NumberOfThreads, int );
65 protected:
67  virtual void AllocateInterpolator() = 0;
68 
69  typename InterpolateImageFunctionType::Pointer m_Interpol[6];
72 };
73 
74 } // end namespace itk
75 
76 #ifndef ITK_MANUAL_INSTANTIATION
77 #include "itkDiffusionTensor3DInterpolateImageFunctionReimplementation.txx"
78 #endif
79 
80 #endif
Simplified inverse ITK transforms.
void SetInputImage(const DiffusionImageType *inputImage) override
itkTypeMacro(DiffusionTensor3DInterpolateImageFunctionReimplementation, DiffusionTensor3DInterpolateImageFunction)
TensorDataType EvaluateAtContinuousIndex(const ContinuousIndexType &index) const override