unsigned get_sensor_id() const { return sensor_id; }
unsigned get_turnout_id() const { return turnout_id; }
const std::set<Track *> &get_tracks() const { return tracks; }
unsigned get_sensor_id() const { return sensor_id; }
unsigned get_turnout_id() const { return turnout_id; }
const std::set<Track *> &get_tracks() const { return tracks; }
int get_endpoint_by_link(const Block &) const;
unsigned traverse(unsigned, float * =0) const;
void check_link(Block &);
int get_endpoint_by_link(const Block &) const;
unsigned traverse(unsigned, float * =0) const;
void check_link(Block &);
void print_debug();
private:
void find_paths(Track &, unsigned, unsigned, std::set<Track *> &);
void print_debug();
private:
void find_paths(Track &, unsigned, unsigned, std::set<Track *> &);