00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef __itkNeighborhoodAlgorithm_h
00019 #define __itkNeighborhoodAlgorithm_h
00020
00021 #include <list>
00022 #include "itkImage.h"
00023 #include "itkNeighborhood.h"
00024 #include "itkNeighborhoodOperator.h"
00025 #include "itkExceptionObject.h"
00026 #include "itkNeighborhoodIterator.h"
00027
00028 namespace itk
00029 {
00030
00031 namespace NeighborhoodAlgorithm
00032 {
00033
00035 template<class TImage>
00036 struct ITK_EXPORT ImageBoundaryFacesCalculator
00037 {
00038 typedef typename NeighborhoodIterator<TImage>::RadiusType RadiusType;
00039 typedef typename TImage::RegionType RegionType;
00040 typedef typename TImage::IndexType IndexType;
00041 typedef typename IndexType::IndexValueType IndexValueType;
00042 typedef typename TImage::SizeType SizeType;
00043 typedef typename SizeType::SizeValueType SizeValueType;
00044 typedef std::list<RegionType> FaceListType;
00045 itkStaticConstMacro(ImageDimension, unsigned int, TImage::ImageDimension);
00046
00047 FaceListType operator()(const TImage *, RegionType, RadiusType);
00048 };
00049
00057 template<class TImage>
00058 struct ITK_EXPORT CalculateOutputWrapOffsetModifiers
00059 {
00060 typedef Offset< ::itk::GetImageDimension<TImage>::ImageDimension> OffsetType;
00061 OffsetType operator()(TImage *, TImage *) const;
00062 };
00063
00064 }
00065
00066 }
00067
00068 #ifndef ITK_MANUAL_INSTANTIATION
00069 #include "itkNeighborhoodAlgorithm.txx"
00070 #endif
00071
00072 #endif