Fishnet 2.0.1
Framework for Graph-Based Analysis of GIS Vector Data
Loading...
Searching...
No Matches
BFSAlgorithm.hpp File Reference
#include <vector>
#include <queue>
#include <memory>
#include <fishnet/BlockingQueue.hpp>
#include <fishnet/GraphModel.hpp>
#include <fishnet/FunctionalConcepts.hpp>
#include "ConnectedComponents.hpp"
#include "SearchPath.hpp"
#include "Neighborhood.hpp"
Include dependency graph for BFSAlgorithm.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  fishnet
 
namespace  fishnet::graph
 
namespace  fishnet::graph::BFS
 

Functions

template<Graph G>
auto fishnet::graph::BFS::connectedComponents (const G &graph, fishnet::util::BiPredicate< typename G::node_type > auto const &inRelation)
 Compute connected components of the graph.
 
template<Graph G>
auto fishnet::graph::BFS::connectedComponents (const G &graph)
 Compute connected components of the graph\ Uses DefaultBiPredicate which is always true, when two nodes share an edge.
 
template<Graph G>
auto fishnet::graph::BFS::connectedComponents (const G &graph, std::shared_ptr< fishnet::util::BlockingQueue< std::pair< int, std::vector< typename G::node_type > > > > queue, fishnet::util::BiPredicate< typename G::node_type > auto const &inRelation)
 Compute connected components of the graph concurrently.
 
template<Graph G>
auto fishnet::graph::BFS::connectedComponents (const G &graph, std::shared_ptr< fishnet::util::BlockingQueue< std::pair< int, std::vector< typename G::node_type > > > > queue)
 Compute connected components of the graph concurrently.
 
template<Graph G>
auto fishnet::graph::BFS::findPath (const G &graph, const typename G::node_type &start, const typename G::node_type &goal)
 Find breadth-first search between between start and goal node.
 
template<Graph G>
util::input_range_of< typename G::edge_type > auto fishnet::graph::BFS::getPath (const G &graph, const typename G::node_type &start, const typename G::node_type &goal)
 Find breadth-first search between between start and goal node.
 
template<Graph G, Graph O>
requires std::same_as<typename G::node_type, typename O::node_type>
G fishnet::graph::BFS::neighborhood (const G &graph, const typename G::node_type &node, size_t order, O &&outputGraph)
 
template<Graph G>
requires std::is_default_constructible_v<G>
G fishnet::graph::BFS::neighborhood (const G &graph, const typename G::node_type &node, size_t order)
 
template<Graph G>
requires (!std::is_default_constructible_v<G> && std::is_copy_constructible_v<G>)
G fishnet::graph::BFS::neighborhood (const G &graph, const typename G::node_type &node, size_t order)
 
template<Graph G, typename P , typename R = std::invoke_result_t<std::decay_t<P>>>
requires std::same_as<typename G::node_type, typename R::node_type>
fishnet::util::forward_range_of< R > auto fishnet::graph::BFS::subgraphs (const G &graph, P &&emptyGraphProducer)
 Find all subgraphs in the given graph.
 
template<Graph G>
requires std::is_default_constructible_v<G>
fishnet::util::forward_range_of< G > auto fishnet::graph::BFS::subgraphs (const G &graph)
 Find all subgraphs in the given graph.