+++ /dev/null
-#ifndef __CPM__DATASTRUCTURES__QUADEDGECELL__H__
-#define __CPM__DATASTRUCTURES__QUADEDGECELL__H__
-
-#include <vector>
-
-namespace cpm
-{
- namespace DataStructures
- {
- /**
- */
- template< class I, class E >
- class QuadEdgeCell
- : public I
- {
- public:
- // Base types
- typedef QuadEdgeCell Self;
- typedef I Superclass;
- typedef itk::AutoPointer< Self > SelfAutoPointer;
- typedef itk::AutoPointer< const Self > ConstSelfAutoPointer;
- typedef Self* RawPointer;
- typedef const Self* ConstRawPointer;
-
- // QuadEdge objects
- typedef E TPrimalEdge;
- typedef typename E::TDual TDualEdge;
-
- // Inherited types
- typedef typename I::PixelType PixelType;
- typedef typename I::CellType CellType;
- typedef typename I::CellAutoPointer CellAutoPointer;
- typedef typename I::CellConstAutoPointer CellConstAutoPointer;
- typedef typename I::CellRawPointer CellRawPointer;
- typedef typename I::CellConstRawPointer CellConstRawPointer;
- typedef typename I::CellTraits CellTraits;
- typedef typename I::CoordRepType CoordRepType;
- typedef typename I::InterpolationWeightType InterpolationWeightType;
- typedef typename I::PointIdentifier PointIdentifier;
- typedef typename I::PointIdIterator PointIdIterator;
- typedef typename I::PointIdConstIterator PointIdConstIterator;
- typedef typename I::CellIdentifier CellIdentifier;
- typedef typename I::CellFeatureIdentifier CellFeatureIdentifier;
- typedef typename I::CellFeatureIdentifier CellFeatureCount;
- typedef typename I::PointType PointType;
- typedef typename I::VectorType VectorType;
- typedef typename I::PointsContainer PointsContainer;
- typedef typename I::UsingCellsContainer UsingCellsContainer;
- typedef typename I::CellGeometry CellGeometry;
- typedef typename I::ParametricCoordArrayType ParametricCoordArrayType;
- typedef typename I::ShapeFunctionsArrayType ShapeFunctionsArrayType;
-
- itkStaticConstMacro( PointDimension, unsigned int, I::PointDimension );
- itkStaticConstMacro( CellDimension, unsigned int, 2 );
-
- public:
- itkTypeMacro( QuadEdgeCell, I );
-
- public:
- QuadEdgeCell( );
- QuadEdgeCell( E* entry );
- virtual ~QuadEdgeCell( );
-
- /// Implement the standard CellInterface.
- virtual CellGeometry GetType( ) const;
- virtual void MakeCopy( CellAutoPointer& other ) const;
- virtual unsigned int GetDimension( ) const;
- virtual unsigned int GetNumberOfPoints( ) const;
- virtual CellFeatureCount GetNumberOfBoundaryFeatures(
- int dimension
- ) const;
- virtual bool GetBoundaryFeature(
- int dimension, CellFeatureIdentifier fId, CellAutoPointer& ptr
- );
- virtual void SetPointIds( PointIdConstIterator first );
- virtual void SetPointIds(
- PointIdConstIterator first, PointIdConstIterator last
- );
- virtual void AddPointId( PointIdentifier pId );
- virtual void RemovePointId( PointIdentifier pId );
- virtual void SetPointIds(
- int dummy, int num, PointIdConstIterator first
- );
- virtual void BuildEdges( );
- virtual void ClearPoints( );
- virtual void SetPointId( int localId, PointIdentifier pId );
-
- // Visitor methods
- static int GetTopologyId( );
- virtual void Accept(
- CellIdentifier cellid,
- typename itk::CellInterface< PixelType, CellTraits >::
- MultiVisitor* mv
- );
-
- // Iterators
- virtual PointIdIterator PointIdsBegin( );
- virtual PointIdConstIterator PointIdsBegin( ) const;
- virtual PointIdIterator PointIdsEnd( );
- virtual PointIdConstIterator PointIdsEnd( ) const;
-
- /// QuadEdgeCell-specific interface.
- virtual E* GetEntryPrimalEdge( );
- virtual const E* GetEntryPrimalEdge( ) const;
- virtual void SetEntryPrimalEdge( E* entry );
-
- private:
- /// Purposely not implemented.
- QuadEdgeCell( const Self& );
- Self& operator=( const Self& );
-
- protected:
- E* m_EntryEdge;
- };
-
- } // ecapseman
-
-} // ecapseman
-
-#include <cpm/DataStructures/QuadEdgeCell.hxx>
-
-#endif // __CPM__DATASTRUCTURES__QUADEDGECELL__H__
-
-// eof - $RCSfile$