- for(TrackMap::iterator i=tracks.begin(); i!=tracks.end(); ++i)
- delete i->second;
- for(VehicleMap::iterator i=vehicles.begin(); i!=vehicles.end(); ++i)
- delete i->second;
-}
-
-float Catalogue::get_rail_elevation() const
-{
- return ballast_profile.get_height()+rail_profile.get_height();
-}
-
-void Catalogue::add_track(TrackType &track)
-{
- insert_unique(tracks, track.get_article_number(), &track);
- signal_track_added.emit(track);
-}
-
-const TrackType &Catalogue::get_track(const ArticleNumber &art_nr) const
-{
- return *get_item(tracks, art_nr);
-}
-
-void Catalogue::add_vehicle(VehicleType &veh)
-{
- insert_unique(vehicles, veh.get_article_number(), &veh);
- signal_vehicle_added.emit(veh);
-}
-
-const VehicleType &Catalogue::get_vehicle(const ArticleNumber &art_nr) const
-{
- return *get_item(vehicles, art_nr);
-}
-
-void Catalogue::add_signal(SignalType &sig)
-{
- insert_unique(signals, sig.get_article_number(), &sig);
- signal_signal_added.emit(sig);
-}
-
-const SignalType &Catalogue::get_signal(const ArticleNumber &art_nr) const
-{
- return *get_item(signals, art_nr);
+ add_type<TrackType>().keyword("track");
+ add_type<SignalType>().keyword("signal");
+ add_type<VehicleType>().keyword("vehicle");
+ add_type<TerrainType>().keyword("terrain");
+ add_type<TrackAppearance>().keyword("track_appearance");