Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itkPolygonCell.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Insight Segmentation & Registration Toolkit 00004 Module: $RCSfile: itkPolygonCell.h,v $ 00005 Language: C++ 00006 Date: $Date: 2003/09/10 14:29:23 $ 00007 Version: $Revision: 1.29 $ 00008 00009 Copyright (c) Insight Software Consortium. All rights reserved. 00010 See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details. 00011 00012 Portions of this code are covered under the VTK copyright. 00013 See VTKCopyright.txt or http://www.kitware.com/VTKCopyright.htm for details. 00014 00015 This software is distributed WITHOUT ANY WARRANTY; without even 00016 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00017 PURPOSE. See the above copyright notices for more information. 00018 00019 =========================================================================*/ 00020 #ifndef __itkPolygonCell_h 00021 #define __itkPolygonCell_h 00022 00023 #include "itkCellInterface.h" 00024 #include "itkLineCell.h" 00025 #include "itkPoint.h" 00026 #include <vector> 00027 #include <queue> 00028 00029 00030 namespace itk 00031 { 00032 00047 template < typename TCellInterface > 00048 class ITK_EXPORT PolygonCell: public TCellInterface 00049 { 00050 public: 00052 itkCellCommonTypedefs(PolygonCell); 00053 itkCellInheritedTypedefs(TCellInterface); 00054 00056 itkTypeMacro(PolygonCell, CellInterface); 00057 00059 itkStaticConstMacro(CellDimension, unsigned int, 2); 00060 00062 typedef VertexCell< TCellInterface > VertexType; 00063 typedef typename VertexType::SelfAutoPointer VertexAutoPointer; 00064 00066 typedef LineCell< TCellInterface > EdgeType; 00067 typedef typename EdgeType::SelfAutoPointer EdgeAutoPointer; 00068 00069 typedef FixedArray<int,2> EdgeInfo; 00070 typedef std::deque<EdgeInfo> EdgeInfoDQ; 00071 00073 itkCellVisitMacro(POLYGON_CELL); 00074 00076 virtual CellGeometry GetType(void) const 00077 {return Superclass::POLYGON_CELL;} 00078 virtual void MakeCopy( CellAutoPointer & ) const; 00079 virtual unsigned int GetDimension(void) const; 00080 virtual unsigned int GetNumberOfPoints(void) const; 00081 virtual CellFeatureCount GetNumberOfBoundaryFeatures(int dimension) const; 00082 virtual bool GetBoundaryFeature(int dimension, CellFeatureIdentifier,CellAutoPointer &); 00083 00084 virtual void SetPointIds(PointIdConstIterator first); 00085 virtual void SetPointIds(PointIdConstIterator first, 00086 PointIdConstIterator last); 00087 00088 void AddPointId(PointIdentifier); 00089 void SetPointIds(int dummy, int num, PointIdConstIterator first); 00090 void BuildEdges(void); 00091 void ClearPoints(void); 00092 00093 virtual void SetPointId(int localId, PointIdentifier); 00094 virtual PointIdIterator PointIdsBegin(void); 00095 virtual PointIdConstIterator PointIdsBegin(void) const; 00096 virtual PointIdIterator PointIdsEnd(void); 00097 virtual PointIdConstIterator PointIdsEnd(void) const; 00098 00100 virtual CellFeatureCount GetNumberOfVertices(void) const; 00101 virtual CellFeatureCount GetNumberOfEdges(void) const; 00102 virtual bool GetVertex(CellFeatureIdentifier, VertexAutoPointer &); 00103 virtual bool GetEdge(CellFeatureIdentifier, EdgeAutoPointer &); 00104 00105 00107 PolygonCell() {} 00108 ~PolygonCell() {} 00109 00110 protected: 00111 std::vector<EdgeInfo> m_Edges; 00112 std::vector<PointIdentifier> m_PointIds; 00113 00114 private: 00115 PolygonCell(const Self&); //purposely not implemented 00116 void operator=(const Self&); //purposely not implemented 00117 00118 }; 00119 00120 } //end namespace 00121 00122 #ifndef ITK_MANUAL_INSTANTIATION 00123 #include "itkPolygonCell.txx" 00124 #endif 00125 00126 #endif 00127 00128

Generated at Sat Mar 31 02:27:24 2007 for ITK by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2000