- //_tow_angle = ta * _tow_angle_gain;
- _tow_angle = pow(ta,2) * sign(ta);
- SG_CLAMP_RANGE(_tow_angle, -_tow_angle_limit, _tow_angle_limit);
-}
-
-bool FGAIGroundVehicle::getGroundElev(SGGeod inpos) {
-
- double height_m ;
-
- if (globals->get_scenery()->get_elevation_m(SGGeod::fromGeodM(inpos, 10000), height_m, &_material,0)){
- _ht_agl_ft = inpos.getElevationFt() - height_m * SG_METER_TO_FEET;
-
- if (_material) {
- const vector<string>& names = _material->get_names();
-
- _solid = _material->get_solid();
-
- if (!names.empty())
- props->setStringValue("material/name", names[0].c_str());
- else
- props->setStringValue("material/name", "");
-
- //cout << "material " << names[0].c_str()
- // << " _elevation_m " << _elevation_m
- // << " solid " << _solid
- // << " load " << _load_resistance
- // << " frictionFactor " << _frictionFactor
- // << endl;
-
- }
-
- return true;
- } else {
- return false;
- }
-
+ ta *= _tow_angle_gain;
+ double factor = -0.0045 * speed + 1;
+ double limit = _tow_angle_limit * factor;
+// cout << "speed "<< speed << " _factor " << _factor<<" " <<_tow_angle_limit<< endl;
+ _tow_angle = pow(ta,2) * sign(ta) * factor;
+ SG_CLAMP_RANGE(_tow_angle, -limit, limit);