00001 //----------------------------------------------------------------------------- 00002 /** @file searchutils.h 00003 Utilities for running searches. 00004 00005 $Id: searchutils_8h-source.html,v 1.1.1.1 2003/08/07 19:41:39 emarkus Exp $ 00006 $Source: /usr/cvsroot/www_pathfind/libpathfind/0.1.0/doc/searchutils_8h-source.html,v $ 00007 */ 00008 //----------------------------------------------------------------------------- 00009 00010 #ifndef PATHFIND_SEARCHUTILS_H 00011 #define PATHFIND_SEARCHUTILS_H 00012 00013 #include "environment.h" 00014 00015 //----------------------------------------------------------------------------- 00016 00017 namespace PathFind 00018 { 00019 using namespace std; 00020 00021 /** Utility operations for running searches. */ 00022 class SearchUtils 00023 { 00024 public: 00025 bool checkPathExists(const Environment& env, int start, int target); 00026 00027 void findRandomStartTarget(const Environment& env, 00028 int& start, int &target); 00029 00030 private: 00031 int m_target; 00032 00033 const Environment* m_env; 00034 00035 vector<bool> m_mark; 00036 00037 vector<vector<Environment::Successor> > m_successorStack; 00038 00039 bool searchPathExists(int node, int depth); 00040 }; 00041 } 00042 00043 //----------------------------------------------------------------------------- 00044 00045 #endif