- TrackPosition front = track_pos;
- front.advance(bogies.front().type->position);
- TrackPosition back = track_pos;
- back.advance(bogies.back().type->position);
- float bogie_spacing = bogies.front().type->position-bogies.back().type->position;
- adjust_for_distance(front, back, bogie_spacing);
-
- const vector<Axle> &front_axles = bogies.front().axles;
- float wheelbase = front_axles.front().type->position-front_axles.back().type->position;
- TrackPoint front_point = get_point(front, wheelbase, -front_axles.back().type->position/wheelbase);
-
- const vector<Axle> &back_axles = bogies.back().axles;
- wheelbase = back_axles.front().type->position-back_axles.back().type->position;
- TrackPoint back_point = get_point(back, wheelbase, -back_axles.back().type->position/wheelbase);
+ OrientedPoint front_point = placement.get_bogie_point(bogies.front().type->index);
+ bogies.front().direction = front_point.rotation-p.rotation;