itkPeriodicBoundaryCondition.h
Go to the documentation of this file.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 };
00077
00078 }
00079
00080
00081 #define ITK_TEMPLATE_PeriodicBoundaryCondition(_, EXPORT, x, y) namespace itk { \
00082 _(1(class EXPORT PeriodicBoundaryCondition< ITK_TEMPLATE_1 x >)) \
00083 namespace Templates { typedef PeriodicBoundaryCondition< ITK_TEMPLATE_1 x > \
00084 PeriodicBoundaryCondition##y; } \
00085 }
00086
00087 #if ITK_TEMPLATE_EXPLICIT
00088 # include "Templates/itkPeriodicBoundaryCondition+-.h"
00089 #endif
00090
00091 #if ITK_TEMPLATE_TXX
00092 # include "itkPeriodicBoundaryCondition.txx"
00093 #endif
00094
00095 #endif
00096