def method_4(self):
     aSFA = None
     if (self.leg.Type == RnpArLegType.RF):
         if (self.ui.txtAltitude.text() != "" and self.ui.txtWind.text() != ""):
             if (self.leg.Segment == RnpArSegmentType.Final):
                 aSFA = self.group.IAS_FA;
             elif (self.leg.Segment != RnpArSegmentType.Initial):
                 if self.leg.Segment != RnpArSegmentType.Intermediate:
                     aSFA = self.group.IAS_MA
                 else:
                     aSFA = self.group.IAS_I
             else:
                 aSFA = self.group.IAS_IA
                 
             try:
                 altitude = Altitude(float(self.ui.txtAltitude.text()), AltitudeUnits.FT)
             except ValueError:
                 raise UserWarning, "Altitude Value is invalid!"
             speed = Speed.plus(Speed.smethod_0(aSFA, self.group.ISA, altitude) , Speed(float(self.ui.txtWind.text())))
             num = math.pow(speed.Knots, 2)
             value = Distance(float(self.ui.txtRadius.text()), DistanceUnits.M) 
             num1 = Unit.smethod_1(math.atan(num / (68625 * value.NauticalMiles)))
             num2 = 3431 * math.tan(Unit.ConvertDegToRad(num1)) / (3.14159265358979 * speed.Knots)
             self.ui.txtBank.setText(str(round(num1, 2)))
             self.ui.txtR.setText(str(round(num2, 2)))
             return
         self.ui.txtBank.setText("")
         self.ui.txtR.setText("")
    def btnConstruct_Click(self):
        flag = FlightPlanBaseDlg.btnConstruct_Click(self)
        if not flag:
            return
        value = Speed(float(self.parametersPanel.txtIas.text()),SpeedUnits.KTS);
        if (self.parametersPanel.chbDeparture.isChecked()):
            value = value + (value / 10);
        altitude = Altitude(float(self.parametersPanel.txtAltitudeFt.text()), AltitudeUnits.FT);
        value1 = float(self.parametersPanel.txtIsa.text());
        num1 = float (self.parametersPanel.txtBankAngle.text());
        self.speedP = self.parametersPanel.pnlWind.Value;
        self.num2P = Unit.ConvertDegToRad(float(self.parametersPanel.txtTrackRadial.Value));
        self.orientationTypeP = self.parametersPanel.cmbOrientation.currentText();
        speed1 = Speed.smethod_0(value, value1, altitude);
        numList = []
        distance = Distance.smethod_1(speed1, num1, numList);
        self.numP = numList[0]
        self.metresP = distance.Metres;

        self.originP = Point3D.get_Origin();
        self.point3dP = Point3D.get_Origin();
        self.origin1P = Point3D.get_Origin();
        self.polylineP = PolylineArea();
        self.flagP = True;


        define._canvas.setMapTool(self.CaptureCoordTool)
    def __init__(self, parent, parameterList):
        QDialog.__init__(self, parent)
        self.setObjectName("PdtCheckResultDlg")
        self.setWindowTitle("PDT Check")
        self.resize(350, 400)
        self.verticalLayout = QVBoxLayout(self)
        self.verticalLayout.setObjectName("verticalLayout")
        self.tabWidgetPDT = QTabWidget(self)
        self.tabWidgetPDT.setObjectName("tabWidgetPDT")

        if len(parameterList) < 1:
            return
        for parameters in parameterList:
            self.tab = tabControl(self)

            isaValue = parameters[1]
            altitude = parameters[2]
            iasValue = parameters[3]

            speed_1 = Speed.smethod_0(Speed(iasValue, SpeedUnits.KTS),
                                      isaValue, altitude) + Speed(25)
            straitSegment = speed_1.KilometresPerHour * 1000 / 3600 * 9
            pdtResultStr = ""
            K = round(
                171233 *
                math.pow(288 + isaValue - 0.00198 * altitude.Feet, 0.5) /
                (math.pow(288 - 0.00198 * altitude.Feet, 2.628)), 4)
            pdtResultStr = "1. K = \t" + str(K) + "\n"

            V = K * iasValue
            pdtResultStr += "2. V = \t" + str(V) + "kts\n"

            h = altitude.Metres
            pdtResultStr += "3. h = \t" + str(h) + "m\n"

            #             h = altitude.Feet / 1000
            pdtResultStr += "4. w = \t" + "46km/h\n"

            num = 2313.03083707 / (3.14159265358979 *
                                   speed_1.KilometresPerHour)
            if (num > 3):
                num = 3
            r = speed_1.KilometresPerHour / (62.8318530717959 * num) * 1000
            pdtResultStr += "5. r = \t" + str(r / 1000) + "km\n"

            R = 2 * r + straitSegment
            pdtResultStr += "6. R = \t" + str(R / 1000) + "km\n"

            #             resultStr = MathHelper.pdtCheckResultToString(parameters[1], parameters[2], parameters[3], parameters[4])
            self.tab.plainTextEdit.setPlainText(pdtResultStr)
            try:
                self.tabWidgetPDT.addTab(self.tab, parameters[0])
            except:
                self.tabWidgetPDT.addTab(self.tab, "")

#         self.tabWidgetPDT.addTab(self.tab, "A")
        self.verticalLayout.addWidget(self.tabWidgetPDT)
    def putAircraftSpeed(self):
        speedTas = self.parametersPanel.pnlTas.Value

        if self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.H:
            xDist = self.calcDAndXDistance(speedTas, Speed(10), 5)
            self.parametersPanel.pnlDistX.Caption = "X(10kts/5s)"
            self.parametersPanel.pnlDistX.Value = Distance(xDist)
        else:
            xDist = self.calcDAndXDistance(speedTas, Speed(10), 15)
            self.parametersPanel.pnlDistX.Caption = "X(10kts/15s)"
            self.parametersPanel.pnlDistX.Value = Distance(xDist)

        if self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.A:
            self.parametersPanel.pnlIas.Value = Speed(100)
            # self.parametersPanel.pnlIas.Value = Speed(90)
        elif self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.B:
            self.parametersPanel.pnlIas.Value = Speed(130)
            # self.parametersPanel.pnlIas.Value = Speed(120)
        elif self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.C:
            self.parametersPanel.pnlIas.Value = Speed(160)
            # self.parametersPanel.pnlIas.Value = Speed(140)
        elif self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.D:
            self.parametersPanel.pnlIas.Value = Speed(185)
            # self.parametersPanel.pnlIas.Value = Speed(165)
        elif self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.E:
            self.parametersPanel.pnlIas.Value = Speed(230)
            # self.parametersPanel.pnlIas.Value = Speed(210)
        elif self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.Custom:
            # self.parametersPanel.pnlIas.Value = self.customIas
            self.parametersPanel.pnlIas.Value = Speed(185)
        elif self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.H:
            # self.parametersPanel.pnlIas.Value = self.customIas
            self.parametersPanel.pnlIas.Value = Speed(90)
        self.parametersPanel.pnlIas.Enabled = self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.Custom
    def putDistances(self):
        try:
            point3dThr = self.parametersPanel.pnlThrPosition.Point3d
            point3dFaf = self.parametersPanel.pnlFafPosition.Point3d

            point3dMapt = self.parametersPanel.pnlMaPtPosition.Point3d

            speedTas = self.parametersPanel.pnlTas.Value
            inboundTrackRad = Unit.ConvertDegToRad(self.parametersPanel.pnlInboundTrack.Value)
            inboundTrack180Rad = MathHelper.smethod_4(inboundTrackRad + math.pi)




            dDist = Distance(MathHelper.calcDistance(point3dFaf, point3dMapt))
            self.parametersPanel.pnlDistOfFafMapt.Value = dDist

            aDist = self.parametersPanel.pnlDistA.Value
            bDist = self.parametersPanel.pnlDistB.Value

            tasMin = Speed.smethod_0(self.parametersPanel.pnlIas.Value, -10, self.parametersPanel.pnlAerodromeAltitude.Value)
            tasMax = Speed.smethod_0(self.parametersPanel.pnlIas.Value, 15, self.parametersPanel.pnlAerodromeAltitude.Value)

            # calculate Distance from earliest MAPt to nominal MAPt:
            x1 = math.sqrt(math.pow(aDist.NauticalMiles, 2) + math.pow(tasMin.Knots * 10 / float(3600), 2) + math.pow(30 * dDist.NauticalMiles / tasMin.Knots, 2))
            x2 = math.sqrt(math.pow(aDist.NauticalMiles, 2) + math.pow(tasMax.Knots * 10 / float(3600), 2) + math.pow(30 * dDist.NauticalMiles / tasMax.Knots, 2))
            distEarliestMaptToNominalMapt = Distance(max(x1, x2), DistanceUnits.NM)
            self.parametersPanel.pnlDistOfEarliestToNominalMapt.Value = distEarliestMaptToNominalMapt

            #calculate Distance from nominal MAPt to latest MAPt
            x3 = math.sqrt(math.pow(bDist.NauticalMiles, 2) + math.pow(tasMin.Knots * 13 / float(3600), 2) + math.pow(30 * dDist.NauticalMiles / tasMin.Knots, 2))
            x4 = math.sqrt(math.pow(bDist.NauticalMiles, 2) + math.pow(tasMax.Knots * 13 / float(3600), 2) + math.pow(30 * dDist.NauticalMiles / tasMax.Knots, 2))
            distNominalMaptToLatestMapt = Distance(max(x3, x4), DistanceUnits.NM)
            self.parametersPanel.pnlDistOfNominalToLatestMapt.Value = distNominalMaptToLatestMapt

            #calculate Distance from Mapt to SOC
            x5 = x3 + 15 * (tasMin.Knots + 10) / float(3600)
            x6 = x4 + 15 * (tasMax.Knots + 10) / float(3600)
            distMaptSoc = Distance(max(x5, x6), DistanceUnits.NM)
            socMaptDistMeters = distMaptSoc.Metres
            socThrDistMeters = MathHelper.calcDistance(point3dMapt, point3dThr) - socMaptDistMeters



            sockBearing = inboundTrackRad
            self.socPoint3d = MathHelper.distanceBearingPoint(point3dMapt, sockBearing, socMaptDistMeters).smethod_167(self.calcSocAltitude())


            self.parametersPanel.pnlDistOfMaptSoc.Value = Distance(socMaptDistMeters)
            self.parametersPanel.pnlDistOfSocThr.Value = Distance(MathHelper.calcDistance(self.socPoint3d, point3dThr))
            self.parametersPanel.pnlDistOfFafMapt.Value = Distance(MathHelper.calcDistance(point3dFaf, point3dMapt))#MathHelper.calcDistance(point3dThr, self.socPoint3d))
            self.parametersPanel.pnlDistOfMaptThr.Value = Distance(MathHelper.calcDistance(point3dMapt, point3dThr))
        except:
            pass
