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