class Layout;
class Route;
+class TrackIter;
class Train;
class Block
const std::set<Track *> &get_tracks() const { return tracks; }
bool has_track(Track &) const;
const std::vector<Endpoint> &get_endpoints() const { return endpoints; }
+ const Endpoint &get_endpoint(unsigned) const;
int get_endpoint_by_link(Block &) const;
- unsigned traverse(unsigned, float * =0) const;
- unsigned traverse(unsigned, const Route *, float * =0) const;
+ float get_path_length(unsigned, const Route * = 0) const;
void check_link(Block &);
void break_link(Block &);
Block *get_link(unsigned) const;
Train *get_train() const { return train; }
void print_debug();
private:
- void find_paths(Track &, unsigned, unsigned, std::set<Track *> &);
+ void find_paths(TrackIter, unsigned);
void determine_id();
};