+ std::set<Route *> routes;
+
+public:
+ Layout(const Catalogue &);
+ ~Layout();
+
+ const Catalogue &get_catalogue() const { return catalogue; }
+ const std::string &get_base() const { return base; }
+ const std::set<Track *> &get_tracks() const { return tracks; }
+ void add_track(Track &);
+ void remove_track(Track &);
+ void add_route(Route &);
+ const std::set<Route *> &get_routes() const { return routes; }
+ void remove_route(Route &);
+ void save(const std::string &);
+private:
+ void check_links();
+ void check_routes();