* 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.
*/
#include "support/debug.h"
#include "support/lassert.h"
-#include <algorithm>
-
using namespace std;
namespace lyx {
{
if (s < 0)
return false;
-
+
if (!Q.empty())
Q = queue<int>();
Graph::EdgePath const
- Graph::getReachableTo(int target, bool clear_visited)
+ Graph::getReachableTo(int to, bool clear_visited)
{
EdgePath result;
queue<int> 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.
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<Arrow *>::iterator it = vertices_[current].in_arrows.begin();
Graph::EdgePath const
Graph::getReachable(int from, bool only_viewable,
- bool clear_visited, vector<int> excludes)
+ bool clear_visited, set<int> excludes)
{
EdgePath result;
queue<int> Q;
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);
}
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);
}
}