def smethod_13(rnavFlightPhase_0, rnavWaypointType_0, speed_0, speed_1, distance_0, distance_1, double_0, angleUnits_0): if (rnavWaypointType_0 != RnavWaypointType.FlyBy): if (rnavWaypointType_0 != RnavWaypointType.FlyOver): raise UserWarning, "RNAV WayPoint type not SUPPORTED" if rnavFlightPhase_0 == RnavFlightPhase.Enroute: num1 = 15; elif rnavFlightPhase_0 == RnavFlightPhase.SID: num1 = 6; elif rnavFlightPhase_0 == RnavFlightPhase.STAR: raise UserWarning, "RNAV_FLIGHT_PHASE_NOT_SUPPORTED" elif rnavFlightPhase_0 == RnavFlightPhase.IafIf or rnavFlightPhase_0 == RnavFlightPhase.Faf: num1 = 11; elif rnavFlightPhase_0 == RnavFlightPhase.MissedApproach: num1 = 6; else: raise UserWarning, "RNAV_FLIGHT_PHASE_NOT_SUPPORTED" num2 = num1 * (speed_0.MetresPerSecond + speed_1.MetresPerSecond) return Distance(-(distance_0.Metres + num2)) if (angleUnits_0 == AngleUnits.Degrees): double_0 = Unit.ConvertDegToRad(double_0) num3 = min([distance_1.Metres * math.tan(double_0 / 2), distance_1.Metres]) if rnavFlightPhase_0 == RnavFlightPhase.Enroute: num = 10; elif rnavFlightPhase_0 == RnavFlightPhase.SID: num = 3; elif rnavFlightPhase_0 == RnavFlightPhase.STAR: raise UserWarning, "RNAV_FLIGHT_PHASE_NOT_SUPPORTED" elif rnavFlightPhase_0 == RnavFlightPhase.IafIf or rnavFlightPhase_0 == RnavFlightPhase.Faf: num = 6; elif rnavFlightPhase_0 == RnavFlightPhase.MissedApproach: num = 3; else: raise UserWarning, "RNAV_FLIGHT_PHASE_NOT_SUPPORTED" num4 = num * (speed_0.MetresPerSecond + speed_1.MetresPerSecond); return Distance(num3 - distance_0.Metres - num4)
def smethod_12(rnavWaypointType_0, speed_0, speed_1, double_0, double_1, distance_0, distance_1, double_2, angleUnits_0): if (rnavWaypointType_0 != RnavWaypointType.FlyBy): if (rnavWaypointType_0 != RnavWaypointType.FlyOver): raise UserWarning, "RNAV WayPoint type not SUPPORTED" double0 = double_0 + double_1; num = double0 * (speed_0.MetresPerSecond + speed_1.MetresPerSecond) return Distance(-(distance_0.Metres + num)) if (angleUnits_0 == AngleUnits.Degrees): double_2 = Unit.ConvertDegToRad(double_2); num1 = min([distance_1.Metres * math.tan(double_2 / 2), distance_1.Metres]) double01 = double_0 * (speed_0.MetresPerSecond + speed_1.MetresPerSecond) return Distance(num1 - distance_0.Metres - double01)
def smethod_11(rnavWaypointType_0, distance_0, distance_1, double_0, angleUnits_0): if (rnavWaypointType_0 != RnavWaypointType.FlyBy): if (rnavWaypointType_0 != RnavWaypointType.FlyOver): raise UserWarning, "RNAV WayPoint type not SUPPORTED" return distance_0 if (angleUnits_0 == AngleUnits.Degrees): double_0 = Unit.ConvertDegToRad(double_0) return Distance(distance_1.Metres * math.tan(double_0 / 2) + distance_0.Metres)
def smethod_6(rnavCommonWaypoint_0, aircraftSpeedCategory_0): if (aircraftSpeedCategory_0 == AircraftSpeedCategory.Custom): raise Messages.CUSTOM_AC_CATEGORY_NOT_SUPPORTED if rnavCommonWaypoint_0 == RnavCommonWaypoint.MAHWP: return Distance(10, DistanceUnits.NM) elif rnavCommonWaypoint_0 == RnavCommonWaypoint.MAWP: return Distance.NaN() elif rnavCommonWaypoint_0 == RnavCommonWaypoint.FAWP: if (aircraftSpeedCategory_0 == AircraftSpeedCategory.H): return Distance(2, DistanceUnits.NM) return Distance(5, DistanceUnits.NM) elif rnavCommonWaypoint_0 == RnavCommonWaypoint.IWP: if (aircraftSpeedCategory_0 == AircraftSpeedCategory.H): return Distance(3, DistanceUnits.NM) return Distance(5, DistanceUnits.NM) else: if (aircraftSpeedCategory_0 != AircraftSpeedCategory.H): pass else: return Distance(3, DistanceUnits.NM) if (aircraftSpeedCategory_0 != AircraftSpeedCategory.A): if (aircraftSpeedCategory_0 != AircraftSpeedCategory.B): return Distance(6, DistanceUnits.NM) return Distance(5, DistanceUnits.NM)
def smethod_4(rnavCommonWaypoint_0, aircraftSpeedCategory_0): if (aircraftSpeedCategory_0 == AircraftSpeedCategory.Custom): raise UserWarning, Messages.CUSTOM_AC_CATEGORY_NOT_SUPPORTED if rnavCommonWaypoint_0 == RnavCommonWaypoint.MAHWP: return Distance(1, DistanceUnits.NM) elif rnavCommonWaypoint_0 == RnavCommonWaypoint.MAWP: return Distance.NaN() elif rnavCommonWaypoint_0 == RnavCommonWaypoint.FAWP: if (aircraftSpeedCategory_0 == AircraftSpeedCategory.H): return Distance(1, DistanceUnits.NM) return Distance(3, DistanceUnits.NM) elif rnavCommonWaypoint_0 == RnavCommonWaypoint.IWP: return Distance(2, DistanceUnits.NM) else: return Distance(1, DistanceUnits.NM)
def smethod_2(position_0, position_1): return Distance(Unit.ConvertMeterToNM(MathHelper.calcDistance(position_0, position_1)), DistanceUnits.NM)
def __init__(self, point3d_0, double_0, speed_0, speed_1, double_1, turnDirection_0): # public WindSpiral(Point3d point3d_0, double double_0, Speed speed_0, Speed speed_1, double double_1, TurnDirection turnDirection_0) # { # double num; # int num1; self.Start = [ Point3D(0.0, 0.0, 0.0), Point3D(0.0, 0.0, 0.0), Point3D(0.0, 0.0, 0.0) ] self.Middle = [ Point3D(0.0, 0.0, 0.0), Point3D(0.0, 0.0, 0.0), Point3D(0.0, 0.0, 0.0) ] self.Finish = [ Point3D(0.0, 0.0, 0.0), Point3D(0.0, 0.0, 0.0), Point3D(0.0, 0.0, 0.0) ] self.Center = [ Point3D(0.0, 0.0, 0.0), Point3D(0.0, 0.0, 0.0), Point3D(0.0, 0.0, 0.0) ] self.Radius = [ Point3D(0.0, 0.0, 0.0), Point3D(0.0, 0.0, 0.0), Point3D(0.0, 0.0, 0.0) ] self.Direction = turnDirection_0 return1 = [] distance = Distance.smethod_1(speed_0, double_1, return1) # out num) num = return1[0] metres = distance.Metres metresPerSecond = 45 / num * speed_1.MetresPerSecond metresPerSecond1 = 90 / num * speed_1.MetresPerSecond metresPerSecond2 = 135 / num * speed_1.MetresPerSecond num2 = 180 / num * speed_1.MetresPerSecond metresPerSecond3 = 225 / num * speed_1.MetresPerSecond num3 = 270 / num * speed_1.MetresPerSecond if turnDirection_0 != TurnDirection.Left: num1 = 1 else: num1 = -1 point3d = MathHelper.distanceBearingPoint( point3d_0, num1 * 1.5707963267949 + double_0, metres) self.Start[0] = point3d_0 self.Middle[0] = MathHelper.distanceBearingPoint( point3d, -1 * num1 * 0.785398163397448 + double_0, metres + metresPerSecond) self.Finish[0] = MathHelper.distanceBearingPoint( point3d, double_0, metres + metresPerSecond1) self.Start[1] = self.Finish[0] self.Middle[1] = MathHelper.distanceBearingPoint( point3d, num1 * 0.785398163397448 + double_0, metres + metresPerSecond2) self.Finish[1] = MathHelper.distanceBearingPoint( point3d, num1 * 1.5707963267949 + double_0, metres + num2) self.Start[2] = self.Finish[1] self.Middle[2] = MathHelper.distanceBearingPoint( point3d, num1 * 2.35619449019234 + double_0, metres + metresPerSecond3) self.Finish[2] = MathHelper.distanceBearingPoint( point3d, num1 * 3.14159265358979 + double_0, metres + num3) self.Center[0] = MathHelper.smethod_68(self.Start[0], self.Middle[0], self.Finish[0]) self.Center[1] = MathHelper.smethod_68(self.Start[1], self.Middle[1], self.Finish[1]) self.Center[2] = MathHelper.smethod_68(self.Start[2], self.Middle[2], self.Finish[2]) self.Radius[0] = MathHelper.calcDistance(self.Center[0], self.Middle[0]) self.Radius[1] = MathHelper.calcDistance(self.Center[1], self.Middle[1]) self.Radius[2] = MathHelper.calcDistance(self.Center[2], self.Middle[2])