libmove3d
3.13.0
|
00001 #ifndef __P3DDFS_H__ 00002 #define __P3DDFS_H__ 00003 00004 00005 class Dfs { 00006 public: 00007 Dfs(); 00008 virtual ~Dfs(); 00015 virtual void *p3d_dfs(void* graph, void* node) = 0; 00016 protected: 00020 virtual void deleteNodeList(void) = 0; 00025 virtual void initGraph(void* graph) = 0; 00031 virtual void setDiscovered(void* node, bool value) = 0; 00037 virtual bool getDiscovered(void* node) = 0; 00043 virtual void setProceeded(void* node, bool value) = 0; 00049 virtual bool getProceeded(void* node) = 0; 00054 virtual void processNode(void* node) = 0; 00060 virtual void processEdge(void* edge, int id) = 0; 00066 virtual int getNodeNbEdges(void* node) = 0; 00073 virtual void* getEdgeNode(void* node, int id) = 0; 00080 virtual bool validEdge(void* edge, int id) = 0; 00081 void deepFirstSearch(void* graph, void* node); 00082 void* _listNode; 00083 }; 00084 00085 #endif 00086