00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkPeriodicBoundaryCondition_h
00018 #define __itkPeriodicBoundaryCondition_h
00019 #include "itkNeighborhood.h"
00020 #include "itkImageBoundaryCondition.h"
00021
00022 namespace itk
00023 {
00024
00037 template<class TImage>
00038 class ITK_EXPORT PeriodicBoundaryCondition
00039 : public ImageBoundaryCondition<TImage>
00040 {
00041 public:
00043 typedef PeriodicBoundaryCondition Self;
00044 typedef ImageBoundaryCondition<TImage> Superclass;
00045
00047 typedef typename Superclass::PixelType PixelType;
00048 typedef typename Superclass::PixelPointerType PixelPointerType;
00049 typedef typename Superclass::IndexType IndexType;
00050 typedef typename Superclass::OffsetType OffsetType;
00051 typedef typename Superclass::NeighborhoodType NeighborhoodType;
00052
00053 typedef typename Superclass::NeighborhoodAccessorFunctorType
00054 NeighborhoodAccessorFunctorType;
00055
00057 itkStaticConstMacro(ImageDimension, unsigned int,Superclass::ImageDimension);
00058
00060 PeriodicBoundaryCondition() {}
00061
00064 virtual PixelType operator()(const OffsetType& point_index,
00065 const OffsetType& boundary_offset,
00066 const NeighborhoodType *data) const;
00067
00070 virtual PixelType operator()(
00071 const OffsetType& point_index,
00072 const OffsetType& boundary_offset,
00073 const NeighborhoodType *data,
00074 const NeighborhoodAccessorFunctorType &neighborhoodAccessorFunctor) const;
00075 };
00076
00077 }
00078
00079 #ifndef ITK_MANUAL_INSTANTIATION
00080 #include "itkPeriodicBoundaryCondition.txx"
00081 #endif
00082
00083 #endif