Beispiel #6
0
 def isaChanged(self):
     try:
         self.parametersPanel.txtTas.setText(
             str(
                 Speed.smethod_0(
                     Speed(float(self.parametersPanel.txtIas.text())),
                     float(self.parametersPanel.txtIsa.text()),
                     Altitude(
                         float(self.parametersPanel.txtAltitude.text()),
                         AltitudeUnits.FT)).Knots))
     except:
         raise ValueError("Value Invalid")
Beispiel #7
0
    def initParametersPan(self):
        ui = Ui_HoldingRace_P()
        self.parametersPanel = ui
        FlightPlanBaseDlg.initParametersPan(self)

        self.parametersPanel.txtTas.setEnabled(False)
        self.parametersPanel.pnlInsPos = PositionPanel(
            self.parametersPanel.gbVorDmePosition)
        #         self.parametersPanel.pnlInsPos.groupBox.setTitle("FAWP")
        self.parametersPanel.pnlInsPos.btnCalculater.hide()
        self.parametersPanel.pnlInsPos.hideframe_Altitude()
        self.parametersPanel.pnlInsPos.setObjectName("pnlInsPos")
        ui.vl_VorDmePosition.addWidget(self.parametersPanel.pnlInsPos)

        self.parametersPanel.pnlWind = WindPanel(
            self.parametersPanel.gbParameters)
        self.parametersPanel.pnlWind.lblIA.setMinimumSize(250, 0)
        self.parametersPanel.vl_gbParameters.insertWidget(
            6, self.parametersPanel.pnlWind)
        self.parametersPanel.pnlWind.setAltitude(
            Altitude(float(self.parametersPanel.txtAltitude.text()),
                     AltitudeUnits.FT))

        self.parametersPanel.cmbAircraftCategory.addItems(
            ["A", "B", "C", "D", "E", "H", "Custom"])
        #         self.parametersPanel.cmbOutboundLimit.addItems(["Time", "Distance From Waypoint"])
        #         self.parametersPanel.cmbConstruction.addItems(["2D", "3D"])
        self.parametersPanel.cmbOrientation.addItems(["Right", "Left"])

        self.parametersPanel.cmbAircraftCategory.setCurrentIndex(3)
        self.parametersPanel.frameAircraftCategory.hide()
        self.parametersPanel.frameMoc.hide()

        #         self.parametersPanel.cmbHoldingFunctionality.currentIndexChanged.connect(self.cmbHoldingFunctionalityCurrentIndexChanged)
        #         self.parametersPanel.cmbOutboundLimit.currentIndexChanged.connect(self.cmbOutboundLimitCurrentIndexChanged)
        #         self.parametersPanel.btnCaptureTrack.clicked.connect(self.captureBearing)
        #         self.parametersPanel.btnCaptureDistance.clicked.connect(self.measureDistance)
        #         self.parametersPanel.btnCaptureLength.clicked.connect(self.measureLength)
        self.parametersPanel.txtAltitude.textChanged.connect(
            self.altitudeChanged)
        #         self.parametersPanel.cmbAircraftCategory.currentIndexChanged.connect(self.changeCategory)
        #         self.parametersPanel.btnIasHelp.clicked.connect(self.iasHelpShow)
        self.parametersPanel.txtIas.textChanged.connect(self.iasChanged)
        self.parametersPanel.txtIsa.textChanged.connect(self.isaChanged)

        self.parametersPanel.txtTas.setText(
            str(
                Speed.smethod_0(
                    Speed(float(self.parametersPanel.txtIas.text())),
                    float(self.parametersPanel.txtIsa.text()),
                    Altitude(float(self.parametersPanel.txtAltitude.text()),
                             AltitudeUnits.FT)).Knots))
 def method_31(self):
     self.parametersPanel.pnlWind.setAltitude(
         Altitude(float(self.parametersPanel.txtAltitude.text()),
                  AltitudeUnits.FT))
     try:
         speed = Speed.smethod_0(
             Speed(float(self.parametersPanel.txtIas.text())),
             float(self.parametersPanel.txtIsa.text()),
             Altitude(float(self.parametersPanel.txtAltitude.text()),
                      AltitudeUnits.FT))
         self.parametersPanel.txtTas.setText(str(round(speed.Knots, 4)))
     except:
         raise ValueError("Value Invalid")
 def method_5(self):
     if self.comboBox.currentIndex() == 0:
         self.speedBox.setText(
             str(round(Speed.smethod_1(self.altitude).Knots, 1)))
     elif self.comboBox.currentIndex() == 1:
         self.speedBox.setText(
             str(round(Speed.smethod_2(self.altitude).Knots, 1)))
     else:
         self.speedBox.setText(str(self.customValue))
     if self.comboBox.currentIndex() != 2:
         self.speedBox.setEnabled(False)
     else:
         self.speedBox.setEnabled(True)
    def altitudeMChanged(self):
        if self.flag==0:
            self.flag=1;
        if self.flag==2:
            self.flag=0;
        if self.flag==1:
            try:
                self.parametersPanel.txtAltitudeFt.setText(str(round(Unit.ConvertMeterToFeet(float(self.parametersPanel.txtAltitudeM.text())), 4)))
            except:
                self.parametersPanel.txtAltitudeFt.setText("0.0")

        self.parametersPanel.pnlWind.setAltitude(Altitude(float(self.parametersPanel.txtAltitudeFt.text()), AltitudeUnits.FT))
        try:
            self.parametersPanel.txtTas.setText(str(Speed.smethod_0(Speed(float(self.parametersPanel.txtIas.text())), float(self.parametersPanel.txtIsa.text()), Altitude(float(self.parametersPanel.txtAltitudeFt.text()), AltitudeUnits.FT)).Knots))
        except:
            raise ValueError("Value Invalid")
 def altitudeChanged(self):
     self.parametersPanel.pnlWind.setAltitude(self.parametersPanel.pnlAerodromeAltitude.Value)
     try:
         self.parametersPanel.pnlTas.Value = Speed.smethod_0(self.parametersPanel.pnlIas.Value, self.parametersPanel.pnlIsa.Value, self.parametersPanel.pnlAerodromeAltitude.Value)
         self.showMarkDaSoc()
     except:
         raise ValueError("Value Invalid")
    def putDistances(self):
        try:
            point3dThr = self.parametersPanel.pnlThrPosition.Point3d
            point3dFaf = self.parametersPanel.pnlFafPosition.Point3d

            point3dMapt = self.parametersPanel.pnlMaPtPosition.Point3d

            self.parametersPanel.pnlDistOfFafMapt.Value = Distance(
                MathHelper.calcDistance(point3dFaf, point3dMapt))

            inboundTrackRad = Unit.ConvertDegToRad(
                self.parametersPanel.pnlInboundTrack.Value)
            inboundTrack180Rad = MathHelper.smethod_4(inboundTrackRad +
                                                      math.pi)
            speedTas = self.parametersPanel.pnlTas.Value

            xDist = self.calcDAndXDistance(speedTas, Speed(10), 15)
            self.parametersPanel.pnlDistX.Caption = "X(10kts/15s)"
            if self.parametersPanel.cmbAircraftCategory.SelectedIndex == 5:
                xDist = self.calcDAndXDistance(speedTas, Speed(10), 5)
                self.parametersPanel.pnlDistX.Caption = "X(10kts/5s)"
            dDist = self.calcDAndXDistance(speedTas, Speed(10), 3)

            fixTolerance = 0.0
            if self.dlgType == "NpaOnFix":
                fixTolerance = self.parametersPanel.pnlDistFixTolerance.Value.Metres
            socMaptDistMeters = fixTolerance + dDist + xDist
            socThrDistMeters = MathHelper.calcDistance(
                point3dMapt, point3dThr) - socMaptDistMeters

            sockBearing = inboundTrackRad
            self.socPoint3d = MathHelper.distanceBearingPoint(
                point3dMapt, sockBearing,
                socMaptDistMeters).smethod_167(self.calcSocAltitude())

            self.parametersPanel.pnlDistD.Value = Distance(dDist)
            self.parametersPanel.pnlDistX.Value = Distance(xDist)
            self.parametersPanel.pnlDistOfMaptSoc.Value = Distance(
                socMaptDistMeters)
            self.parametersPanel.pnlDistOfSocThr.Value = Distance(
                MathHelper.calcDistance(self.socPoint3d, point3dThr)
            )  #MathHelper.calcDistance(point3dThr, self.daPoint3d))
            # self.parametersPanel.pnlDistOfFafMapt.Value = Distance(MathHelper.calcDistance(point3dFaf, point3dMapt))#MathHelper.calcDistance(point3dThr, self.socPoint3d))
            self.parametersPanel.pnlDistOfMaptThr.Value = Distance(
                MathHelper.calcDistance(point3dMapt, point3dThr))
        except:
            pass
 def OK(self):
     self.leg.Rnp = float(self.ui.txtRnpValue.text())
     self.leg.Altitude = Altitude(float(self.ui.txtAltitude.text()), AltitudeUnits.FT)
     self.leg.Bank = float(self.ui.txtBank.text())
     self.leg.Wind = Speed(float(self.ui.txtWind.text()))
     
     if (self.ui.chbIsFap.isEnabled()):
         self.leg.IsFAP = self.ui.chbIsFap.isChecked()
    def putAircraftSpeed(self):
        speedTas = self.parametersPanel.pnlTas.Value

        if self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.A:
            self.parametersPanel.pnlIas.Value = Speed(100)
            # self.parametersPanel.pnlIas.Value = Speed(90)
        elif self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.B:
            self.parametersPanel.pnlIas.Value = Speed(130)
            # self.parametersPanel.pnlIas.Value = Speed(120)
        elif self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.C:
            self.parametersPanel.pnlIas.Value = Speed(160)
            # self.parametersPanel.pnlIas.Value = Speed(140)
        elif self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.D:
            self.parametersPanel.pnlIas.Value = Speed(185)
            # self.parametersPanel.pnlIas.Value = Speed(165)
        elif self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.E:
            self.parametersPanel.pnlIas.Value = Speed(230)
            # self.parametersPanel.pnlIas.Value = Speed(210)
        elif self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.Custom:
            # self.parametersPanel.pnlIas.Value = self.customIas
            self.parametersPanel.pnlIas.Value = Speed(185)
        elif self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.H:
            # self.parametersPanel.pnlIas.Value = self.customIas
            self.parametersPanel.pnlIas.Value = Speed(90)
        self.parametersPanel.pnlIas.Enabled = self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.Custom
 def iasChanged(self):
     try:
         self.parametersPanel.txtTas.Value = Speed.smethod_0(
             self.parametersPanel.txtIas.Value,
             float(self.parametersPanel.txtIsa.Value),
             self.parametersPanel.txtAltitude.Value -
             self.parametersPanel.pnlNavAid.Altitude())
     except:
         raise ValueError("Value Invalid")
    def initParametersPan(self):
        ui = Ui_TurnArea()
        self.parametersPanel = ui
        FlightPlanBaseDlg.initParametersPan(self)
        
        self.parametersPanel.txtTas.setEnabled(False)
        self.CaptureCoordTool = CaptureCoordinateToolUpdate(define._canvas)
        self.connect(self.CaptureCoordTool, SIGNAL("resultPointValueList"), self.resultPointValueListMethod)
        self.parametersPanel.pnlWind = WindPanel(self.parametersPanel.gbParameters)
        self.parametersPanel.pnlWind.lblIA.setMinimumSize(100, 0)
        self.parametersPanel.pnlWind.lblIA.setMaximumSize(100, 10000)
        self.parametersPanel.vl_gbParameters.insertWidget(6, self.parametersPanel.pnlWind)
        self.parametersPanel.pnlWind.setAltitude(Altitude(float(self.parametersPanel.txtAltitudeFt.text()), AltitudeUnits.FT))

        self.parametersPanel.cmbOrientation.addItems(["Right", "Left"])
                
