00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkBinaryBallStructuringElement_h
00018 #define __itkBinaryBallStructuringElement_h
00019
00020 #include "itkNeighborhood.h"
00021
00022 namespace itk {
00023
00051 template<class TPixel, unsigned int VDimension = 2,
00052 class TAllocator = NeighborhoodAllocator<TPixel> >
00053 class ITK_EXPORT BinaryBallStructuringElement
00054 : public Neighborhood<TPixel, VDimension, TAllocator>
00055 {
00056 public:
00058 typedef BinaryBallStructuringElement Self;
00059 typedef Neighborhood<TPixel, VDimension, TAllocator> Superclass;
00060
00062 typedef TAllocator AllocatorType;
00063
00065 itkStaticConstMacro(NeighborhoodDimension, unsigned int, VDimension);
00066
00068 typedef TPixel PixelType;
00069
00073 typedef typename AllocatorType::iterator Iterator;
00074 typedef typename AllocatorType::const_iterator ConstIterator;
00075
00077 typedef typename Superclass::SizeType SizeType;
00078 typedef typename Superclass::SizeValueType SizeValueType;
00079
00081 typedef typename Superclass::RadiusType RadiusType;
00082
00084 typedef SliceIterator<TPixel, Self> SliceIteratorType;
00085
00087 BinaryBallStructuringElement() {}
00088
00090 virtual ~BinaryBallStructuringElement() {}
00091
00093 BinaryBallStructuringElement(const Self& other)
00094 : Neighborhood<TPixel, VDimension, TAllocator>(other)
00095 {
00096 }
00097
00099 Self &operator=(const Self& other)
00100 {
00101 Superclass::operator=(other);
00102 return *this;
00103 }
00105
00107 void CreateStructuringElement();
00108
00109 protected:
00110
00111 private:
00112
00113 };
00114
00115 }
00116
00117
00118 #define ITK_TEMPLATE_BinaryBallStructuringElement(_, EXPORT, x, y) namespace itk { \
00119 _(2(class EXPORT BinaryBallStructuringElement< ITK_TEMPLATE_2 x >)) \
00120 namespace Templates { typedef BinaryBallStructuringElement< ITK_TEMPLATE_2 x > \
00121 BinaryBallStructuringElement##y; } \
00122 }
00123
00124 #if ITK_TEMPLATE_EXPLICIT
00125 # include "Templates/itkBinaryBallStructuringElement+-.h"
00126 #endif
00127
00128 #if ITK_TEMPLATE_TXX
00129 # include "itkBinaryBallStructuringElement.txx"
00130 #endif
00131
00132 #endif
00133