- const vector<VehicleType::Rod> &trods = type.get_rods();
- for(unsigned i=0; i<trods.size(); ++i)
- {
- const VehicleType::Rod &rod = trods[i];
- if(rod.pivot==VehicleType::Rod::BODY)
- rods[i].position = rod.pivot_point;
- else if(rod.pivot==VehicleType::Rod::AXLE)
- {
- const VehicleType::Axle &axle = type.get_axles()[rod.pivot_index];
- float angle = axle_angles[0][rod.pivot_index];
- float c = cos(angle);
- float s = sin(angle);
- const Point &pp = rod.pivot_point;
- rods[i].position = Point(axle.position+pp.x*c+pp.z*s, pp.y, axle.wheel_dia/2+pp.z*c-pp.x*s);
- }
- else if(rod.pivot==VehicleType::Rod::ROD)
- {
- float angle = rods[rod.pivot_index].angle;
- float c = cos(angle);
- float s = sin(angle);
- const Point &pos = rods[rod.pivot_index].position;
- const Point &off = rod.pivot_point;
- rods[i].position = Point(pos.x+off.x*c-off.z*s, pos.y+off.y, pos.z+off.z*c+off.x*s);
- }