00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkImageBoundaryCondition_h_
00018 #define __itkImageBoundaryCondition_h_
00019
00020 #include "itkImage.h"
00021 #include "itkIndex.h"
00022 #include "itkOffset.h"
00023 #include "itkNeighborhood.h"
00024
00025 namespace itk
00026 {
00027
00051 template <class TImageType>
00052 class ITK_EXPORT ImageBoundaryCondition
00053 {
00054 public:
00056 itkStaticConstMacro(ImageDimension, unsigned int,
00057 TImageType::ImageDimension);
00058
00060 typedef ImageBoundaryCondition Self;
00061
00063 typedef typename TImageType::PixelType PixelType;
00064 typedef typename TImageType::InternalPixelType *PixelPointerType;
00065 typedef Index<itkGetStaticConstMacro(ImageDimension)> IndexType;
00066 typedef Offset<itkGetStaticConstMacro(ImageDimension)> OffsetType;
00067
00069 typedef Neighborhood<PixelPointerType,
00070 itkGetStaticConstMacro(ImageDimension)> NeighborhoodType;
00071
00073 ImageBoundaryCondition() {}
00074
00079 virtual PixelType operator()(const OffsetType& point_index,
00080 const OffsetType &boundary_offset,
00081 const NeighborhoodType *data) const = 0;
00082 };
00083
00084 }
00085
00086
00087 #endif