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()
{
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);
}