X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Fvehicletype.h;h=841664e375f10f61b079b52a535318c79cd4ea76;hb=0c2a3e6c435fd4cf05cc5275f750d341842aa543;hp=a12d3f4f1ea1b4cc513cad45ecbcbfe64cb9e586;hpb=ce8be590703fdc0709863f0ee9695f40b6adb200;p=r2c2.git diff --git a/source/libr2c2/vehicletype.h b/source/libr2c2/vehicletype.h index a12d3f4..841664e 100644 --- a/source/libr2c2/vehicletype.h +++ b/source/libr2c2/vehicletype.h @@ -1,23 +1,16 @@ -/* $Id$ - -This file is part of R²C² -Copyright © 2010 Mikkosoft Productions, Mikko Rasa -Distributed under the GPL -*/ - #ifndef LIBR2C2_VEHICLETYPE_H_ #define LIBR2C2_VEHICLETYPE_H_ #include -#include "articlenumber.h" #include "geometry.h" +#include "objecttype.h" namespace R2C2 { -class VehicleType +class VehicleType: public ObjectType { public: - class Loader: public Msp::DataFile::ObjectLoader + class Loader: public Msp::DataFile::DerivedObjectLoader { private: std::map rod_tags; @@ -116,11 +109,11 @@ public: Anchor pivot; unsigned pivot_index; unsigned pivot_index2; - Point pivot_point; + Vector pivot_point; Limit limit; int connect_index; - Point connect_point; - Point connect_offset; + Vector connect_point; + Vector connect_offset; std::string object; bool mirror_object; @@ -129,11 +122,12 @@ public: typedef std::vector RodArray; + typedef std::map FunctionMap; + private: - ArticleNumber art_nr; - std::string name; bool locomotive; - std::map functions; + FunctionMap functions; + bool swap_direction; float length; float width; float height; @@ -141,20 +135,20 @@ private: BogieArray bogies; RodArray rods; std::string object; + bool rotate_object; public: VehicleType(const ArticleNumber &); - 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; } + const FunctionMap &get_functions() const { return functions; } + bool get_swap_direction() const { return swap_direction; } float get_length() const { return length; } float get_width() const { return width; } float get_height() const { return height; } - const AxleArray &get_axles() const { return axles; } - const Axle &get_axle(unsigned) const; + const AxleArray &get_fixed_axles() const { return axles; } + const Axle &get_fixed_axle(unsigned) const; const BogieArray &get_bogies() const { return bogies; } const Bogie &get_bogie(unsigned) const; const Axle &get_bogie_axle(unsigned, unsigned) const; @@ -163,6 +157,7 @@ public: float get_front_axle_offset() const; float get_back_axle_offset() const; const std::string &get_object() const { return object; } + bool get_rotate_object() const { return rotate_object; } }; } // namespace R2C2