Horizon
Loading...
Searching...
No Matches
junction.hpp
1#pragma once
2#include "util/uuid.hpp"
3#include "common.hpp"
4#include "nlohmann/json_fwd.hpp"
5#include "util/layer_range.hpp"
6#include <vector>
7
8namespace horizon {
9using json = nlohmann::json;
10
20class Junction {
21public:
22 Junction(const UUID &uu, const json &j);
23 Junction(const UUID &uu);
24
25 UUID uuid;
26 Coord<int64_t> position;
27
28 UUID get_uuid() const;
29
30 // not stored
31 LayerRange layer = 10000;
32 std::vector<UUID> connected_lines;
33 std::vector<UUID> connected_arcs;
34 virtual bool only_lines_arcs_connected() const;
35 void clear();
36
37 json serialize() const;
38 virtual ~Junction()
39 {
40 }
41};
42} // namespace horizon
Your typical coordinate class.
Definition common.hpp:88
A Junction is a point in 2D-Space.
Definition junction.hpp:20
Definition layer_range.hpp:11
This class encapsulates a UUID and allows it to be uses as a value type.
Definition uuid.hpp:16
a class to store JSON values
Definition json.hpp:177
basic_json<> json
default JSON class
Definition json_fwd.hpp:62