00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkVertexCell_h
00018 #define __itkVertexCell_h
00019
00020 #include "itkCellInterface.h"
00021
00022 namespace itk
00023 {
00024
00040 template < typename TCellInterface >
00041 class ITK_EXPORT VertexCell: public TCellInterface
00042 {
00043 public:
00045 itkCellCommonTypedefs(VertexCell);
00046 itkCellInheritedTypedefs(TCellInterface);
00047
00049 itkTypeMacro(VertexCell, CellInterface);
00050
00052 itkStaticConstMacro(NumberOfPoints, unsigned int, 1);
00053 itkStaticConstMacro(CellDimension, unsigned int, 0);
00054
00056 virtual CellGeometry GetType(void) const
00057 {return Superclass::VERTEX_CELL;}
00058 virtual void MakeCopy( CellAutoPointer & ) const;
00059 virtual unsigned int GetDimension(void) const;
00060 virtual unsigned int GetNumberOfPoints(void) const;
00061 virtual CellFeatureCount GetNumberOfBoundaryFeatures(int dimension) const;
00062 virtual bool GetBoundaryFeature(int dimension, CellFeatureIdentifier, CellAutoPointer &);
00063 virtual void SetPointIds(PointIdConstIterator first);
00064 virtual void SetPointIds(PointIdConstIterator first,
00065 PointIdConstIterator last);
00066 virtual void SetPointId(int localId, PointIdentifier);
00067 virtual PointIdIterator PointIdsBegin(void);
00068 virtual PointIdConstIterator PointIdsBegin(void) const;
00069 virtual PointIdIterator PointIdsEnd(void);
00070 virtual PointIdConstIterator PointIdsEnd(void) const;
00071
00073 virtual void SetPointId(PointIdentifier);
00074 virtual PointIdentifier GetPointId(void);
00075
00077 itkCellVisitMacro(VERTEX_CELL);
00078
00079 public:
00080 VertexCell() {}
00081 ~VertexCell() {}
00082
00083 protected:
00087 PointIdentifier m_PointIds[NumberOfPoints];
00088
00089 private:
00090 VertexCell(const Self&);
00091 void operator=(const Self&);
00092 };
00093
00094 }
00095
00096 #ifndef ITK_MANUAL_INSTANTIATION
00097 #include "itkVertexCell.txx"
00098 #endif
00099
00100 #endif