- void set_destination(const Zone &);
- void set_destination(const Block &);
- bool has_destination() const;
- bool is_destination(Track &) const;
+public:
+ void set_destination(const TrackChain &);
+ const TrackChain *get_destination() const { return waypoints.empty() ? 0 : waypoints.back().chain; }
+ void add_waypoint(const TrackChain &, TrackChain::Direction = TrackChain::UNSPECIFIED);
+ unsigned get_n_waypoints() const { return waypoints.size(); }
+ const Waypoint &get_waypoint(unsigned) const;
+ const TrainRouteMetric &get_metric(int = -1) const;