1 #ifndef R2C2_3D_VEHICLETYPE_H_
2 #define R2C2_3D_VEHICLETYPE_H_
4 #include <msp/gl/mesh.h>
5 #include <msp/gl/object.h>
6 #include "libr2c2/vehicletype.h"
7 #include "objecttype.h"
11 class VehicleType3D: public ObjectType3D
14 const VehicleType &type;
15 std::map<std::string, Msp::GL::Object *> objects;
16 Msp::GL::Object *body_object;
17 std::vector<Msp::GL::Object *> bogie_objects;
18 std::vector<Msp::GL::Object *> axle_objects;
19 std::vector<Msp::GL::Object *> rod_objects;
22 VehicleType3D(Catalogue3D &, const VehicleType &);
25 const Msp::GL::Object *get_body_object() const { return body_object; }
26 const Msp::GL::Object *get_axle_object(unsigned) const;
27 const Msp::GL::Object *get_bogie_object(unsigned) const;
28 const Msp::GL::Object *get_rod_object(unsigned) const;
30 Msp::GL::Object *get_object(const std::string &);
31 Msp::GL::Technique *create_technique(const std::map<std::string, std::string> &);
32 Msp::GL::Mesh *create_open_wagon(const std::map<std::string, std::string> &);
33 Msp::GL::Mesh *create_covered_wagon(const std::map<std::string, std::string> &);
34 Msp::GL::Mesh *create_flat_wagon(const std::map<std::string, std::string> &);