Horizon
Loading...
Searching...
No Matches
src
export_odb
track_graph.hpp
1
#pragma once
2
#include <memory>
3
#include "board/track.hpp"
4
5
namespace
horizon {
6
class
TrackGraph
{
7
public
:
8
class
Edge
;
9
10
class
Node
{
11
public
:
12
bool
keep =
false
;
13
std::list<Edge *> edges;
14
};
15
16
class
Edge
{
17
public
:
18
Edge
(
Node
&f,
Node
&t,
const
Track
&tr) : from(&f), to(&t), tracks({tr.uuid})
19
{
20
}
21
22
Node
*from =
nullptr
;
23
Node
*to =
nullptr
;
24
25
Node
*get_other_node(
Node
*n)
const
;
26
27
std::set<UUID> tracks;
28
};
29
30
void
merge_edges();
31
void
dump(
const
class
Board
&brd,
const
std::string &filename)
const
;
32
33
Node
&get_or_create_node(
const
Track::Connection
&conn);
34
void
add_track(
const
Track
&track);
35
std::map<std::pair<UUID, UUID>,
Node
> nodes;
36
std::list<Edge> edges;
37
};
38
}
// namespace horizon
horizon::Board
Definition
board.hpp:47
horizon::TrackGraph::Edge
Definition
track_graph.hpp:16
horizon::TrackGraph::Node
Definition
track_graph.hpp:10
horizon::TrackGraph
Definition
track_graph.hpp:6
horizon::Track::Connection
Definition
track.hpp:32
horizon::Track
Definition
track.hpp:14
Generated by
1.9.8