00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkZeroFluxNeumannBoundaryCondition_h
00018 #define __itkZeroFluxNeumannBoundaryCondition_h
00019 #include "itkNeighborhood.h"
00020 #include "itkImageBoundaryCondition.h"
00021
00022 namespace itk
00023 {
00024
00057 template<class TImage>
00058 class ITK_EXPORT ZeroFluxNeumannBoundaryCondition
00059 : public ImageBoundaryCondition<TImage>
00060 {
00061 public:
00063 typedef ZeroFluxNeumannBoundaryCondition Self;
00064 typedef ImageBoundaryCondition<TImage> Superclass;
00065
00067 typedef typename Superclass::PixelType PixelType;
00068 typedef typename Superclass::PixelPointerType PixelPointerType;
00069 typedef typename Superclass::IndexType IndexType;
00070 typedef typename Superclass::OffsetType OffsetType;
00071 typedef typename Superclass::NeighborhoodType NeighborhoodType;
00072
00073 typedef typename Superclass::NeighborhoodAccessorFunctorType
00074 NeighborhoodAccessorFunctorType;
00075
00077 itkStaticConstMacro(ImageDimension, unsigned int,Superclass::ImageDimension);
00078
00080 ZeroFluxNeumannBoundaryCondition() {}
00081
00084 virtual PixelType operator()(const OffsetType& point_index,
00085 const OffsetType& boundary_offset,
00086 const NeighborhoodType *data) const;
00087
00090 virtual PixelType operator()(
00091 const OffsetType& point_index,
00092 const OffsetType& boundary_offset,
00093 const NeighborhoodType *data,
00094 const NeighborhoodAccessorFunctorType &neighborhoodAccessorFunctor) const;
00095 };
00096
00097 }
00098
00099 #ifndef ITK_MANUAL_INSTANTIATION
00100 #include "itkZeroFluxNeumannBoundaryCondition.txx"
00101 #endif
00102
00103 #endif