13#include "directionality.hpp"
15#include <boost/graph/adjacency_list.hpp>
16#include <boost/graph/adjacency_matrix.hpp>
26template <
typename T,
typename... U>
32 template<
typename Graph,
typename Gr
id>
34 std::same_as<T, typename Graph::edge_property> and
35 std::default_initializable<T> and
36 ( ! std::constructible_from<T, typename Graph::vertex_descriptor, typename Graph::vertex_descriptor, Grid> )
37 static inline constexpr void delegate(Graph::vertex_descriptor s, Graph::vertex_descriptor t, Graph&
graph, Grid
const& grid)
39 graph.add_edge(s, t, T{});
42 template<
typename Graph,
typename Gr
id>
43 requires std::same_as<T, typename Graph::edge_property> and
44 std::constructible_from<T, typename Graph::vertex_descriptor, typename Graph::vertex_descriptor, Grid>
45 static inline constexpr void delegate(Graph::vertex_descriptor s, Graph::vertex_descriptor t, Graph&
graph, Grid
const& grid)
47 graph.add_edge(s, t, T(s,t, grid));
55 static inline constexpr void delegate(
auto s,
auto t,
auto&
graph, [[maybe_unused]]
auto const& grid)
76 template<directional Directed,
class VertexProperty,
class EdgeProperty>
77 using rebind = boost::adjacency_list<boost::setS, boost::vecS, Directed, VertexProperty, EdgeProperty>;
83 template<
class Directed,
class VertexProperty,
class EdgeProperty>
84 using rebind = boost::adjacency_matrix<Directed, VertexProperty, EdgeProperty, no_property, std::allocator<bool>>;
97 requires std::convertible_to<
decltype(a.width()),
int>;
98 requires std::convertible_to<
decltype(a.height()),
int>;
102template <
typename T,
class G,
class S>
106 } -> std::same_as<void>;
Concept to represent the bounding policy of a spatial graph.
Definition concepts.hpp:103
Concept to represent the connectedness of a graph.
Definition concepts.hpp:89
Definition concepts.hpp:27
Concept to represent the directionality of edges in a graph.
Definition concepts.hpp:65
Concept to represent a 2D spatial grid.
Definition concepts.hpp:96
Definition cardinal_k_ary_tree.hpp:46
Geospatial data formatting and processing.
Definition geography.hpp:17
boost::no_property no_property
Represents no information carried by vertices or edges of a graph.
Definition concepts.hpp:71
Tag for sparse graph representation.
Definition concepts.hpp:82
Definition concepts.hpp:31
Tag for sparse graph representation.
Definition concepts.hpp:75