#         self.parametersPanel.cmbHoldingFunctionality.currentIndexChanged.connect(self.cmbHoldingFunctionalityCurrentIndexChanged)
#         self.parametersPanel.cmbOutboundLimit.currentIndexChanged.connect(self.cmbOutboundLimitCurrentIndexChanged)
#         self.parametersPanel.btnCaptureTrack.clicked.connect(self.captureBearing)
#         self.parametersPanel.btnCaptureDistance.clicked.connect(self.measureDistance)
#         self.parametersPanel.btnCaptureLength.clicked.connect(self.measureLength)        
        self.parametersPanel.txtAltitudeFt.textChanged.connect(self.altitudeFtChanged)
        self.parametersPanel.txtAltitudeM.textChanged.connect(self.altitudeMChanged)
#         self.parametersPanel.cmbAircraftCategory.currentIndexChanged.connect(self.changeCategory)
#         self.parametersPanel.btnIasHelp.clicked.connect(self.iasHelpShow)
        self.parametersPanel.txtIas.textChanged.connect(self.iasChanged)
        self.parametersPanel.txtIsa.textChanged.connect(self.isaChanged)
        
        self.parametersPanel.txtTas.setText(str(round(Speed.smethod_0(Speed(float(self.parametersPanel.txtIas.text())), float(self.parametersPanel.txtIsa.text()), Altitude(float(self.parametersPanel.txtAltitudeFt.text()), AltitudeUnits.FT)).Knots, 4)))

        self.flag = 0
        if self.flag==0:
            self.flag=2;
        if self.flag==1:
            self.flag=0;
        if self.flag==2:
            try:
                self.parametersPanel.txtAltitudeM.setText(str(round(Unit.ConvertFeetToMeter(float(self.parametersPanel.txtAltitudeFt.text())), 4)))
            except:
                self.parametersPanel.txtAltitudeM.setText("0.0")
 def changeCategory(self):
     if self.parametersPanel.cmbAircraftCategory_2.currentIndex(
     ) == AircraftSpeedCategory.A:
         self.parametersPanel.txtIas.setText(str(Speed(150).Knots))
         return
     elif self.parametersPanel.cmbAircraftCategory_2.currentIndex(
     ) == AircraftSpeedCategory.B:
         self.parametersPanel.txtIas.setText(str(Speed(180).Knots))
         return
     elif self.parametersPanel.cmbAircraftCategory_2.currentIndex(
     ) == AircraftSpeedCategory.C:
         self.parametersPanel.txtIas.setText(str(Speed(240).Knots))
         return
     elif self.parametersPanel.cmbAircraftCategory_2.currentIndex(
     ) == AircraftSpeedCategory.D:
         self.parametersPanel.txtIas.setText(str(Speed(250).Knots))
         return
     elif self.parametersPanel.cmbAircraftCategory_2.currentIndex(
     ) == AircraftSpeedCategory.E:
         self.parametersPanel.txtIas.setText(str(Speed(250).Knots))
         return
     elif self.parametersPanel.cmbAircraftCategory_2.currentIndex(
     ) == AircraftSpeedCategory.H:
         self.parametersPanel.txtIas.setText(str(Speed(250).Knots))
         return
    def btnEvaluate_Click(self):
        if not self.method_27():
            return

        holdingTemplate = HoldingTemplate(
            self.parametersPanel.pnlNavAid.Point3d,
            float(self.parametersPanel.txtTrack.Value),
            self.parametersPanel.txtIas.Value,
            self.parametersPanel.txtAltitude.Value,
            Speed(float(self.parametersPanel.pnlWind.speedBox.text())),
            float(self.parametersPanel.txtIsa.Value),
            float(self.parametersPanel.txtTime.Value),
            self.parametersPanel.cmbOrientation.SelectedItem)
        polylineArea = self.method_35()
        polylineAreaTemp = holdingTemplate.vmethod_0(
            polylineArea, self.parametersPanel.chbIntercept.Checked,
            self.parametersPanel.chbSectors12.Checked)
        polylineArea1 = polylineAreaTemp[0]
        altitude_0 = self.parametersPanel.txtAltitude.Value
        altitude_1 = self.parametersPanel.txtMoc.Value

        if (self.parametersPanel.cmbUsedFor.SelectedIndex != 0):
            hOSE = HoldingOverheadSecondaryEvaluator(
                polylineArea1, altitude_0, altitude_1,
                Distance(2.5, DistanceUnits.NM))
            self.obstaclesModel = HoldingOverHeadObstacles(
                False, "second", None, altitude_0, hOSE.inner, hOSE.outer,
                hOSE.poly, altitude_1, Distance(2.5, DistanceUnits.NM))

        elif (not self.parametersPanel.chbCatH.isChecked()):
            hOBE = HoldingOverheadBufferEvaluator(polylineArea1, altitude_0,
                                                  altitude_1)
            self.obstaclesModel = HoldingOverHeadObstacles(
                self.parametersPanel.chbCatH.Checked, "buffer", hOBE.areas,
                altitude_0)
        else:
            hOSE = HoldingOverheadSecondaryEvaluator(
                polylineArea1, altitude_0, altitude_1,
                Distance(2, DistanceUnits.NM))
            self.obstaclesModel = HoldingOverHeadObstacles(
                True, "second", None, altitude_0, hOSE.inner, hOSE.outer,
                hOSE.poly, altitude_1, Distance(2, DistanceUnits.NM))
        return FlightPlanBaseDlg.btnEvaluate_Click(self)
Beispiel #19
0
    def initParametersPan(self):
        ui = Ui_HoldingOverHead()
        self.parametersPanel = ui
        FlightPlanBaseDlg.initParametersPan(self)

        self.connect(self.parametersPanel.pnlNavAid, SIGNAL("positionChanged"),
                     self.initResultPanel)
        self.connect(self.parametersPanel.pnlNavAid, SIGNAL("positionChanged"),
                     self.iasChanged)

        self.parametersPanel.pnlWind.setAltitude(
            self.parametersPanel.txtAltitude.Value)
        #
        self.parametersPanel.cmbNavAidType.Items = ["VOR", "NDB"]
        self.parametersPanel.cmbUsedFor.Items = ["Holding", "Racetrack"]
        self.parametersPanel.cmbUsedFor.SelectedIndex = 1
        self.parametersPanel.cmbConstruction.Items = ["2D", "3D"]
        self.parametersPanel.cmbOrientation.Items = ["Right", "Left"]

        self.parametersPanel.chbSector1.Visible = False
        self.parametersPanel.chbSector2.Visible = False
        self.parametersPanel.chbSector3.Visible = False
        self.parametersPanel.chbCatH.Visible = False

        self.connect(self.parametersPanel.cmbNavAidType, SIGNAL("Event_0"),
                     self.initBasedOnCmb)
        self.connect(self.parametersPanel.cmbUsedFor, SIGNAL("Event_0"),
                     self.cmbUsedForCurrentIndexChanged)
        self.connect(self.parametersPanel.txtAltitude, SIGNAL("Event_0"),
                     self.altitudeChanged)
        self.connect(self.parametersPanel.txtIas, SIGNAL("Event_0"),
                     self.iasChanged)
        self.connect(self.parametersPanel.txtIsa, SIGNAL("Event_0"),
                     self.iasChanged)

        self.parametersPanel.txtTas.Value = Speed.smethod_0(
            self.parametersPanel.txtIas.Value,
            self.parametersPanel.txtIsa.Value,
            self.parametersPanel.txtAltitude.Value -
            self.parametersPanel.pnlNavAid.Altitude())
    def __init__(self):
        self.RecommendedEnt = None
        self.PointEnt = None
        self.CenterEnt = None
        self.CodePhase = ""
        self.CodeType = CodeTypeProcPathAixm.OTHER
        self.ValCourse = 0
        self.CodeTypeCourse = ""
        self.CodeDirTurn = ""
        self.CodeTurnValid = ""
        self.CodeDescrDistVer = ""
        self.CodeDistVerUpper = ""
        self.ValDistVerUpper = Altitude(0)
        self.CodeDistVerLower = ""
        self.ValDistVerLower = Altitude(0)
        self.ValVerAngle = 0
        self.ValSpeedLimit = Speed(0)
        self.CodeSpeedRef = ""
        self.ValDist = Distance(0)
        self.ValDur = 0
        self.ValTheta = 0
        self.ValRho = Distance(0)
        self.ValBankAngle = 0
        self.CodeRepAtc = ""
        self.CodeRoleFix = ""
        self.TxtRmk = ""

        self.dataList = []
        self.nameList = [
            "Fix Position", "Fix Type", "Recommended Nav. Aid", "Flight Phase",
            "Leg Type", "Course Type", "Course Angle", "Turn Direction",
            "Center", "Fly-By", "Bank Angle", "Altitude Interpretation",
            "Lower Limit Ref.", "Lower Limit", "Upper Limit Ref.",
            "Upper Limit", "Climb / Descent Angle", "Speed Restriction Ref.",
            "Speed Restriction", "Segment Length", "Duration", "ATC Reporting"
        ]
    def __init__(self, parent):
        QFrame.__init__(self, parent)
        while not isinstance(parent, QDialog):
            parent = parent.parent()
        self.setObjectName("OCAHPanel" + str(len(parent.findChildren(OCAHPanel))))

