00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkBinaryCrossStructuringElement_h
00018 #define __itkBinaryCrossStructuringElement_h
00019
00020 #include "itkNeighborhood.h"
00021
00022 namespace itk {
00023
00041 template<class TPixel, unsigned int VDimension = 2,
00042 class TAllocator = NeighborhoodAllocator<TPixel> >
00043 class ITK_EXPORT BinaryCrossStructuringElement
00044 : public Neighborhood<TPixel, VDimension, TAllocator>
00045 {
00046 public:
00048 typedef BinaryCrossStructuringElement Self;
00049 typedef Neighborhood<TPixel, VDimension, TAllocator> Superclass;
00050
00052 typedef TAllocator AllocatorType;
00053
00055 itkStaticConstMacro(NeighborhoodDimension, unsigned int, VDimension);
00056
00058 typedef TPixel PixelType;
00059
00063 typedef typename AllocatorType::iterator Iterator;
00064 typedef typename AllocatorType::const_iterator ConstIterator;
00065
00067 typedef typename Superclass::SizeType SizeType;
00068 typedef typename Superclass::SizeValueType SizeValueType;
00069
00071 typedef typename Superclass::OffsetType OffsetType;
00072 typedef typename OffsetType::OffsetValueType OffsetValueType;
00073
00075 typedef typename Superclass::RadiusType RadiusType;
00076
00078 typedef SliceIterator<TPixel, Self> SliceIteratorType;
00079
00081 BinaryCrossStructuringElement() {}
00082
00084 virtual ~BinaryCrossStructuringElement() {}
00085
00087 BinaryCrossStructuringElement(const Self& other)
00088 : Neighborhood<TPixel, VDimension, TAllocator>(other)
00089 {
00090 }
00091
00093 Self &operator=(const Self& other)
00094 {
00095 Superclass::operator=(other);
00096 return *this;
00097 }
00098
00100 void CreateStructuringElement();
00101
00102 protected:
00103
00104 private:
00105
00106 };
00107
00108 }
00109
00110 #ifndef ITK_MANUAL_INSTANTIATION
00111 #include "itkBinaryCrossStructuringElement.txx"
00112 #endif
00113
00114 #endif