- /**
- */
- 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
+ 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