1 #ifndef MARKLIN_3D_BLOCK_H_
2 #define MARKLIN_3D_BLOCK_H_
19 const Track::Endpoint *track_ep;
23 Endpoint(Track *, const Track::Endpoint *);
25 typedef std::list<Endpoint> EndpointSeq;
27 Block(TrafficManager &, Track *);
28 unsigned get_sensor_id() const { return sensor_id; }
29 const TrackSet &get_tracks() const { return tracks; }
30 const EndpointSeq &get_endpoints() const { return endpoints; }
31 const Endpoint *get_endpoint_by_link(const Block *) const;
32 const Endpoint *traverse(const Endpoint *) const;
33 void check_link(Block &);
34 bool reserve(const Train *);
37 TrafficManager &trfc_mgr;
41 EndpointSeq endpoints;
44 void find_routes(Track *, const Track::Endpoint *, unsigned, TrackSet &);
46 static unsigned next_id;
48 typedef std::list<Block *> BlockSeq;
50 } // namespace Marklin