1 #ifndef __CPPLUGINS__EXTENSIONS__DATASTRUCTURES__QUADEDGECELL__H__
2 #define __CPPLUGINS__EXTENSIONS__DATASTRUCTURES__QUADEDGECELL__H__
10 namespace DataStructures
14 template< class I, class E >
20 typedef QuadEdgeCell Self;
22 typedef itk::AutoPointer< Self > SelfAutoPointer;
23 typedef itk::AutoPointer< const Self > ConstSelfAutoPointer;
24 typedef Self* RawPointer;
25 typedef const Self* ConstRawPointer;
28 typedef E TPrimalEdge;
29 typedef typename E::TDual TDualEdge;
32 typedef typename I::PixelType PixelType;
33 typedef typename I::CellType CellType;
34 typedef typename I::CellAutoPointer CellAutoPointer;
35 typedef typename I::CellConstAutoPointer CellConstAutoPointer;
36 typedef typename I::CellRawPointer CellRawPointer;
37 typedef typename I::CellConstRawPointer CellConstRawPointer;
38 typedef typename I::CellTraits CellTraits;
39 typedef typename I::CoordRepType CoordRepType;
40 typedef typename I::InterpolationWeightType InterpolationWeightType;
41 typedef typename I::PointIdentifier PointIdentifier;
42 typedef typename I::PointIdIterator PointIdIterator;
43 typedef typename I::PointIdConstIterator PointIdConstIterator;
44 typedef typename I::CellIdentifier CellIdentifier;
45 typedef typename I::CellFeatureIdentifier CellFeatureIdentifier;
46 typedef typename I::CellFeatureIdentifier CellFeatureCount;
47 typedef typename I::PointType PointType;
48 typedef typename I::VectorType VectorType;
49 typedef typename I::PointsContainer PointsContainer;
50 typedef typename I::UsingCellsContainer UsingCellsContainer;
51 typedef typename I::CellGeometry CellGeometry;
52 typedef typename I::ParametricCoordArrayType ParametricCoordArrayType;
53 typedef typename I::ShapeFunctionsArrayType ShapeFunctionsArrayType;
55 itkStaticConstMacro( PointDimension, unsigned int, I::PointDimension );
56 itkStaticConstMacro( CellDimension, unsigned int, 2 );
59 itkTypeMacro( QuadEdgeCell, I );
63 QuadEdgeCell( E* entry );
64 virtual ~QuadEdgeCell( );
66 /// Implement the standard CellInterface.
67 virtual CellGeometry GetType( ) const;
68 virtual void MakeCopy( CellAutoPointer& other ) const;
69 virtual unsigned int GetDimension( ) const;
70 virtual unsigned int GetNumberOfPoints( ) const;
71 virtual CellFeatureCount GetNumberOfBoundaryFeatures(
74 virtual bool GetBoundaryFeature(
75 int dimension, CellFeatureIdentifier fId, CellAutoPointer& ptr
77 virtual void SetPointIds( PointIdConstIterator first );
78 virtual void SetPointIds(
79 PointIdConstIterator first, PointIdConstIterator last
81 virtual void AddPointId( PointIdentifier pId );
82 virtual void RemovePointId( PointIdentifier pId );
83 virtual void SetPointIds(
84 int dummy, int num, PointIdConstIterator first
86 virtual void BuildEdges( );
87 virtual void ClearPoints( );
88 virtual void SetPointId( int localId, PointIdentifier pId );
91 static int GetTopologyId( );
93 CellIdentifier cellid,
94 typename itk::CellInterface< PixelType, CellTraits >::
99 virtual PointIdIterator PointIdsBegin( );
100 virtual PointIdConstIterator PointIdsBegin( ) const;
101 virtual PointIdIterator PointIdsEnd( );
102 virtual PointIdConstIterator PointIdsEnd( ) const;
104 /// QuadEdgeCell-specific interface.
105 virtual E* GetEntryPrimalEdge( );
106 virtual const E* GetEntryPrimalEdge( ) const;
107 virtual void SetEntryPrimalEdge( E* entry );
110 /// Purposely not implemented.
111 QuadEdgeCell( const Self& );
112 Self& operator=( const Self& );
124 #include <cpPlugins/Extensions/DataStructures/QuadEdgeCell.hxx>
126 #endif // __CPPLUGINS__EXTENSIONS__DATASTRUCTURES__QUADEDGECELL__H__