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(Superclass::VERTEX_CELL);
00078
00080 virtual bool EvaluatePosition(CoordRepType*,
00081 PointsContainer* ,
00082 CoordRepType*,
00083 CoordRepType [],
00084 double *,
00085 InterpolationWeightType*);
00086 public:
00087 VertexCell() {}
00088 ~VertexCell() {}
00089
00090 protected:
00094 PointIdentifier m_PointIds[NumberOfPoints];
00095
00096 private:
00097 VertexCell(const Self&);
00098 void operator=(const Self&);
00099 };
00100
00101 }
00102
00103 #ifndef ITK_MANUAL_INSTANTIATION
00104 #include "itkVertexCell.txx"
00105 #endif
00106
00107 #endif