1 #ifndef LIBR2C2_CATALOGUE_H_
2 #define LIBR2C2_CATALOGUE_H_
5 #include <msp/datafile/objectloader.h>
6 #include "articlenumber.h"
17 class Loader: public Msp::DataFile::ObjectLoader<Catalogue>
22 void ballast_profile();
26 void scale(float, float);
27 void signal(ArticleNumber);
28 void terrain(ArticleNumber);
29 void track(ArticleNumber);
30 void vehicle(ArticleNumber);
33 typedef std::map<ArticleNumber, ObjectType *> ObjectMap;
35 sigc::signal<void, const ObjectType &> signal_object_added;
41 Profile ballast_profile;
42 std::string track_technique;
50 float get_scale() const { return scale; }
51 float get_gauge() const { return gauge; }
52 float get_rail_elevation() const;
53 const Profile &get_rail_profile() const { return rail_profile; }
54 const Profile &get_ballast_profile() const { return ballast_profile; }
55 const std::string &get_track_technique() const { return track_technique; }
57 void add(ObjectType &);
58 const ObjectType &get(const ArticleNumber &) const;
59 const ObjectMap &get_all() const { return objects; }
62 const T &get(const ArticleNumber &an) const
63 { return dynamic_cast<const T &>(get(an)); }
65 Layout &get_layout() { return layout; }