3 This file is part of R²C²
4 Copyright © 2010-2011 Mikkosoft Productions, Mikko Rasa
5 Distributed under the GPL
8 #ifndef LIBR2C23D_VEHICLETYPE_H_
9 #define LIBR2C23D_VEHICLETYPE_H_
11 #include <msp/gl/mesh.h>
12 #include <msp/gl/object.h>
13 #include "libr2c2/vehicletype.h"
22 Catalogue3D &catalogue;
23 const VehicleType &type;
24 std::map<std::string, Msp::GL::Object *> objects;
25 Msp::GL::Object *body_object;
26 std::vector<Msp::GL::Object *> bogie_objects;
27 std::vector<std::vector<Msp::GL::Object *> > axle_objects;
28 std::vector<Msp::GL::Object *> rod_objects;
31 VehicleType3D(Catalogue3D &, const VehicleType &);
34 const Msp::GL::Object *get_body_object() const { return body_object; }
35 const Msp::GL::Object *get_fixed_axle_object(unsigned) const;
36 const Msp::GL::Object *get_bogie_object(unsigned) const;
37 const Msp::GL::Object *get_bogie_axle_object(unsigned, unsigned) const;
38 const Msp::GL::Object *get_rod_object(unsigned) const;
40 Msp::GL::Object *get_object(const std::string &);
41 Msp::GL::Technique *create_technique(const std::map<std::string, std::string> &);
42 Msp::GL::Mesh *create_open_wagon(const std::map<std::string, std::string> &);
43 Msp::GL::Mesh *create_covered_wagon(const std::map<std::string, std::string> &);
44 Msp::GL::Mesh *create_flat_wagon(const std::map<std::string, std::string> &);