NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
itkNondirectionalDerivativeOperator.h
Go to the documentation of this file.
1 /*=============================================================================
2 
3  NifTK: A software platform for medical image computing.
4 
5  Copyright (c) University College London (UCL). All rights reserved.
6 
7  This software is distributed WITHOUT ANY WARRANTY; without even
8  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
9  PURPOSE.
10 
11  See LICENSE.txt in the top level directory for details.
12 
13 =============================================================================*/
14 
15 #ifndef itkNondirectionalDerivativeOperator_h
16 #define itkNondirectionalDerivativeOperator_h
17 
18 #include <itkNeighborhood.h>
19 #include <itkVector.h>
20 #include <itkDerivativeOperator.h>
21 
22 namespace itk {
23 
28 template< unsigned int VDimension=2 >
30 {
31 public:
35  typedef Vector < unsigned int, VDimension > DerivativeOrderType;
47  void SetDervativeOrder(const DerivativeOrderType& order) { this->m_DervativeOrder = order; }
48  const DerivativeOrderType& GetDerivativeOrder() const { return this->m_DervativeOrder; }
52  void SetConstant(double constant) { this->m_Constant = constant; }
53  double GetConstant(void) const { return this->m_Constant; }
54 
55 protected:
59  DerivativeOrderType m_DervativeOrder;
63  double m_Constant;
64 };
65 
72 template<class TPixel,unsigned int VDimension=2,
73  class TAllocator = NeighborhoodAllocator<TPixel> >
75  : public Neighborhood<TPixel, VDimension, TAllocator>
76 {
77 public:
82  typedef Neighborhood< TPixel, VDimension, TAllocator > Superclass;
84  itkTypeMacro(NondirectionalDerivativeOperator, Neighborhood);
85 
91  void AddSingleDerivativeTerm(const SingleDerivativeTermInfoType& term) { this->m_DervativeTermInfo.push_back(term); }
95  void ClearDerivativeTerm(void) { this->m_DervativeTermInfo.clear(); }
99  void CreateToRadius(unsigned int radius);
100 
101 protected:
102  typedef DerivativeOperator< TPixel, VDimension, TAllocator > DerivativeOperatorType;
103 
104 protected:
108  std::vector< SingleDerivativeTermInfoType > m_DervativeTermInfo;
109 
110 private:
111 };
112 
113 }
114 #endif
115 
116 #ifndef ITK_MANUAL_INSTANTIATION
117 #include "itkNondirectionalDerivativeOperator.txx"
118 #endif
119 
DerivativeOperator< TPixel, VDimension, TAllocator > DerivativeOperatorType
Definition: itkNondirectionalDerivativeOperator.h:102
GLuint GLdouble GLdouble GLint GLint order
Definition: glew.h:3085
Vector< unsigned int, VDimension > DerivativeOrderType
Definition: itkNondirectionalDerivativeOperator.h:35
double m_Constant
Definition: itkNondirectionalDerivativeOperator.h:63
Definition: niftkITKAffineResampleImage.cxx:74
Neighborhood< TPixel, VDimension, TAllocator > Superclass
Definition: itkNondirectionalDerivativeOperator.h:82
const DerivativeOrderType & GetDerivativeOrder() const
Definition: itkNondirectionalDerivativeOperator.h:48
void SetDervativeOrder(const DerivativeOrderType &order)
Definition: itkNondirectionalDerivativeOperator.h:47
NondirectionalDerivativeOperator Self
Definition: itkNondirectionalDerivativeOperator.h:81
DerivativeOrderType m_DervativeOrder
Definition: itkNondirectionalDerivativeOperator.h:59
SingleDerivativeTermInfo()
Definition: itkNondirectionalDerivativeOperator.h:39
double GetConstant(void) const
Definition: itkNondirectionalDerivativeOperator.h:53
std::vector< SingleDerivativeTermInfoType > m_DervativeTermInfo
Definition: itkNondirectionalDerivativeOperator.h:108
void ClearDerivativeTerm(void)
Definition: itkNondirectionalDerivativeOperator.h:95
void AddSingleDerivativeTerm(const SingleDerivativeTermInfoType &term)
Definition: itkNondirectionalDerivativeOperator.h:91
~SingleDerivativeTermInfo()
Definition: itkNondirectionalDerivativeOperator.h:43
Information about a single derivative term (derivative order and the multiplicative term)...
Definition: itkNondirectionalDerivativeOperator.h:29
virtual ~NondirectionalDerivativeOperator()
Definition: itkNondirectionalDerivativeOperator.h:87
void SetConstant(double constant)
Definition: itkNondirectionalDerivativeOperator.h:52
Construct a multi-directional n-th derivative operator.
Definition: itkNondirectionalDerivativeOperator.h:74
SingleDerivativeTermInfo< VDimension > SingleDerivativeTermInfoType
Definition: itkNondirectionalDerivativeOperator.h:83