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