namespace Marklin {
-VehicleType::VehicleType(unsigned n):
- art_nr(n),
+VehicleType::VehicleType(const ArticleNumber &an):
+ art_nr(an),
+ locomotive(false),
length(0),
width(0),
height(0)
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),
VehicleType::Axle::Loader::Loader(Axle &a):
DataFile::ObjectLoader<Axle>(a)
{
+ add("object", &Axle::object);
add("position", &Loader::position);
add("powered", &Axle::powered);
add("wheel_diameter", &Loader::wheel_diameter);