X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FAIModel%2FAIEscort.cxx;h=680b5113f992920e112b3c3ea1dbe00edfaab692;hb=6b1391e404b11e0d9a5bfcd11c1307e2e9531616;hp=873ed7174d183f366141d329eb69acd84cf75173;hpb=141186a358d07141eac151c287761eed6d81b68c;p=flightgear.git diff --git a/src/AIModel/AIEscort.cxx b/src/AIModel/AIEscort.cxx index 873ed7174..680b5113f 100644 --- a/src/AIModel/AIEscort.cxx +++ b/src/AIModel/AIEscort.cxx @@ -35,7 +35,6 @@ #include
#include -#include #include "AIEscort.hxx" @@ -230,7 +229,6 @@ bool FGAIEscort::getGroundElev(SGGeod inpos) { } - void FGAIEscort::setParent() { double lat = _selected_ac->getDoubleValue("position/latitude-deg"); @@ -269,6 +267,22 @@ void FGAIEscort::setParent() } +void FGAIEscort::calcRangeBearing(double lat, double lon, double lat2, double lon2, + double &range, double &bearing) const +{ + // calculate the bearing and range of the second pos from the first + double az2, distance; + geo_inverse_wgs_84(lat, lon, lat2, lon2, &bearing, &az2, &distance); + range = distance * SG_METER_TO_NM; +} + +double FGAIEscort::calcTrueBearingDeg(double bearing, double heading) +{ + double angle = bearing + heading; + SG_NORMALIZE_RANGE(angle, 0.0, 360.0); + return angle; +} + SGVec3d FGAIEscort::getCartHitchPosAt(const SGVec3d& _off) const { double hdg = _selected_ac->getDoubleValue("orientation/true-heading-deg"); double pitch = _selected_ac->getDoubleValue("orientation/pitch-deg"); @@ -300,7 +314,7 @@ void FGAIEscort::setStationSpeed(){ // these are the AI rules for the manoeuvring of escorts if (_MPControl && _tgtrange > 4 * _stn_limit){ - SG_LOG(SG_GENERAL, SG_ALERT, "AIEscort: " << _name + SG_LOG(SG_AI, SG_ALERT, "AIEscort: " << _name << " re-aligning to MP pos"); pos = _tgtpos; speed = 0;