- const vector<VehicleType::Bogie> &bogies = type.get_bogies();
- if(bogies.size()>=2)
- {
- TrackPosition front = track_pos;
- front.advance(bogies.front().position);
- TrackPosition back = track_pos;
- back.advance(bogies.back().position);
- float bogie_spacing = bogies.front().position-bogies.back().position;
- adjust_for_distance(front, back, bogie_spacing);
-
- const vector<VehicleType::Axle> &front_axles = bogies.front().axles;
- float wheelbase = front_axles.front().position-front_axles.back().position;
- Point front_point = get_point(front, wheelbase, -front_axles.back().position/wheelbase).pos;
-
- const vector<VehicleType::Axle> &back_axles = bogies.back().axles;
- wheelbase = back_axles.front().position-back_axles.back().position;
- Point back_point = get_point(back, wheelbase, -back_axles.back().position/wheelbase).pos;
-
- tp = get_point(front_point, back_point, -bogies.back().position/bogie_spacing);
- }
- else
- tp = track_pos.get_point();
+ TrackPosition front = track_pos;
+ front.advance(bogies.front().position);
+ TrackPosition back = track_pos;
+ back.advance(bogies.back().position);
+ float bogie_spacing = bogies.front().position-bogies.back().position;
+ adjust_for_distance(front, back, bogie_spacing);
+
+ const vector<VehicleType::Axle> &front_axles = bogies.front().axles;
+ float wheelbase = front_axles.front().position-front_axles.back().position;
+ TrackPoint front_point = get_point(front, wheelbase, -front_axles.back().position/wheelbase);
+
+ const vector<VehicleType::Axle> &back_axles = bogies.back().axles;
+ wheelbase = back_axles.front().position-back_axles.back().position;
+ TrackPoint back_point = get_point(back, wheelbase, -back_axles.back().position/wheelbase);
+
+ tp = get_point(front_point.pos, back_point.pos, -bogies.back().position/bogie_spacing);
+
+ bogie_dirs.front() = front_point.dir-tp.dir;
+ bogie_dirs.back() = back_point.dir-tp.dir;