#         self.frame_WindIA = QFrame(parent)
        sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.sizePolicy().hasHeightForWidth())
        self.setSizePolicy(sizePolicy)
        self.setFrameShape(QFrame.StyledPanel)
        self.setFrameShadow(QFrame.Raised)
        self.setObjectName(("frame_WindIA"))
        self.hLayout = QHBoxLayout(self)
        self.hLayout.setSpacing(0)
        self.hLayout.setMargin(0)
        self.hLayout.setObjectName(("hLayout"))

        self.basicFrame = Frame(self, "HL")
        self.basicFrame.layoutBoxPanel.setSpacing(0)
        # self.basicFrame.layoutBoxPanel.setMargin(0)
        self.hLayout.addWidget(self.basicFrame)

        self.lblIA = QLabel(self.basicFrame)
        self.lblIA.setMinimumSize(QSize(200, 0))
        self.lblIA.setMaximumSize(QSize(200, 16777215))
        font = QFont()
        font.setFamily(("Arial"))
        font.setBold(False)
        font.setWeight(50)
        self.lblIA.setFont(font)
        self.lblIA.setObjectName(("lblIA"))
        self.basicFrame.Add = self.lblIA
        self.cmbType = QComboBox(self.basicFrame)
        self.cmbType.setMinimumSize(QSize(70, 0))
        self.cmbType.setMaximumWidth(70)
        font = QFont()
        font.setFamily(("Arial"))
        font.setBold(False)
        font.setWeight(50)
        self.cmbType.setFont(font)
        self.cmbType.setObjectName(("cmbType"))
        self.basicFrame.Add = self.cmbType



        self.txtAltitudeM = QLineEdit(self.basicFrame)
        self.txtAltitudeM.setEnabled(True)
        font = QFont()
        font.setBold(False)
        font.setWeight(50)
        self.txtAltitudeM.setFont(font)
        self.txtAltitudeM.setObjectName(self.objectName() + "_txtAltitudeM")
        self.txtAltitudeM.setText("0.0")
        self.txtAltitudeM.setMinimumWidth(70)
        self.txtAltitudeM.setMaximumWidth(70)
        self.basicFrame.Add = self.txtAltitudeM

        labelM = QLabel(self.basicFrame)
        labelM.setObjectName(("labelM"))
        labelM.setText(" m ")
        self.basicFrame.Add = labelM

        self.txtAltitude = QLineEdit(self.basicFrame)
        sizePolicy = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.txtAltitude.sizePolicy().hasHeightForWidth())
        self.txtAltitude.setSizePolicy(sizePolicy)
        self.txtAltitude.setMinimumSize(QSize(70, 0))
        self.txtAltitude.setMaximumSize(QSize(70, 16777215))
        font = QFont()
        font.setFamily(("Arial"))
        font.setBold(False)
        font.setWeight(50)
        self.txtAltitude.setFont(font)
        self.txtAltitude.setObjectName(self.objectName() + "_txtAltitude")
        self.basicFrame.Add = self.txtAltitude

        labelFt = QLabel(self.basicFrame)
        labelFt.setObjectName(("labelFt"))
        labelFt.setText(" ft")
        self.basicFrame.Add = labelFt

        spacerItem = QSpacerItem(10,10,QSizePolicy.Expanding, QSizePolicy.Minimum)
        self.hLayout.addItem(spacerItem)
        
        self.altitude = Altitude.NaN()
        self.customValue = Speed(30).Knots
        self.cmbType.addItems(["OCA", "OCH"])
        # self.cmbType.currentIndexChanged.connect(self.changeType)
        self.cmbType.setCurrentIndex(0)
        self.lblIA.setText("Intermediate Segment Minimum:")
        # self.txtAltitude.setEnabled(False)
        self.txtAltitudeM.textChanged.connect(self.txtAltitudeMChanged)
        self.txtAltitude.textChanged.connect(self.txtAltitudeChanged)
        
        self.captionUnits = "ft"

        self.flag = 0
        self.txtAltitudeM.setText("0.0")
        self.txtAltitude.setText("0.0")
Beispiel #22
0
    def __init__(self, parent):
        QFrame.__init__(self, parent)
        while not isinstance(parent, QDialog):
            parent = parent.parent()
        self.setObjectName("WindPanel" +
                           str(len(parent.findChildren(WindPanel))))

        #         self.frame_WindIA = QFrame(parent)
        sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.sizePolicy().hasHeightForWidth())
        self.setSizePolicy(sizePolicy)
        self.setFrameShape(QFrame.StyledPanel)
        self.setFrameShadow(QFrame.Raised)
        self.setObjectName(("frame_WindIA"))
        self.hLayout = QHBoxLayout(self)
        self.hLayout.setSpacing(0)
        self.hLayout.setMargin(0)
        self.hLayout.setObjectName(("hLayout"))

        self.basicFrame = Frame(self, "HL")
        self.hLayout.addWidget(self.basicFrame)

        self.lblIA = QLabel(self.basicFrame)
        self.lblIA.setMinimumSize(QSize(200, 0))
        self.lblIA.setMaximumSize(QSize(200, 16777215))
        font = QFont()
        font.setFamily(("Arial"))
        font.setBold(False)
        font.setWeight(50)
        self.lblIA.setFont(font)
        self.lblIA.setObjectName(("lblIA"))
        self.basicFrame.Add = self.lblIA

        self.comboBox = QComboBox(self.basicFrame)
        # sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed)
        # sizePolicy.setHorizontalStretch(0)
        # sizePolicy.setVerticalStretch(0)
        # sizePolicy.setHeightForWidth(self.comboBox.sizePolicy().hasHeightForWidth())
        # self.comboBox.setSizePolicy(sizePolicy)
        # self.comboBox.setMinimumSize(QSize(60, 0))
        font = QFont()
        font.setFamily(("Arial"))
        font.setBold(False)
        font.setWeight(50)
        self.comboBox.setFont(font)
        self.comboBox.setObjectName(("comboBox"))
        self.basicFrame.Add = self.comboBox

        self.speedBox = QLineEdit(self.basicFrame)
        # sizePolicy = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Fixed)
        # sizePolicy.setHorizontalStretch(0)
        # sizePolicy.setVerticalStretch(0)
        # sizePolicy.setHeightForWidth(self.speedBox.sizePolicy().hasHeightForWidth())
        # self.speedBox.setSizePolicy(sizePolicy)
        # self.speedBox.setMinimumSize(QSize(70, 0))
        # self.speedBox.setMaximumSize(QSize(16777215, 16777215))
        font = QFont()
        font.setFamily(("Arial"))
        font.setBold(False)
        font.setWeight(50)
        self.speedBox.setFont(font)
        self.speedBox.setObjectName(("speedBox"))
        self.speedBox.setMinimumSize(QSize(60, 0))
        self.speedBox.setMaximumSize(QSize(60, 16777215))
        self.basicFrame.Add = self.speedBox

        spacerItem = QSpacerItem(0, 0, QSizePolicy.Expanding,
                                 QSizePolicy.Minimum)
        self.basicFrame.layoutBoxPanel.addItem(spacerItem)

        self.altitude = Altitude.NaN()
        self.customValue = Speed(30).Knots
        self.comboBox.addItems(["ICAO", "UK", "Custom"])
        self.comboBox.currentIndexChanged.connect(self.changeWindType)
        self.comboBox.setCurrentIndex(0)
        self.lblIA.setText("Wind (kts):")
        self.speedBox.setEnabled(False)
Beispiel #23
0
 def get_Value(self):
     try:
         return Speed(float(self.textBox.text()), self.CaptionUnits)
     except:
         return Speed(None)
    def initParametersPan(self):
        ui = Ui_HoldingRnpGeneral()
        self.parametersPanel = ui

        FlightPlanBaseDlg.initParametersPan(self)
        self.parametersPanel.txtTas.setEnabled(False)
        self.parametersPanel.pnlWaypoint = PositionPanel(
            self.parametersPanel.holding)
        self.parametersPanel.pnlWaypoint.groupBox.setTitle("Waypoint Position")

        self.parametersPanel.pnlWaypoint.hideframe_Altitude()
        self.parametersPanel.pnlWaypoint.setObjectName("positionWaypoint")
        self.parametersPanel.pnlWaypoint.btnCalculater.hide()
        self.parametersPanel.verticalLayout.insertWidget(
            0, self.parametersPanel.pnlWaypoint)

        self.parametersPanel.pnlWind = WindPanel(
            self.parametersPanel.grbParameters)
        self.parametersPanel.vLayout_grbParameters.insertWidget(
            5, self.parametersPanel.pnlWind)
        self.parametersPanel.pnlWind.setAltitude(
            Altitude(float(self.parametersPanel.txtAltitude.text()),
                     AltitudeUnits.FT))

        #         self.resize(460,600)
        self.parametersPanel.cmbConstruction.addItems(["2D", "3D"])
        self.parametersPanel.cmbAircraftCategory_2.addItems(
            ["A", "B", "C", "D", "E", "H", "Custom"])
        self.parametersPanel.cmbOrientation.addItems(
            [OrientationType.Left, OrientationType.Right])
        #         self.parametersPanel.cmbOrientation.setCurrentIndex(1)
        #
        #         '''Event Handlers Connect'''
        #
        self.parametersPanel.txtAltitude.textChanged.connect(self.method_31)
        #         self.parametersPanel.cmbTurnLimitation.currentIndexChanged.connect(self.method_28)
        #         self.parametersPanel.btnCaptureTrack.clicked.connect(self.captureBearing)
        self.parametersPanel.cmbAircraftCategory_2.currentIndexChanged.connect(
            self.changeCategory)
        self.parametersPanel.cmbAircraftCategory_2.setCurrentIndex(3)

        self.frame_8_1 = QFrame(self)
        sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        #         sizePolicy.setHeightForWidth(self.frame_8.sizePolicy().hasHeightForWidth())
        self.frame_8_1.setSizePolicy(sizePolicy)
        self.frame_8_1.setFrameShape(QFrame.StyledPanel)
        self.frame_8_1.setFrameShadow(QFrame.Raised)
        self.frame_8_1.setObjectName("frame_8")
        self.horizontalLayout_10_1 = QHBoxLayout(self.frame_8_1)
        self.horizontalLayout_10_1.setAlignment(Qt.AlignHCenter)
        self.horizontalLayout_10_1.setSpacing(0)
        self.horizontalLayout_10_1.setMargin(0)
        self.horizontalLayout_10_1.setObjectName("horizontalLayout_10")
        self.label_2_1 = QLabel(self.frame_8_1)
        self.label_2_1.setMinimumSize(QSize(140, 16777215))
        #         self.label_2_1.setFixedWidth(100)
        self.label_2_1.setText("MOCmultiplier")

        font = QFont()
        font.setFamily("Arial")
        font.setBold(False)
        font.setWeight(50)
        self.label_2_1.setFont(font)
        self.label_2_1.setObjectName("label_2_1")
        self.horizontalLayout_10_1.addWidget(self.label_2_1)

        self.parametersPanel.mocSpinBox = QSpinBox(self.frame_8_1)
        self.parametersPanel.mocSpinBox.setFont(font)
        self.parametersPanel.mocSpinBox.setObjectName("mocSpinBox")
        sizePolicy = QSizePolicy(QSizePolicy.MinimumExpanding,
                                 QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.parametersPanel.mocSpinBox.sizePolicy().hasHeightForWidth())
        self.parametersPanel.mocSpinBox.setSizePolicy(sizePolicy)
        self.parametersPanel.mocSpinBox.setMinimum(1)
        self.parametersPanel.mocSpinBox.setMinimumSize(QSize(140, 16777215))

        #         self.parametersPanel.mocSpinBox.setFixedWidth(100)
        self.horizontalLayout_10_1.addWidget(self.parametersPanel.mocSpinBox)
        #         self.verticalLayout_9.addWidget(self.frame_8_1)

        self.parametersPanel.vLayout_grbParameters.addWidget(self.frame_8_1)
        self.parametersPanel.btnIasHelp.clicked.connect(self.iasHelpShow)
        self.parametersPanel.frame_ConstructionType_2.hide()

        self.parametersPanel.txtIas.textChanged.connect(self.iasChanged)
        self.parametersPanel.txtIsa.textChanged.connect(self.isaChanged)
        #         self.parametersPanel.txtIsa.textChanged.connect(self.isaChanged)
        self.parametersPanel.txtAltitudeM.textChanged.connect(
            self.txtAltitudeMChanged)
        self.parametersPanel.txtAltitude.textChanged.connect(
            self.txtAltitudeFtChanged)

        self.flag = 0
        if self.flag == 0:
            self.flag = 2
        if self.flag == 1:
            self.flag = 0
        if self.flag == 2:
            try:
                self.parametersPanel.txtAltitudeM.setText(
                    str(
                        round(
                            Unit.ConvertFeetToMeter(
                                float(
                                    self.parametersPanel.txtAltitude.text())),
                            4)))
            except:
                self.parametersPanel.txtAltitudeM.setText("0.0")
        self.parametersPanel.txtMoc.textChanged.connect(self.txtMocMChanged)
        self.parametersPanel.txtMocFt.textChanged.connect(self.txtMocFtChanged)

        self.flag1 = 0
        if self.flag1 == 0:
            self.flag1 = 1
        if self.flag1 == 2:
            self.flag1 = 0
        if self.flag1 == 1:
            try:
                self.parametersPanel.txtMocFt.setText(
                    str(
                        round(
                            Unit.ConvertMeterToFeet(
                                float(self.parametersPanel.txtMoc.text())),
                            4)))
            except:
                self.parametersPanel.txtMocFt.setText("0.0")

        self.parametersPanel.txtTas.setText(
            str(
                round(
                    Speed.smethod_0(
                        Speed(float(self.parametersPanel.txtIas.text())),
                        float(self.parametersPanel.txtIsa.text()),
                        Altitude(
                            float(self.parametersPanel.txtAltitude.text()),
                            AltitudeUnits.FT)).Knots, 4)))
