X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2F3d%2Fvehicletype.h;h=428a372f58ca313a729df93c21e01ba60f0ef95e;hb=abed4a255060d5a233ec0ac2dd60af9132e29201;hp=f734e50d9468d49de118b7505ba404028a63f679;hpb=e5cd9e4fbc577036a0385c985b6b65df8218d0a2;p=r2c2.git diff --git a/source/3d/vehicletype.h b/source/3d/vehicletype.h index f734e50..428a372 100644 --- a/source/3d/vehicletype.h +++ b/source/3d/vehicletype.h @@ -1,31 +1,39 @@ -/* $Id$ - -This file is part of the MSP Märklin suite -Copyright © 2010 Mikkosoft Productions, Mikko Rasa -Distributed under the GPL -*/ - -#ifndef LIBMARKLIN3D_VEHICLETYPE_H_ -#define LIBMARKLIN3D_VEHICLETYPE_H_ +#ifndef R2C2_3D_VEHICLETYPE_H_ +#define R2C2_3D_VEHICLETYPE_H_ #include -#include "libmarklin/vehicletype.h" +#include +#include "libr2c2/vehicletype.h" +#include "objecttype.h" -namespace Marklin { +namespace R2C2 { -class Catalogue3D; - -class VehicleType3D +class VehicleType3D: public ObjectType3D { private: - Msp::GL::Mesh body_mesh; + const VehicleType &type; + std::map objects; + Msp::GL::Object *body_object; + std::vector bogie_objects; + std::vector axle_objects; + std::vector rod_objects; public: VehicleType3D(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_rod_object(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 +} // namespace R2C2 #endif