00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkForwardDifferenceOperator_h
00018 #define __itkForwardDifferenceOperator_h
00019
00020 #include "itkNeighborhoodOperator.h"
00021 #include "itkExceptionObject.h"
00022
00023 namespace itk {
00024
00038 template<class TPixel, unsigned int VDimension=2,
00039 class TAllocator = NeighborhoodAllocator<TPixel> >
00040 class ITK_EXPORT ForwardDifferenceOperator
00041 : public NeighborhoodOperator<TPixel, VDimension, TAllocator>
00042 {
00043 public:
00044
00046 typedef ForwardDifferenceOperator Self;
00047 typedef NeighborhoodOperator<TPixel, VDimension, TAllocator> Superclass;
00048
00049 typedef typename Superclass::PixelType PixelType;
00050
00052 ForwardDifferenceOperator() {}
00053
00055 ForwardDifferenceOperator(const Self& other)
00056 : NeighborhoodOperator<TPixel, VDimension, TAllocator>(other)
00057 { }
00058
00060 Self &operator=(const Self& other)
00061 {
00062 Superclass::operator=(other);
00063 return *this;
00064 }
00066
00067 protected:
00069 typedef typename Superclass::CoefficientVector CoefficientVector;
00070
00072 CoefficientVector GenerateCoefficients();
00073
00075 void Fill(const CoefficientVector &coeff)
00076
00077 { this->FillCenteredDirectional(coeff); }
00078
00079 };
00080
00081
00082 }
00083
00084 #ifndef ITK_MANUAL_INSTANTIATION
00085 #include "itkForwardDifferenceOperator.txx"
00086 #endif
00087
00088 #endif
00089
00090
00091