btllib

graph.hpp
1 // #ifndef BTLLIB_GRAPH_HPP
2 // #define BTLLIB_GRAPH_HPP
3
4 // #include <boost/graph/adjacency_list.hpp>
5 // #include <boost/graph/graphviz.hpp>
6
7 // #include <iostream>
8 // #include <sstream>
9 // #include <string>
10
11 // namespace btllib {
12
13 // class Graph;
14
15 // class Vertex
16 // {
17
18 // public:
19 // private:
20 // friend class Graph;
21
22 // Vertex(long id)
23 // : id(id)
24 // {}
25
26 // long id;
27 // };
28
29 // class Edge
30 // {
31
32 // public:
33 // private:
34 // friend class Graph;
35
36 // Edge(Vertex u, Vertex v)
37 // : u(u)
38 // , v(v)
39 // {}
40
41 // Vertex u, v;
42 // };
43
44 // class Graph
45 // {
46
47 // public:
48 // Graph() {}
49
50 // Vertex add_vertex();
51 // void remove_vertex(Vertex v);
52
53 // Edge add_edge(Vertex u, Vertex v);
54 // void remove_edge(Edge e);
55
56 // std::string to_string();
57
58 // private:
59 // boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS>
60 // graph;
61 // };
62
63 // inline Vertex
64 // Graph::add_vertex()
65 // {
66 // return boost::add_vertex(graph);
67 // }
68
69 // inline void
70 // Graph::remove_vertex(Vertex v)
71 // {}
72
73 // inline Edge
74 // Graph::add_edge(Vertex u, Vertex v)
75 // {
76 // boost::add_edge(u.id, v.id, graph);
77 // return Edge(u, v);
78 // }
79
80 // inline void
81 // Graph::remove_edge(Edge e)
82 // {
83 // boost::remove_edge(e.u.id, e.v.id, graph);
84 // }
85
86 // inline std::string
87 // Graph::to_string()
88 // {
89 // std::stringstream ss;
90 // boost::write_graphviz(ss, graph);
91 // return ss.str();
92 // }
93
94 // } // namespace btllib
95
96 // #endif