X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=inline;f=source%2Flibmarklin%2Fvehicletype.h;h=7844825ea17111188e6c560475c9afffcf1d5e0c;hb=9b05c573a38639827697fe393d55b7c76f5bde45;hp=01e678b05ee17c077dabb0895a6f3bd03bbf13aa;hpb=6968273080fa2a1cbcfc506610d5f249299611e9;p=r2c2.git diff --git a/source/libmarklin/vehicletype.h b/source/libmarklin/vehicletype.h index 01e678b..7844825 100644 --- a/source/libmarklin/vehicletype.h +++ b/source/libmarklin/vehicletype.h @@ -9,6 +9,7 @@ Distributed under the GPL #define LIBMARKLIN_VEHICLETYPE_H_ #include +#include "articlenumber.h" namespace Marklin { @@ -22,6 +23,7 @@ public: private: void axle(); void bogie(); + void function(unsigned, const std::string &); void height(float); void length(float); void width(float); @@ -41,6 +43,9 @@ public: float position; float wheel_dia; bool powered; + std::string object; + + Axle(); }; struct Bogie @@ -56,28 +61,40 @@ public: float position; std::vector axles; + std::string object; + bool rotate_object; + + Bogie(); }; private: - unsigned art_nr; + ArticleNumber art_nr; std::string name; + bool locomotive; + std::map functions; float length; float width; float height; std::vector axles; std::vector bogies; + std::string object; public: - VehicleType(unsigned); - virtual ~VehicleType() { } // XXX temporary + VehicleType(const ArticleNumber &); - unsigned get_article_number() const { return art_nr; } + const ArticleNumber &get_article_number() const { return art_nr; } const std::string &get_name() const { return name; } + bool is_locomotive() const { return locomotive; } + unsigned get_max_function() const; + const std::map &get_functions() const { return functions; } float get_length() const { return length; } float get_width() const { return width; } float get_height() const { return height; } const std::vector &get_axles() const { return axles; } const std::vector &get_bogies() const { return bogies; } + float get_front_axle_offset() const; + float get_back_axle_offset() const; + const std::string &get_object() const { return object; } }; } // namespace Marklin