1 #ifndef MARKLIN_3D_BLOCK_H_
2 #define MARKLIN_3D_BLOCK_H_
23 Endpoint(Track *, unsigned);
27 TrafficManager &trfc_mgr;
30 std::set<Track *> tracks;
31 std::vector<Endpoint> endpoints;
35 Block(TrafficManager &, Track &);
37 unsigned get_sensor_id() const { return sensor_id; }
38 const std::set<Track *> &get_tracks() const { return tracks; }
39 const std::vector<Endpoint> &get_endpoints() const { return endpoints; }
40 int get_endpoint_by_link(const Block &) const;
41 int traverse(unsigned) const;
42 void check_link(Block &);
43 Block *get_link(unsigned) const;
44 bool reserve(const Train *);
45 const Train *get_train() const { return train; }
48 void find_routes(Track &, unsigned, unsigned, std::set<Track *> &);
50 static unsigned next_id;
53 } // namespace Marklin