00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 00017 00018 00019 00020 00025 #ifndef _QUAD_EDGE_WALKER_H_ 00026 #define _QUAD_EDGE_WALKER_H_ 00027 00028 #include <map> 00029 00030 namespace EdgeAlgebra 00031 { 00032 00033 class QuadEdge; 00034 00038 class QuadEdgeWalker 00039 { 00040 public: 00043 QuadEdgeWalker(QuadEdge* edge); 00044 00046 ~QuadEdgeWalker(void); 00047 00050 const std::map<QuadEdge*, char> GetWalkedEdges(void) const; 00051 00052 private: 00054 std::map<QuadEdge*, char> m_walkedEdges; 00055 00057 QuadEdgeWalker(const QuadEdgeWalker&); 00058 00060 QuadEdgeWalker& operator=(const QuadEdgeWalker&); 00061 00064 void Walk(QuadEdge* edge); 00065 00066 00067 }; 00068 00069 } 00070 00071 #endif