- for(vector<Rod>::iterator i=rods.begin(); i!=rods.end(); ++i)
- {
- if(i->type->pivot==VehicleType::Rod::BODY)
- i->position = i->type->pivot_point;
- else if(i->type->pivot==VehicleType::Rod::AXLE)
- {
- const Axle &axle = get_fixed_axle(i->type->pivot_index);
- float c = cos(axle.angle);
- float s = sin(axle.angle);
- const Vector &pp = i->type->pivot_point;
- i->position = Vector(axle.type->position+pp.x*c+pp.z*s, pp.y, axle.type->wheel_dia/2+pp.z*c-pp.x*s);
- }
- else if(i->type->pivot==VehicleType::Rod::ROD)
- {
- const Rod &prod = get_rod(i->type->pivot_index);
- float c = cos(prod.angle);
- float s = sin(prod.angle);
- const Vector &pos = prod.position;
- const Vector &off = i->type->pivot_point;
- i->position = Vector(pos.x+off.x*c-off.z*s, pos.y+off.y, pos.z+off.z*c+off.x*s);
- }