21 #ifndef _TLPGRAPHTOOLS_H 
   22 #define _TLPGRAPHTOOLS_H 
   26 #include <tulip/tuliphash.h> 
   27 #include <tulip/Node.h> 
   28 #include <tulip/Edge.h> 
   30 #include <tulip/PlanarConMap.h> 
   34 class BooleanProperty;
 
   36 class IntegerProperty;
 
   37 class NumericProperty;
 
   47 TLP_SCOPE std::vector<std::vector<node> > computeCanonicalOrdering(PlanarConMap *,
 
   48     std::vector<edge>  *dummyEdges = NULL,
 
   49     PluginProgress *pluginProgress = NULL);
 
   54 TLP_SCOPE std::vector<node> computeGraphCenters(Graph * graph);
 
   60 TLP_SCOPE node graphCenterHeuristic(Graph * graph,
 
   61                                     PluginProgress *pluginProgress = NULL);
 
   66 TLP_SCOPE node makeSimpleSource(Graph* graph);
 
   68 TLP_SCOPE 
void makeProperDag(Graph* graph,std::list<node> &addedNodes,
 
   69                              TLP_HASH_MAP<edge,edge> &replacedEdges,
 
   70                              IntegerProperty* edgeLength = NULL);
 
   78 TLP_SCOPE 
void selectSpanningForest(Graph* graph, BooleanProperty *selectionProperty,
 
   79                                     PluginProgress *pluginProgress = NULL);
 
   87 TLP_SCOPE 
void selectSpanningTree(Graph* graph, BooleanProperty *selection,
 
   88                                   PluginProgress *pluginProgress = NULL);
 
   96 TLP_SCOPE 
void selectMinimumSpanningTree(Graph* graph, BooleanProperty *selectionProperty,
 
   97     NumericProperty *weight = NULL,
 
   98     PluginProgress *pluginProgress = NULL);
 
  109 TLP_SCOPE std::vector<node> bfs(
const Graph *graph, node root = node());
 
  119 TLP_SCOPE std::vector<node> dfs(
const Graph *graph, node root = node());
 
  125 TLP_SCOPE 
void buildNodesUniformQuantification(
const Graph* graph, 
const NumericProperty* prop, 
unsigned int k, std::map<double, int>& mapping);
 
  131 TLP_SCOPE 
void buildEdgesUniformQuantification(
const Graph* graph, 
const NumericProperty* prop, 
unsigned int k, std::map<double, int>& mapping);