X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2F3d%2Faxle.cpp;h=4344eeacf76a480b52a63fc597c7d4b992318291;hb=d84f187ca34a6ab2f8c37d85fa13d5c113714344;hp=04c7668d8a97da1dbbb459411ce32b7ad0e96d9f;hpb=b0d402f30489b0618d21281781e1b8f683ed567b;p=r2c2.git diff --git a/source/3d/axle.cpp b/source/3d/axle.cpp index 04c7668..4344eea 100644 --- a/source/3d/axle.cpp +++ b/source/3d/axle.cpp @@ -7,16 +7,13 @@ using namespace Msp; namespace R2C2 { Axle3D::Axle3D(const Vehicle3D &v, unsigned a): - VehiclePart3D(v, *v.get_type().get_fixed_axle_object(a)), + VehiclePart3D(v, *v.get_type().get_axle_object(a)), bogie(0), - axle(vehicle.get_vehicle().get_fixed_axle(a)) -{ } - -Axle3D::Axle3D(const Vehicle3D &v, unsigned b, unsigned a): - VehiclePart3D(v, *v.get_type().get_bogie_axle_object(b, a)), - bogie(&vehicle.get_vehicle().get_bogie(b)), - axle(bogie->axles[a]) -{ } + axle(vehicle.get_vehicle().get_axle(a)) +{ + if(axle.type->bogie) + bogie = &vehicle.get_vehicle().get_bogie(axle.type->bogie->index); +} void Axle3D::update_matrix() { @@ -28,7 +25,7 @@ void Axle3D::update_matrix() matrix.rotate(bogie->direction, 0, 0, 1); } - matrix.translate(axle.type->position, 0, axle.type->wheel_dia/2); + matrix.translate(axle.type->local_position, 0, axle.type->wheel_dia/2); matrix.rotate(axle.angle, 0, 1, 0); }