X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibmarklin%2Fvehicletype.cpp;h=c206108331e95bf05a7ae6bee035c342180fd51e;hb=59e4c75da550e96ae74162a5ed70e8b1999721d8;hp=dd15b48f964794b2291775f98fae9cb6dadc8d44;hpb=378f04522aa762729c0d5651fb60ad7e4d8ba9f3;p=r2c2.git diff --git a/source/libmarklin/vehicletype.cpp b/source/libmarklin/vehicletype.cpp index dd15b48..c206108 100644 --- a/source/libmarklin/vehicletype.cpp +++ b/source/libmarklin/vehicletype.cpp @@ -14,6 +14,7 @@ namespace Marklin { VehicleType::VehicleType(unsigned n): art_nr(n), + locomotive(false), length(0), width(0), height(0) @@ -26,6 +27,32 @@ unsigned VehicleType::get_max_function() const return (--functions.end())->first; } +float VehicleType::get_front_axle_offset() const +{ + float front = length/2; + if(!axles.empty()) + front = axles.front().position; + if(!bogies.empty()) + { + const Bogie &bogie = bogies.front(); + front = max(front, bogie.position+bogie.axles.front().position); + } + return front; +} + +float VehicleType::get_back_axle_offset() const +{ + float back = -length/2; + if(!axles.empty()) + back = axles.back().position; + if(!bogies.empty()) + { + const Bogie &bogie = bogies.back(); + back = min(back, bogie.position+bogie.axles.back().position); + } + return back; +} + VehicleType::Axle::Axle(): position(0),