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 track(ArticleNumber);
29 void vehicle(ArticleNumber);
32 typedef std::map<ArticleNumber, ObjectType *> ObjectMap;
34 sigc::signal<void, const ObjectType &> signal_object_added;
40 Profile ballast_profile;
41 std::string track_technique;
49 float get_scale() const { return scale; }
50 float get_gauge() const { return gauge; }
51 float get_rail_elevation() const;
52 const Profile &get_rail_profile() const { return rail_profile; }
53 const Profile &get_ballast_profile() const { return ballast_profile; }
54 const std::string &get_track_technique() const { return track_technique; }
56 void add(ObjectType &);
57 const ObjectType &get(const ArticleNumber &) const;
58 const ObjectMap &get_all() const { return objects; }
61 const T &get(const ArticleNumber &an) const
62 { return dynamic_cast<const T &>(get(an)); }
64 Layout &get_layout() { return layout; }