X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FGraph.cpp;h=0165bdacc9a4c95d626f21996f83f010c1a52959;hb=bca1b63d89e27b31b089ab48c63368640084b3a6;hp=8d1e445157481c79c521e7e60d58e868df920caf;hpb=f2bfbfa975be56e6927fdfd3d6ed566f31064e5c;p=lyx.git diff --git a/src/Graph.cpp b/src/Graph.cpp index 8d1e445157..0165bdacc9 100644 --- a/src/Graph.cpp +++ b/src/Graph.cpp @@ -4,7 +4,7 @@ * Licence details can be found in the file COPYING. * * \author Dekel Tsur (original code) - * \author Richard Heck (re-implementation) + * \author Richard Kimberly Heck (re-implementation) * * Full author contact details are available in file CREDITS. */ @@ -17,8 +17,6 @@ #include "support/debug.h" #include "support/lassert.h" -#include - using namespace std; namespace lyx { @@ -28,7 +26,7 @@ bool Graph::bfs_init(int s, bool clear_visited, queue & Q) { if (s < 0) return false; - + if (!Q.empty()) Q = queue(); @@ -47,11 +45,11 @@ bool Graph::bfs_init(int s, bool clear_visited, queue & Q) Graph::EdgePath const - Graph::getReachableTo(int target, bool clear_visited) + Graph::getReachableTo(int to, bool clear_visited) { EdgePath result; queue Q; - if (!bfs_init(target, clear_visited, Q)) + if (!bfs_init(to, clear_visited, Q)) return result; // Here's the logic, which is shared by the other routines. @@ -63,7 +61,7 @@ Graph::EdgePath const while (!Q.empty()) { int const current = Q.front(); Q.pop(); - if (current != target || formats.get(target).name() != "lyx") + if (current != to || theFormats().get(to).name() != "lyx") result.push_back(current); vector::iterator it = vertices_[current].in_arrows.begin(); @@ -83,7 +81,7 @@ Graph::EdgePath const Graph::EdgePath const Graph::getReachable(int from, bool only_viewable, - bool clear_visited, vector excludes) + bool clear_visited, set excludes) { EdgePath result; queue Q; @@ -93,12 +91,12 @@ Graph::EdgePath const while (!Q.empty()) { int const current = Q.front(); Q.pop(); - Format const & format = formats.get(current); + Format const & format = theFormats().get(current); if (!only_viewable || !format.viewer().empty()) result.push_back(current); else if (format.isChildFormat()) { Format const * const parent = - formats.getFormat(format.parentFormat()); + theFormats().getFormat(format.parentFormat()); if (parent && !parent->viewer().empty()) result.push_back(current); } @@ -111,7 +109,7 @@ Graph::EdgePath const int const cv = (*cit)->to; if (!vertices_[cv].visited) { vertices_[cv].visited = true; - if (find(excludes.begin(), excludes.end(), cv) == excludes.end()) + if (excludes.find(cv) == excludes.end()) Q.push(cv); } } @@ -121,16 +119,6 @@ Graph::EdgePath const } -Graph::EdgePath const - Graph::getReachable(int from, bool only_viewable, - bool clear_visited, int exclude) -{ - vector excludes; - excludes.push_back(exclude); - return getReachable(from, only_viewable, clear_visited, excludes); -} - - bool Graph::isReachable(int from, int to) { if (from == to)