X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2F3d%2Fvehicletype.h;h=f38f02d92ea43dab2651d8019884dccf1438e851;hb=f4ffb776aa0d4f51c058d27fb0f51449c05302c3;hp=f734e50d9468d49de118b7505ba404028a63f679;hpb=e5cd9e4fbc577036a0385c985b6b65df8218d0a2;p=r2c2.git diff --git a/source/3d/vehicletype.h b/source/3d/vehicletype.h index f734e50..f38f02d 100644 --- a/source/3d/vehicletype.h +++ b/source/3d/vehicletype.h @@ -9,6 +9,7 @@ Distributed under the GPL #define LIBMARKLIN3D_VEHICLETYPE_H_ #include +#include #include "libmarklin/vehicletype.h" namespace Marklin { @@ -18,12 +19,27 @@ class Catalogue3D; class VehicleType3D { private: - Msp::GL::Mesh body_mesh; + const Catalogue3D &catalogue; + const VehicleType &type; + std::map objects; + Msp::GL::Object *body_object; + std::vector bogie_objects; + std::vector > axle_objects; public: - VehicleType3D(Catalogue3D &, const VehicleType &); + VehicleType3D(const Catalogue3D &, const VehicleType &); + ~VehicleType3D(); - const Msp::GL::Mesh &get_body_mesh() const { return body_mesh; } + const Msp::GL::Object *get_body_object() const { return body_object; } + const Msp::GL::Object *get_axle_object(unsigned) const; + const Msp::GL::Object *get_bogie_object(unsigned) const; + const Msp::GL::Object *get_bogie_axle_object(unsigned, unsigned) const; +private: + Msp::GL::Object *get_object(const std::string &); + Msp::GL::Technique *create_technique(const std::map &); + Msp::GL::Mesh *create_open_wagon(const std::map &); + Msp::GL::Mesh *create_covered_wagon(const std::map &); + Msp::GL::Mesh *create_flat_wagon(const std::map &); }; } // namespace Marklin