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
00050 template<class TPixel, unsigned int VDimension = 2,
00051 class TAllocator = NeighborhoodAllocator<TPixel> >
00052 class ITK_EXPORT BinaryBallStructuringElement
00053 : public Neighborhood<TPixel, VDimension, TAllocator>
00054 {
00055 public:
00057 typedef BinaryBallStructuringElement Self;
00058 typedef Neighborhood<TPixel, VDimension, TAllocator> Superclass;
00059
00061 typedef TAllocator AllocatorType;
00062
00064 itkStaticConstMacro(NeighborhoodDimension, unsigned int, VDimension);
00065
00067 typedef TPixel PixelType;
00068
00072 typedef typename AllocatorType::iterator Iterator;
00073 typedef typename AllocatorType::const_iterator ConstIterator;
00074
00076 typedef typename Superclass::SizeType SizeType;
00077 typedef typename Superclass::SizeValueType SizeValueType;
00078
00080 typedef typename Superclass::RadiusType RadiusType;
00081
00083 typedef SliceIterator<TPixel, Self> SliceIteratorType;
00084
00086 BinaryBallStructuringElement() {}
00087
00089 virtual ~BinaryBallStructuringElement() {}
00090
00092 BinaryBallStructuringElement(const Self& other)
00093 : Neighborhood<TPixel, VDimension, TAllocator>(other)
00094 {
00095 }
00096
00098 Self &operator=(const Self& other)
00099 {
00100 Superclass::operator=(other);
00101 return *this;
00102 }
00103
00105 void CreateStructuringElement();
00106
00107 protected:
00108
00109 private:
00110
00111 };
00112
00113 }
00114
00115 #ifndef ITK_MANUAL_INSTANTIATION
00116 #include "itkBinaryBallStructuringElement.txx"
00117 #endif
00118
00119 #endif