Beispiel #25
0
 def changeCategory(self):
     if self.parametersPanel.cmbAircraftCategory.currentIndex(
     ) == AircraftSpeedCategory.A:
         self.parametersPanel.txtIas.setText(
             str(
                 Speed.smethod_0(
                     Speed(150), float(self.parametersPanel.txtIsa.text()),
                     Altitude(
                         float(self.parametersPanel.txtAltitude.text()),
                         AltitudeUnits.FT)).Knots))
         return
     elif self.parametersPanel.cmbAircraftCategory.currentIndex(
     ) == AircraftSpeedCategory.B:
         self.parametersPanel.txtIas.setText(
             str(
                 Speed.smethod_0(
                     Speed(180), float(self.parametersPanel.txtIsa.text()),
                     Altitude(
                         float(self.parametersPanel.txtAltitude.text()),
                         AltitudeUnits.FT)).Knots))
         return
     elif self.parametersPanel.cmbAircraftCategory.currentIndex(
     ) == AircraftSpeedCategory.C:
         self.parametersPanel.txtIas.setText(
             str(
                 Speed.smethod_0(
                     Speed(240), float(self.parametersPanel.txtIsa.text()),
                     Altitude(
                         float(self.parametersPanel.txtAltitude.text()),
                         AltitudeUnits.FT)).Knots))
         return
     elif self.parametersPanel.cmbAircraftCategory.currentIndex(
     ) == AircraftSpeedCategory.D:
         self.parametersPanel.txtIas.setText(
             str(
                 Speed.smethod_0(
                     Speed(250), float(self.parametersPanel.txtIsa.text()),
                     Altitude(
                         float(self.parametersPanel.txtAltitude.text()),
                         AltitudeUnits.FT)).Knots))
         return
     elif self.parametersPanel.cmbAircraftCategory.currentIndex(
     ) == AircraftSpeedCategory.E:
         self.parametersPanel.txtIas.setText(
             str(
                 Speed.smethod_0(
                     Speed(250), float(self.parametersPanel.txtIsa.text()),
                     Altitude(
                         float(self.parametersPanel.txtAltitude.text()),
                         AltitudeUnits.FT)).Knots))
         return
     elif self.parametersPanel.cmbAircraftCategory.currentIndex(
     ) == AircraftSpeedCategory.H:
         self.parametersPanel.txtIas.setText(
             str(
                 Speed.smethod_0(
                     Speed(70), float(self.parametersPanel.txtIsa.text()),
                     Altitude(
                         float(self.parametersPanel.txtAltitude.text()),
                         AltitudeUnits.FT)).Knots))
         return
 def __init__(self, point3d_0, double_0, speed_0, altitude_0, speed_1,
              double_1, double_2, orientationType_0):
     '''
     Constructor
     '''
     #         double num;
     #         double num1;
     #         double num2;
     #         double num3;
     #         double num4;
     #         Point3d point3d;
     #         Point3d point3d1;
     #         Point3d point3d2;
     #         Point3d point3d3;
     #         Point3d point3d4;
     #         Point3d point3d5;
     #         Point3d point3d6;
     #         Point3d point3d7;
     #         Point3d point3d8;
     #         Point3d point3d9;
     #         Point3d point3d10;
     #         Point3d point3d11;
     #         Point3d point3d12;
     #         Point3d point3d13;
     #         Point3d point3d14;
     #         Point3d point3d15;
     #         Point3d point3d16;
     #         Point3d point3d17;
     #         Point3d point3d18;
     #         Point3d point3d19;
     #         Point3d point3d20;
     #         Point3d point3d21;
     #         Point3d point3d22;
     #         Point3d point3d23;
     #         Point3d point3d24;
     #         Point3d point3d25;
     #         Point3d point3d26;
     #         Point3d point3d27;
     #         Point3d point3d28;
     #         Point3d point3d29;
     #         Point3d point3d30;
     #         Point3d point3d31;
     #         Point3d point3d32;
     #         Point3d point3d33;
     #         Point3d point3d34;
     #         Point3d point3d35;
     point3d_0 = point3d_0.smethod_167(0)
     self.ptBase = point3d_0
     self.trackDeg = MathHelper.smethod_3(double_0)
     self.trackRad = MathHelper.smethod_4(Unit.ConvertDegToRad(double_0))
     self.orientation = orientationType_0
     self.tas = Speed.smethod_0(speed_0, double_1, altitude_0)
     self.R = min([943.27 / self.tas.KilometresPerHour, 3])
     self.radius = Distance(
         Unit.ConvertKMToMeters(self.tas.KilometresPerHour /
                                (62.8318530717959 * self.R)))
     metresPerSecond = self.tas.MetresPerSecond
     metres = self.radius.Metres
     kilometresPerHour = speed_1.KilometresPerHour
     metresPerSecond1 = speed_1.MetresPerSecond
     r = 45 * metresPerSecond1 / self.R
     double2 = double_2 * 60
     self.ds = Distance(metresPerSecond * double2)
     self.wd = Distance(
         math.sqrt(self.ds.Metres * self.ds.Metres + 4 * metres * metres))
     num5 = 5 * metresPerSecond
     num6 = 11 * metresPerSecond
     num7 = (double2 - 5) * metresPerSecond
     num8 = (double2 - 5) * metresPerSecond
     num9 = (double2 + 21) * metresPerSecond
     num10 = (double2 + 21) * metresPerSecond
     num11 = 5 * metresPerSecond1
     num12 = 11 * metresPerSecond1
     num13 = num12 + r
     num14 = num12 + 2 * r
     num15 = num12 + 3 * r
     num16 = num12 + 4 * r
     num17 = num11 + 5 * r
     num18 = num11 + 6 * r
     num19 = (double2 + 6) * metresPerSecond1 + 4 * r
     num20 = (double2 + 6) * metresPerSecond1 + 4 * r
     num21 = num19 + 14 * metresPerSecond1
     num22 = num19 + 14 * metresPerSecond1
     num23 = num21 + r
     num24 = num21 + 2 * r
     num25 = num21 + 2 * r
     num26 = num21 + 3 * r
     num27 = num19 + 4 * r
     num28 = num21 + 4 * r
     r1 = 2 * metres + (double2 + 15) * metresPerSecond + (
         double2 + 26 + 195 / self.R) * metresPerSecond1
     num29 = 11 * metresPerSecond * math.cos(Unit.ConvertDegToRad(
         20)) + metres * (1 + math.sin(Unit.ConvertDegToRad(20))) + (
             double2 + 15) * metresPerSecond * math.tan(
                 Unit.ConvertDegToRad(5)) + (
                     double2 + 26 + 125 / self.R) * metresPerSecond1
     self.ias = speed_0
     self.wind = speed_1
     self.isa = double_1
     self.altitude = altitude_0
     self.time = double_2
     num30 = 1 if (orientationType_0 == OrientationType.Right) else -1
     turnDirection = TurnDirection.Right if (
         orientationType_0 == OrientationType.Right) else TurnDirection.Left
     turnDirection1 = TurnDirection.Left if (
         orientationType_0
         == OrientationType.Right) else TurnDirection.Right
     point3d36 = MathHelper.distanceBearingPoint(point3d_0, 0, 0)
     point3d37 = MathHelper.distanceBearingPoint(
         point3d36, Unit.ConvertDegToRad(double_0), num5)
     point3d38 = MathHelper.distanceBearingPoint(
         point3d36, Unit.ConvertDegToRad(double_0), num6)
     point3d39 = MathHelper.distanceBearingPoint(
         point3d38, Unit.ConvertDegToRad(double_0 + num30 * 90), metres)
     point3d40 = MathHelper.distanceBearingPoint(
         point3d39, Unit.ConvertDegToRad(double_0 + num30 * -45), metres)
     point3d41 = MathHelper.distanceBearingPoint(
         point3d39, Unit.ConvertDegToRad(double_0), metres)
     point3d42 = MathHelper.distanceBearingPoint(
         point3d39, Unit.ConvertDegToRad(double_0 + num30 * 45), metres)
     point3d43 = MathHelper.distanceBearingPoint(
         point3d39, Unit.ConvertDegToRad(double_0 + num30 * 90), metres)
     point3d39 = MathHelper.distanceBearingPoint(
         point3d37, Unit.ConvertDegToRad(double_0 + num30 * 90), metres)
     MathHelper.distanceBearingPoint(
         point3d39, Unit.ConvertDegToRad(double_0 + num30 * 90), metres)
     point3d44 = MathHelper.distanceBearingPoint(
         point3d39, Unit.ConvertDegToRad(double_0 + num30 * 135), metres)
     point3d45 = MathHelper.distanceBearingPoint(
         point3d39, Unit.ConvertDegToRad(double_0 + 180), metres)
     point3d46 = MathHelper.distanceBearingPoint(
         point3d43, Unit.ConvertDegToRad(double_0 + 180 - num30 * 5), num7)
     point3d47 = MathHelper.distanceBearingPoint(
         point3d43, Unit.ConvertDegToRad(double_0 + 180 - num30 * 5), num9)
     point3d48 = MathHelper.distanceBearingPoint(
         point3d43, Unit.ConvertDegToRad(double_0 + 180 + num30 * 5), num8)
     point3d49 = MathHelper.distanceBearingPoint(
         point3d43, Unit.ConvertDegToRad(double_0 + 180 + num30 * 5), num10)
     point3d39 = MathHelper.distanceBearingPoint(
         point3d47, Unit.ConvertDegToRad(double_0 - num30 * 90), metres)
     point3d50 = MathHelper.distanceBearingPoint(
         point3d39, Unit.ConvertDegToRad(double_0 + 180 - num30 * 45),
         metres)
     point3d51 = MathHelper.distanceBearingPoint(
         point3d39, Unit.ConvertDegToRad(double_0 + 180), metres)
     MathHelper.distanceBearingPoint(
         point3d39, Unit.ConvertDegToRad(double_0 + num30 * 90), metres)
     point3d39 = MathHelper.distanceBearingPoint(
         point3d49, Unit.ConvertDegToRad(double_0 - num30 * 90), metres)
     point3d52 = MathHelper.distanceBearingPoint(
         point3d39, Unit.ConvertDegToRad(double_0 + 180), metres)
     point3d53 = MathHelper.distanceBearingPoint(
         point3d39, Unit.ConvertDegToRad(double_0 + 180 + num30 * 45),
         metres)
     point3d54 = MathHelper.distanceBearingPoint(
         point3d39, Unit.ConvertDegToRad(double_0 - num30 * 90), metres)
     point3d55 = MathHelper.distanceBearingPoint(
         point3d48, Unit.ConvertDegToRad(double_0 - num30 * 90), metres * 2)
     point3d, num = MathHelper.smethod_193(point3d38, num12, point3d40,
                                           num13, point3d41, num14, False)
     point3d1, num1 = MathHelper.smethod_193(point3d41, num14, point3d42,
                                             num15, point3d43, num16, False)
     point3d2, num2 = MathHelper.smethod_193(point3d43, num16, point3d44,
                                             num17, point3d45, num18, False)
     point3d3, num3 = MathHelper.smethod_193(point3d47, num21, point3d50,
                                             num23, point3d51, num24, False)
     point3d4, num4 = MathHelper.smethod_193(point3d52, num25, point3d53,
                                             num26, point3d54, num28, False)
     point3d56 = MathHelper.distanceBearingPoint(
         point3d4, Unit.ConvertDegToRad(double_0 - num30 * 90), num4)
     point3d57 = MathHelper.distanceBearingPoint(
         point3d56, Unit.ConvertDegToRad(double_0 + num30 * 90), num29)
     point3d58 = MathHelper.distanceBearingPoint(
         point3d3, Unit.ConvertDegToRad(double_0 + 180), num3)
     point3d58 = MathHelper.getIntersectionPoint(
         point3d_0,
         MathHelper.distanceBearingPoint(
             point3d_0, Unit.ConvertDegToRad(double_0 + 180), 100),
         point3d58,
         MathHelper.distanceBearingPoint(
             point3d58, Unit.ConvertDegToRad(double_0 + 90), 100))
     point3d59 = MathHelper.distanceBearingPoint(
         point3d4, Unit.ConvertDegToRad(double_0 + 180), num4)
     point3d59 = MathHelper.getIntersectionPoint(
         point3d_0,
         MathHelper.distanceBearingPoint(
             point3d_0, Unit.ConvertDegToRad(double_0 + 180), 100),
         point3d59,
         MathHelper.distanceBearingPoint(
             point3d59, Unit.ConvertDegToRad(double_0 + 90), 100))
     point3d5 = MathHelper.distanceBearingPoint(
         point3d58, Unit.ConvertDegToRad(double_0),
         r1) if (MathHelper.calcDistance(point3d_0, point3d58) >=
                 MathHelper.calcDistance(point3d_0, point3d59)
                 ) else MathHelper.distanceBearingPoint(
                     point3d59, Unit.ConvertDegToRad(double_0), r1)
     self.ptE = MathHelper.getIntersectionPoint(
         point3d5,
         MathHelper.distanceBearingPoint(
             point3d5, Unit.ConvertDegToRad(double_0 + 90), 100), point3d57,
         MathHelper.distanceBearingPoint(point3d57,
                                         Unit.ConvertDegToRad(double_0),
                                         100))
     self.nominal = PolylineArea()
     point3d56 = MathHelper.distanceBearingPoint(
         point3d_0, Unit.ConvertDegToRad(double_0 + num30 * 90), 2 * metres)
     point3d58 = MathHelper.distanceBearingPoint(
         point3d56, Unit.ConvertDegToRad(double_0 + 180), self.ds.Metres)
     point3d59 = MathHelper.distanceBearingPoint(
         point3d58, Unit.ConvertDegToRad(double_0 - num30 * 90), 2 * metres)
     self.nominal.Add(
         PolylineAreaPoint(
             point3d_0,
             MathHelper.smethod_59(Unit.ConvertDegToRad(double_0),
                                   point3d_0, point3d56)))
     self.nominal.method_1(point3d56)
     self.nominal.Add(
         PolylineAreaPoint(
             point3d58,
             MathHelper.smethod_59(Unit.ConvertDegToRad(double_0 + 180),
                                   point3d58, point3d59)))
     self.nominal.method_1(point3d59)
     self.nominal.method_1(point3d_0)
     self.wd = Distance(MathHelper.calcDistance(point3d_0, point3d58))
     self.area = PolylineArea()
     point3dCollection = []
     point3dCollection.append(
         MathHelper.distanceBearingPoint(point3d,
                                         Unit.ConvertDegToRad(double_0),
                                         num))
     point3dCollection.append(
         MathHelper.distanceBearingPoint(point3d1,
                                         Unit.ConvertDegToRad(double_0),
                                         num1))
     point3dCollection.append(
         MathHelper.distanceBearingPoint(
             point3d3, Unit.ConvertDegToRad(double_0 + num30 * 90), num3))
     point3dCollection.append(
         MathHelper.distanceBearingPoint(
             point3d3, Unit.ConvertDegToRad(double_0 + 180), num3))
     point3dCollection.append(
         MathHelper.distanceBearingPoint(
             point3d4, Unit.ConvertDegToRad(double_0 + 180), num4))
     point3dCollection.append(
         MathHelper.distanceBearingPoint(
             point3d4, Unit.ConvertDegToRad(double_0 - num30 * 90), num4))
     point3dCollection.append(
         MathHelper.distanceBearingPoint(point3d55,
                                         Unit.ConvertDegToRad(double_0),
                                         num27))
     point3d7, point3d8 = MathHelper.smethod_91(point3d3, num3, point3d4,
                                                num4, turnDirection)
     point3d9, point3d10 = MathHelper.smethod_91(point3d4, num4, point3d55,
                                                 num27, turnDirection)
     point3d11, point3d12 = MathHelper.smethod_91(point3d4, num4, point3d,
                                                  num, turnDirection)
     point3d13, point3d14 = MathHelper.smethod_91(point3d4, num4, point3d1,
                                                  num1, turnDirection)
     point3d15, point3d16 = MathHelper.smethod_91(point3d4, num4, point3d3,
                                                  num3, turnDirection)
     point3d17, point3d18 = MathHelper.smethod_91(point3d55, num27, point3d,
                                                  num, turnDirection)
     point3d19, point3d20 = MathHelper.smethod_91(point3d55, num27,
                                                  point3d1, num1,
                                                  turnDirection)
     point3d21, point3d22 = MathHelper.smethod_91(point3d55, num27,
                                                  point3d3, num3,
                                                  turnDirection)
     point3d23, point3d6 = MathHelper.smethod_91(point3d, num, point3d1,
                                                 num1, turnDirection)
     point3d24, point3d25 = MathHelper.smethod_91(point3d1, num1, point3d46,
                                                  num19, turnDirection)
     point3d26, point3d27 = MathHelper.smethod_91(point3d46, num19,
                                                  point3d3, num3,
                                                  turnDirection)
     point3d28, point3d29 = MathHelper.smethod_91(point3d43, num16,
                                                  point3d48, num20,
                                                  turnDirection1)
     point3d30, point3d31 = MathHelper.smethod_91(point3d48, num20,
                                                  point3d49, num22,
                                                  turnDirection1)
     if (num4 >= MathHelper.calcDistance(point3d4, point3d55) + num27):
         self.area.method_1(point3d7)
         self.area.method_3(
             point3d8,
             MathHelper.smethod_57(turnDirection, point3d8, point3d9,
                                   point3d4))
         self.area.method_1(point3d9)
         if (num27 <= MathHelper.calcDistance(point3d55, point3d1) + num1):
             flag = False
             if (num27 < MathHelper.calcDistance(point3d55, point3d) + num):
                 point3d39 = MathHelper.distanceBearingPoint(
                     point3d18,
                     MathHelper.getBearing(point3d17, point3d18) +
                     1.5707963267949 * num30, 100)
                 flag = MathHelper.smethod_119(
                     point3d23, point3d18,
                     point3d39) if (turnDirection != TurnDirection.Right
                                    ) else MathHelper.smethod_115(
                                        point3d23, point3d18, point3d39)
             if (flag):
                 self.area.Add(
                     PolylineAreaPoint(
                         point3d10,
                         MathHelper.smethod_57(turnDirection, point3d10,
                                               point3d17, point3d55)))
                 self.area.method_1(point3d17)
                 self.area.method_3(
                     point3d18,
                     MathHelper.smethod_57(turnDirection, point3d18,
                                           point3d23, point3d))
                 self.area.method_3(
                     point3d23,
                     MathHelper.smethod_57(turnDirection, point3d23,
                                           point3d24, point3d1))
                 self.area.method_1(point3d24)
             else:
                 self.area.Add(
                     PolylineAreaPoint(
                         point3d10,
                         MathHelper.smethod_57(turnDirection, point3d10,
                                               point3d19, point3d55)))
                 self.area.method_1(point3d19)
                 self.area.Add(
                     PolylineAreaPoint(
                         point3d20,
                         MathHelper.smethod_57(turnDirection, point3d20,
                                               point3d24, point3d1)))
                 self.area.method_1(point3d24)
             self.area.method_3(
                 point3d25,
                 MathHelper.smethod_57(turnDirection, point3d25, point3d26,
                                       point3d46))
             self.area.method_1(point3d26)
             self.area.method_3(
                 point3d27,
                 MathHelper.smethod_57(turnDirection, point3d27, point3d7,
                                       point3d3))
             self.area.method_1(point3d7)
         else:
             self.area.method_3(
                 point3d10,
                 MathHelper.smethod_57(turnDirection, point3d10, point3d21,
                                       point3d55))
             self.area.method_1(point3d21)
             self.area.method_3(
                 point3d22,
                 MathHelper.smethod_57(turnDirection, point3d22, point3d7,
                                       point3d3))
             self.area.method_1(point3d7)
     elif (num4 <= MathHelper.calcDistance(point3d4, point3d1) + num1):
         flag1 = False
         if (num4 < MathHelper.calcDistance(point3d4, point3d) + num):
             point3d39 = MathHelper.distanceBearingPoint(
                 point3d12,
                 MathHelper.getBearing(point3d11, point3d12) +
                 1.5707963267949 * num30, 100)
             flag1 = MathHelper.smethod_119(
                 point3d23, point3d12,
                 point3d39) if (turnDirection != TurnDirection.Right
                                ) else MathHelper.smethod_115(
                                    point3d23, point3d12, point3d39)
         if (flag1):
             self.area.method_1(point3d7)
             self.area.method_3(
                 point3d8,
                 MathHelper.smethod_57(turnDirection, point3d8, point3d11,
                                       point3d4))
             self.area.method_1(point3d11)
             self.area.method_3(
                 point3d12,
                 MathHelper.smethod_57(turnDirection, point3d12, point3d23,
                                       point3d))
             self.area.method_3(
                 point3d23,
                 MathHelper.smethod_57(turnDirection, point3d23, point3d24,
                                       point3d1))
             self.area.method_1(point3d24)
         else:
             self.area.method_1(point3d7)
             self.area.method_3(
                 point3d8,
                 MathHelper.smethod_57(turnDirection, point3d8, point3d13,
                                       point3d4))
             self.area.method_1(point3d13)
             self.area.method_3(
                 point3d14,
                 MathHelper.smethod_57(turnDirection, point3d14, point3d24,
                                       point3d1))
             self.area.method_1(point3d24)
         self.area.method_3(
             point3d25,
             MathHelper.smethod_57(turnDirection, point3d25, point3d26,
                                   point3d46))
         self.area.method_1(point3d26)
         self.area.method_3(
             point3d27,
             MathHelper.smethod_57(turnDirection, point3d27, point3d7,
                                   point3d3))
         self.area.method_1(point3d7)
     else:
         self.area.method_1(point3d7)
         self.area.method_3(
             point3d8,
             MathHelper.smethod_57(turnDirection, point3d8, point3d15,
                                   point3d4))
         self.area.method_1(point3d15)
         self.area.method_3(
             point3d16,
             MathHelper.smethod_57(turnDirection, point3d16, point3d7,
                                   point3d3))
         self.area.method_1(point3d7)
     self.outboundLineTop = PolylineArea()
     self.outboundLineTop.method_1(point3d24)
     self.outboundLineTop.method_3(
         point3d25,
         MathHelper.smethod_57(turnDirection, point3d25, point3d26,
                               point3d46))
     #         PolylineArea polylineArea = self.outboundLineTop;
     point3dArray = [point3d26, point3d27]
     self.outboundLineTop.method_7(point3dArray)
     self.outboundLineBottom = PolylineArea()
     self.outboundLineBottom.method_1(point3d28)
     self.outboundLineBottom.method_3(
         point3d29,
         MathHelper.smethod_57(turnDirection1, point3d29, point3d30,
                               point3d48))
     #         PolylineArea polylineArea1 = self.outboundLineBottom;
     point3dArray = [point3d30, point3d31]
     self.outboundLineBottom.method_7(point3dArray)
     self.spiral = PolylineArea()
     if (MathHelper.calcDistance(point3d, point3d_0) <= num):
         point3d32_39 = []
         MathHelper.smethod_34(
             point3d_0,
             MathHelper.distanceBearingPoint(point3d_0,
                                             Unit.ConvertDegToRad(double_0),
                                             100), point3d, num,
             point3d32_39)
         point3d32 = point3d32_39[0]
         point3d39 = point3d32_39[1]
         point3d33 = MathHelper.distanceBearingPoint(
             point3d, MathHelper.getBearing(point3d, point3d38), num)
         self.spiral.Add(
             PolylineAreaPoint(
                 point3d32,
                 MathHelper.smethod_57(turnDirection, point3d32, point3d33,
                                       point3d)))
     else:
         point3d32, point3d33 = MathHelper.smethod_91(
             point3d_0, 0, point3d, num, turnDirection)
         self.spiral.method_1(point3d32)
     point3d34, point3d35 = MathHelper.smethod_91(point3d, num, point3d1,
                                                  num1, turnDirection)
     self.spiral.Add(
         PolylineAreaPoint(
             point3d33,
             MathHelper.smethod_57(turnDirection, point3d33, point3d34,
                                   point3d)))
     point3d33 = point3d34
     point3d34, point3d35 = MathHelper.smethod_91(point3d1, num1, point3d2,
                                                  num2, turnDirection)
     self.spiral.Add(
         PolylineAreaPoint(
             point3d33,
             MathHelper.smethod_57(turnDirection, point3d33, point3d34,
                                   point3d1)))
     point3d33 = point3d34
     point3d39 = MathHelper.distanceBearingPoint(
         point3d2, Unit.ConvertDegToRad(double_0 + 180), num2)
     self.spiral.Add(
         PolylineAreaPoint(
             point3d33,
             MathHelper.smethod_57(turnDirection, point3d33, point3d39,
                                   point3d2)))
     self.spiral.method_1(point3d39)
     self.method_0(point3dCollection)
     self.method_1(
         MathHelper.distanceBearingPoint(point3d1,
                                         Unit.ConvertDegToRad(double_0),
                                         num1),
         MathHelper.distanceBearingPoint(
             point3d2, Unit.ConvertDegToRad(double_0 + num30 * 90), num2),
         MathHelper.distanceBearingPoint(
             point3d2, Unit.ConvertDegToRad(double_0 + 180), num2))
     point3d56 = MathHelper.distanceBearingPoint(
         point3d_0, Unit.ConvertDegToRad(double_0 + 180), 1000)
     point3d39 = MathHelper.getIntersectionPoint(point3d_0, point3d56,
                                                 point3d7, point3d8)
     point3d6_58 = []
     MathHelper.smethod_34(point3d_0, point3d56, point3d3, num3,
                           point3d6_58)
     point3d6 = point3d6_58[0]
     point3d58 = point3d6_58[1]
     point3d6_59 = []
     MathHelper.smethod_34(point3d_0, point3d56, point3d4, num4,
                           point3d6_59)
     point3d6 = point3d6_59[0]
     point3d59 = point3d6_59[1]
     if (orientationType_0 == OrientationType.Right):
         if (not MathHelper.smethod_119(point3d39, point3d3, point3d7) or
                 not MathHelper.smethod_115(point3d39, point3d4, point3d8)):
             self.ptC = point3d58 if (MathHelper.calcDistance(
                 point3d_0, point3d58) > MathHelper.calcDistance(
                     point3d_0, point3d59)) else point3d59
         else:
             self.ptC = point3d39
     elif (not MathHelper.smethod_115(point3d39, point3d3, point3d7)
           or not MathHelper.smethod_119(point3d39, point3d4, point3d8)):
         self.ptC = point3d58 if (
             MathHelper.calcDistance(point3d_0, point3d58) >
             MathHelper.calcDistance(point3d_0, point3d59)) else point3d59
     else:
         self.ptC = point3d39
     num31 = MathHelper.calcDistance(self.ptC, point3d43)
     point3d60 = MathHelper.distanceBearingPoint(
         self.ptC,
         MathHelper.getBearing(self.ptC, point3d43) +
         math.asin(num16 / num31) * num30,
         math.sqrt(num31 * num31 - num16 * num16))
     point3d6_58 = []
     MathHelper.smethod_34(self.ptC, point3d60, point3d1, num1, point3d6_58)
     point3d6 = point3d6_58[0]
     point3d58 = point3d6_58[1]
     point3d6_59 = []
     MathHelper.smethod_34(self.ptC, point3d60, point3d2, num2, point3d6_59)
     point3d6 = point3d6_59[0]
     point3d59 = point3d6_59[1]
     self.ptR = point3d58 if (
         MathHelper.calcDistance(self.ptC, point3d58) >
         MathHelper.calcDistance(self.ptC, point3d59)) else point3d59
    def __init__(self, parent):
        QFrame.__init__(self, parent)
        #         self.frame_WindIA = QFrame(parent)
        sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.sizePolicy().hasHeightForWidth())
        self.setSizePolicy(sizePolicy)
        self.setFrameShape(QFrame.StyledPanel)
        self.setFrameShadow(QFrame.Raised)
        self.setObjectName(("frame_WindIA"))
        self.horizontalLayout_32 = QHBoxLayout(self)
        self.horizontalLayout_32.setSpacing(0)
        self.horizontalLayout_32.setMargin(0)
        self.horizontalLayout_32.setObjectName(("horizontalLayout_32"))
        self.lblIA = QLabel(self)
        self.lblIA.setMinimumSize(QSize(140, 0))
        self.lblIA.setMaximumSize(QSize(100, 16777215))
        font = QFont()
        font.setFamily(("Arial"))
        font.setBold(False)
        font.setWeight(50)
        self.lblIA.setFont(font)
        self.lblIA.setObjectName(("lblIA"))
        self.horizontalLayout_32.addWidget(self.lblIA)
        self.comboBox = QComboBox(self)
        sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.comboBox.sizePolicy().hasHeightForWidth())
        self.comboBox.setSizePolicy(sizePolicy)
        self.comboBox.setMinimumSize(QSize(60, 0))
        font = QFont()
        font.setFamily(("Arial"))
        font.setBold(False)
        font.setWeight(50)
        self.comboBox.setFont(font)
        self.comboBox.setObjectName(("comboBox"))
        self.horizontalLayout_32.addWidget(self.comboBox)
        self.speedBox = QLineEdit(self)
        sizePolicy = QSizePolicy(QSizePolicy.MinimumExpanding,
                                 QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.speedBox.sizePolicy().hasHeightForWidth())
        self.speedBox.setSizePolicy(sizePolicy)
        self.speedBox.setMinimumSize(QSize(70, 0))
        self.speedBox.setMaximumSize(QSize(16777215, 16777215))
        font = QFont()
        font.setFamily(("Arial"))
        font.setBold(False)
        font.setWeight(50)
        self.speedBox.setFont(font)
        self.speedBox.setObjectName(("speedBox"))
        self.horizontalLayout_32.addWidget(self.speedBox)

        self.altitude = Altitude.NaN()
        self.customValue = Speed(30).Knots
        self.comboBox.addItems(["ICAO", "UK", "Custom"])
        self.comboBox.currentIndexChanged.connect(self.changeWindType)
        self.comboBox.setCurrentIndex(0)
        self.lblIA.setText("Wind (kts):")
        self.speedBox.setEnabled(False)
 def get_speed(self):
     try:
         return Speed(float(self.speedBox.text()))
     except:
         return None
 def method_5(self):
     self.ui.txtWind.setText(str(round((Speed.smethod_3(Altitude(float(self.ui.txtAltitude.text()), AltitudeUnits.FT), self.group.AerodromeElevation)).Knots, 1)))
    def method_36_Construct(self, bool_0):
        polylines = []
        point3d5 = self.parametersPanel.pnlWaypoint.Point3d
        value = float(self.parametersPanel.txtTrack.Value)
        value1 = float(self.parametersPanel.txtRnpValue.text())
        speed = Speed(float(self.parametersPanel.txtIas.text()))
        altitude = Altitude(float(self.parametersPanel.txtAltitude.text()),
                            AltitudeUnits.FT)
        num1 = float(self.parametersPanel.txtIsa.text())
        value2 = float(self.parametersPanel.txtTime.text())
        speed1 = Speed(float(self.parametersPanel.pnlWind.speedBox.text()))
        num = 15 if (altitude.Feet >= 24500) else 23
        speed2 = Speed.smethod_0(speed, num1, altitude)
        metresPerSecond = value2 * 60 * speed2.MetresPerSecond
        num2 = math.pow(speed2.Knots + speed1.Knots, 2) / (
            34313 * math.tan(Unit.ConvertDegToRad(num))) * 1852
        num3 = value1 * 1852
        num4 = num2 * (1 - math.sin(Unit.ConvertDegToRad(20))) / (
            2 * math.cos(Unit.ConvertDegToRad(20)))
        num5 = value1 * 1852 + 3704
        if (num5 < 9260):
            num5 = 9260
        point3d4 = MathHelper.distanceBearingPoint(
            point3d5, Unit.ConvertDegToRad(value + 90), num2 /
            2) if (self.parametersPanel.cmbOrientation.currentText() !=
                   OrientationType.Left) else MathHelper.distanceBearingPoint(
                       point3d5, Unit.ConvertDegToRad(value - 90), num2 / 2)
        point3d6 = MathHelper.distanceBearingPoint(point3d4,
                                                   Unit.ConvertDegToRad(value),
                                                   num4)
        point3d7 = MathHelper.distanceBearingPoint(
            point3d4, Unit.ConvertDegToRad(value + 180), metresPerSecond)
        num6 = num2 / 2 + 1.414 * num3
        num7 = num2 / 2 + num3
        point3d8 = MathHelper.distanceBearingPoint(point3d6,
                                                   Unit.ConvertDegToRad(value),
                                                   num6)
        point3d9 = MathHelper.distanceBearingPoint(
            point3d6,
            Unit.ConvertDegToRad(value + 90) - math.acos(num7 / num6), num6)
        point3d10 = MathHelper.distanceBearingPoint(
            point3d7,
            Unit.ConvertDegToRad(value + 90) + math.acos(num7 / num6), num6)
        point3d11 = MathHelper.distanceBearingPoint(
            point3d7, Unit.ConvertDegToRad(value + 180), num6)
        point3d12 = MathHelper.distanceBearingPoint(
            point3d7,
            Unit.ConvertDegToRad(value - 90) - math.acos(num7 / num6), num6)
        point3d13 = MathHelper.distanceBearingPoint(
            point3d6,
            Unit.ConvertDegToRad(value - 90) + math.acos(num7 / num6), num6)
        point3d = MathHelper.getIntersectionPoint(
            point3d9,
            MathHelper.distanceBearingPoint(
                point3d9,
                MathHelper.getBearing(point3d6, point3d9) -
                Unit.ConvertDegToRad(90), 100), point3d8,
            MathHelper.distanceBearingPoint(point3d8,
                                            Unit.ConvertDegToRad(value + 90),
                                            100))
        point3d1 = MathHelper.getIntersectionPoint(
            point3d10,
            MathHelper.distanceBearingPoint(
                point3d10,
                MathHelper.getBearing(point3d7, point3d10) +
                Unit.ConvertDegToRad(90), 100), point3d11,
            MathHelper.distanceBearingPoint(point3d11,
                                            Unit.ConvertDegToRad(value + 90),
                                            100))
        point3d2 = MathHelper.getIntersectionPoint(
            point3d12,
            MathHelper.distanceBearingPoint(
                point3d12,
                MathHelper.getBearing(point3d7, point3d12) -
                Unit.ConvertDegToRad(90), 100), point3d11,
            MathHelper.distanceBearingPoint(point3d11,
                                            Unit.ConvertDegToRad(value - 90),
                                            100))
        point3d3 = MathHelper.getIntersectionPoint(
            point3d13,
            MathHelper.distanceBearingPoint(
                point3d13,
                MathHelper.getBearing(point3d6, point3d13) +
                Unit.ConvertDegToRad(90), 100), point3d8,
            MathHelper.distanceBearingPoint(point3d8,
                                            Unit.ConvertDegToRad(value - 90),
                                            100))
        polylines1 = []
        polylineArea = None
        if (bool_0):
            num8 = num2 / 2
            point3d14 = MathHelper.distanceBearingPoint(
                point3d4, Unit.ConvertDegToRad(value + 90), num8)
            point3d15 = MathHelper.distanceBearingPoint(
                point3d7, Unit.ConvertDegToRad(value + 90), num8)
            point3d16 = MathHelper.distanceBearingPoint(
                point3d7, Unit.ConvertDegToRad(value - 90), num8)
            point3d17 = MathHelper.distanceBearingPoint(
                point3d4, Unit.ConvertDegToRad(value - 90), num8)
            point3dArray = [point3d14, point3d15, point3d16, point3d17]
            polylineArea = PolylineArea(point3dArray)
            polylineArea.method_19(
                1, -1
            )  #MathHelper.smethod_57(TurnDirection.Right, point3d15, point3d16, point3d7))
            polylineArea.method_19(
                3, -1
            )  #MathHelper.smethod_57(TurnDirection.Right, point3d17, point3d14, point3d4))
            polylines1.append(polylineArea)
        point3dArray1 = [point3d9, point3d10, point3d12, point3d13]
        polylineArea1 = PolylineArea(point3dArray1)
        #         for point3d0 in point3dArray1:
        #             polyline1.Add(point3d0)
        polylineArea1.method_19(
            1,
            MathHelper.smethod_57(TurnDirection.Right, point3d10, point3d12,
                                  point3d7))
        polylineArea1.method_19(
            3,
            MathHelper.smethod_57(TurnDirection.Right, point3d13, point3d9,
                                  point3d6))
        #         polylineArea1.set_closed(True)
        #         polyline1.SetDatabaseDefaults();
        polylines1.append(polylineArea1)

        polylineAreaLineList = [
            PolylineArea(
                [polylineArea1[0].Position, polylineArea1[1].Position]),
            PolylineArea(
                [polylineArea1[2].Position, polylineArea1[3].Position])
        ]
        polylineAreaArc0 = PolylineArea()
        polylineAreaArc0.Add(polylineArea1[1])
        polylineAreaArc0.Add(PolylineAreaPoint(polylineArea1[2].Position))
        polylineAreaArc1 = PolylineArea()
        polylineAreaArc1.Add(polylineArea1[3])
        polylineAreaArc1.Add(PolylineAreaPoint(polylineArea1[0].Position))
        polylineAreaArcList = [polylineAreaArc0, polylineAreaArc1]
        num9 = num5 / 5
        polylineAreaArcListResult = []
        polylineAreaLineListResult = []
        for i in range(1, 6):
            polylineAreaL0 = polylineAreaLineList[0].getOffsetCurveNo(
                num9 * i, 4)
            polylineAreaLineListResult.append(polylineAreaL0)

            polylineAreaA0 = polylineAreaArcList[0].getOffsetCurveNo(
                num9 * i, 4)
            polylineAreaT = PolylineArea()
            polylineAreaT.Add(
                PolylineAreaPoint(
                    polylineAreaA0[0].Position,
                    MathHelper.smethod_60(
                        polylineAreaA0[0].Position,
                        polylineAreaA0[int(len(polylineAreaA0) / 2)].Position,
                        polylineAreaA0[len(polylineAreaA0) - 1].Position)))
            polylineAreaT.Add(
                PolylineAreaPoint(polylineAreaA0[len(polylineAreaA0) -
                                                 1].Position))
            polylineAreaArcListResult.append(polylineAreaT)

            polylineAreaL1 = polylineAreaLineList[1].getOffsetCurveNo(
                num9 * i, 4)
            polylineAreaLineListResult.append(polylineAreaL1)

            polylineAreaA1 = polylineAreaArcList[1].getOffsetCurveNo(
                num9 * i, 4)
            polylineAreaT = PolylineArea()
            polylineAreaT.Add(
                PolylineAreaPoint(
                    polylineAreaA1[0].Position,
                    MathHelper.smethod_60(
                        polylineAreaA1[0].Position,
                        polylineAreaA1[int(len(polylineAreaA1) / 2)].Position,
                        polylineAreaA1[len(polylineAreaA1) - 1].Position)))
            polylineAreaT.Add(
                PolylineAreaPoint(polylineAreaA1[len(polylineAreaA1) -
                                                 1].Position))
            polylineAreaArcListResult.append(polylineAreaT)

            polylineAreaLineListResult.append(
                PolylineArea([
                    polylineAreaL0[len(polylineAreaL0) - 1].Position,
                    polylineAreaA0[0].Position
                ]))
            polylineAreaLineListResult.append(
                PolylineArea([
                    polylineAreaA0[len(polylineAreaA0) - 1].Position,
                    polylineAreaL1[0].Position
                ]))
            polylineAreaLineListResult.append(
                PolylineArea([
                    polylineAreaL1[len(polylineAreaL1) - 1].Position,
                    polylineAreaA1[0].Position
                ]))
            polylineAreaLineListResult.append(
                PolylineArea([
                    polylineAreaA1[len(polylineAreaA1) - 1].Position,
                    polylineAreaL0[0].Position
                ]))

        return polylineAreaLineListResult, polylineAreaArcListResult, polylineArea