X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2Fcpm%2FDataStructures%2FQuadEdgeIterators.h;fp=lib%2Fcpm%2FDataStructures%2FQuadEdgeIterators.h;h=0000000000000000000000000000000000000000;hb=6d6bf5d5e3b9318a507216f2f231c32299d1a941;hp=19cb2561025b2b408c4c13f186470fc2ac0046d9;hpb=de28025e5f1835fba69cb0a6666d02f0b7daec0d;p=cpMesh.git diff --git a/lib/cpm/DataStructures/QuadEdgeIterators.h b/lib/cpm/DataStructures/QuadEdgeIterators.h deleted file mode 100644 index 19cb256..0000000 --- a/lib/cpm/DataStructures/QuadEdgeIterators.h +++ /dev/null @@ -1,171 +0,0 @@ -#ifndef __CPM__DATASTRUCTURES__QUADEDGEITERATORS__H__ -#define __CPM__DATASTRUCTURES__QUADEDGEITERATORS__H__ - -#include - -// ------------------------------------------------------------------------- -#define cpmDataStructuresQEIteratorsMacro( op, it, cit ) \ - inline it Begin##op( ) \ - { return( it( this, it::Op##op, true ) ); } \ - inline it End##op( ) \ - { return( it( this, it::Op##op, false ) ); } \ - inline cit Begin##op( ) const \ - { return( cit( this, cit::Op##op, true ) ); } \ - inline cit End##op( ) const \ - { return( cit( this, cit::Op##op, false ) ); } - -// ------------------------------------------------------------------------- -#define cpmDataStructuresQEPointIteratorsMacro( op, it, cit ) \ - inline Point##it BeginPoint##op( ) \ - { return( Point##it( this, it::Op##op, true ) ); } \ - inline Point##it EndPoint##op( ) \ - { return( Point##it( this, it::Op##op, false ) ); } \ - inline Point##cit BeginPoint##op( ) const \ - { return( Point##cit( this, cit::Op##op, true ) ); } \ - inline Point##cit EndPoint ##op( ) const \ - { return( Point##cit( this, cit::Op##op, false ) ); } - -// ------------------------------------------------------------------------- -#define cpmDataStructuresQEAllIteratorsMacro( op ) \ - cpmDataStructuresQEIteratorsMacro( op, Iterator, ConstIterator ); \ - cpmDataStructuresQEPointIteratorsMacro( op, Iterator, ConstIterator ); - -namespace cpm -{ - namespace DataStructures - { - /** - */ - template< class E > - class QuadEdgeBaseIterator - { - public: - typedef QuadEdgeBaseIterator Self; - typedef E TQuadEdge; - - // Different types of logical iterators - enum - { - OpOnext = 0, - OpLnext = 1, - OpRnext = 2, - OpDnext = 3, - OpOprev = 4, - OpLprev = 5, - OpRprev = 6, - OpDprev = 7 - }; - - public: - QuadEdgeBaseIterator( E* e, int op = OpOnext, bool start = true ); - virtual ~QuadEdgeBaseIterator( ); - Self& operator=( const Self& r ); - - E* GetStartEdge( ) const; - E* GetIterator( ) const; - int GetOpType( ) const; - bool GetStart( ) const; - - bool operator==( Self& r ); - bool operator==( const Self& r ) const; - bool operator!=( Self& r ); - bool operator!=( const Self& r ) const; - Self& operator++( ); - Self& operator++( int ); - - protected: - /// Method that should do all the iteration work - virtual void _GoToNext( ); - - protected: - E* m_StartEdge; /**< Start edge */ - E* m_Iterator; /**< Current iteration position */ - int m_OpType; /**< Operation type */ - bool m_Start; /**< Indicates iteration has just started */ - }; - - /** - */ - template< class E > - class QuadEdgeIterator - : public QuadEdgeBaseIterator< E > - { - public: - typedef QuadEdgeIterator Self; - typedef QuadEdgeBaseIterator< E > Superclass; - typedef E TQuadEdge; - - public: - QuadEdgeIterator( - E* e = NULL, int op = Superclass::OpOnext, bool start = true - ); - virtual ~QuadEdgeIterator( ); - E* operator*( ); - }; - - /** - */ - template< class E > - class QuadEdgeConstIterator - : public QuadEdgeBaseIterator< const E > - { - public: - typedef QuadEdgeConstIterator Self; - typedef QuadEdgeBaseIterator< const E > Superclass; - typedef E TQuadEdge; - - public: - QuadEdgeConstIterator( - const E* e = NULL, int op = Superclass::OpOnext, bool start = true - ); - virtual ~QuadEdgeConstIterator( ); - const E* operator*( ) const; - }; - - /** - */ - template< class E > - class QuadEdgePointIterator - : public QuadEdgeBaseIterator< const E > - { - public: - typedef QuadEdgePointIterator Self; - typedef QuadEdgeBaseIterator< const E > Superclass; - typedef E TQuadEdge; - - public: - QuadEdgePointIterator( - const E* e = NULL, int op = Superclass::OpOnext, bool start = true - ); - virtual ~QuadEdgePointIterator( ); - typename E::TPrimalGeometry& operator*( ); - }; - - /** - */ - template< class E > - class QuadEdgePointConstIterator - : public QuadEdgeBaseIterator< const E > - { - public: - typedef QuadEdgePointConstIterator Self; - typedef QuadEdgeBaseIterator< const E > Superclass; - typedef E TQuadEdge; - - public: - QuadEdgePointConstIterator( - const E* e = NULL, int op = Superclass::OpOnext, bool start = true - ); - virtual ~QuadEdgePointConstIterator( ); - const typename E::TPrimalGeometry& operator*( ) const; - }; - - } // ecapseman - -} // ecapseman - -#include - -#endif // __CPM__DATASTRUCTURES__QUADEDGEITERATORS__H__ - -// eof - $RCSfile$