示例#1
0
    def drawTransition(self, fo_widget, rt):
        """
        DOCUMENT ME!
        """
        # check input
        assert fo_widget

        i = 0
        while (i < len(rt._aoItem)):

            lo_painter = QtGui.QPainter(fo_widget)
            assert lo_painter is not None

            lo_painter.setPen(gdata.G_DCT_COLORS["transition"])

            if (i + 1) < len(rt._aoItem):
                l_pos = fo_widget.viewport.translate_pos(fo_widget._airspace.getPosition(rt._aoItem[i].s_name))

                lf_x = l_pos.f_x
                lf_y = l_pos.f_y

                l_pos = fo_widget.viewport.translate_pos(fo_widget._airspace.getPosition(rt._aoItem[i + 1].s_name))
                lo_painter.drawLine(tMath.round(lf_x, 0), tMath.round(
                    lf_y, 0), tMath.round(l_pos.f_x, 0), tMath.round(l_pos.f_y, 0))

            del lo_painter

            self.draw_waypoint(fo_widget, rt._aoItem[i].s_name, True)

            i += 1
示例#2
0
    def draw_trajetoria(self, fo_widget, f_trj):
        """
        DOCUMENT ME!
        """
        # check input
        assert fo_widget
        assert f_trj

        # get blip size
        lf_blip_size = fo_widget.viewport.f_blip_size

        # create painter
        lo_painter = QtGui.QPainter(fo_widget)
        assert lo_painter is not None

        # create pen
        l_pen = QtGui.QPen()
        assert l_pen

        # for all breakpoints...
        for l_ndx, l_brk in enumerate(f_trj.lst_trj_brk):
            # get breakpoint id
            ls_id = (ldefs.D_FMT_TRJ + "-{}").format(f_trj.i_prc_id,
                                                     l_brk.i_brk_id)

            # breakpoint position
            l_pos = fo_widget.viewport.translate_pos(
                pll.CPosLatLng(l_brk.f_brk_lat, l_brk.f_brk_lng))

            # not first breakpoint ?
            if 0 != l_ndx:
                # set line colour
                l_pen.setColor(gdata.G_DCT_COLORS["trajectory"])
                # set line style
                l_pen.setStyle(QtCore.Qt.DashDotLine)
                # seleciona a caneta
                lo_painter.setPen(l_pen)

                # draw line
                lo_painter.drawLine(tMath.round(l_pos_ant.f_x, 0),
                                    tMath.round(l_pos_ant.f_y, 0),
                                    tMath.round(l_pos.f_x, 0),
                                    tMath.round(l_pos.f_y, 0))

            # select colour & font
            lo_painter.setPen(gdata.G_DCT_COLORS["trajectory_name"])
            lo_painter.setFont(QtGui.QFont("Arial", int(lf_blip_size)))

            # draw text (indicativo do breakpoint)
            lo_painter.drawText(int(l_pos.f_x - lf_blip_size * 2),
                                int(l_pos.f_y - lf_blip_size), ls_id)

            # save last position
            l_pos_ant = l_pos

        # free painter
        del lo_painter
示例#3
0
    def draw_subida(self, fo_widget, f_sub):
        """
        DOCUMENT ME!
        """
        # check input
        assert fo_widget

        # get blip size
        lf_blip_size = fo_widget.viewport.f_blip_size

        # create painter
        lo_painter = QtGui.QPainter(fo_widget)
        assert lo_painter is not None

        # create pen
        l_pen = QtGui.QPen()
        assert l_pen

        # for all breakpoints...
        for l_ndx, l_brk in enumerate(f_sub.lst_sub_brk):
            # get breakpoint id
            ls_id = (ldefs.D_FMT_SUB + "-{}").format(f_sub.i_prc_id,
                                                     l_brk.i_brk_id)

            # breakpoint position
            l_pos = fo_widget.viewport.translate_pos(
                pll.CPosLatLng(l_brk.f_brk_lat, l_brk.f_brk_lng))

            # not first breakpoint ?
            if 0 != l_ndx:
                # set line colour
                l_pen.setColor(gdata.G_DCT_COLORS["subida"])
                # set line style
                l_pen.setStyle(QtCore.Qt.DashLine)
                # seleciona a caneta
                lo_painter.setPen(l_pen)

                # draw line
                lo_painter.drawLine(tMath.round(l_pos_ant.f_x, 0),
                                    tMath.round(l_pos_ant.f_y, 0),
                                    tMath.round(l_pos.f_x, 0),
                                    tMath.round(l_pos.f_y, 0))

            # seleciona a cor e fonte do texto
            lo_painter.setPen(gdata.G_DCT_COLORS["name"])
            lo_painter.setFont(QtGui.QFont("Arial", int(lf_blip_size)))

            # desenha o texto (indicativo do breakpoint)
            lo_painter.drawText(int(l_pos.f_x - lf_blip_size * 2),
                                int(l_pos.f_y - lf_blip_size), ls_id)

            # salva a posição anterior
            l_pos_ant = l_pos

        # remove o painter
        del lo_painter
示例#4
0
    def pause(self, f_vVal):
        """
        DOCUMENT ME!
        """
        self.__v_paused = f_vVal

        if self.__v_paused:
            self.killTimer(self.__i_radar_timer)
            self.killTimer(self.__i_aircraft_timer)

        else:
            self.__i_radar_timer = self.startTimer(
                tMath.round(self.__f_radar_interval, 0))
            self.__i_aircraft_timer = self.startTimer(
                tMath.round(self.__f_update_interval, 0))
示例#5
0
    def drawDeparture(self, fo_widget, rt):
        """
        DOCUMENT ME!
        """
        # check input
        assert fo_widget

        i = 0
        pen = QtGui.QPen()
        name = ""

        while i < len(rt._aoItem):
            name = rt._aoItem[i].s_name
            l_log.info("name: " + str(name))

            lo_painter = QtGui.QPainter(fo_widget)
            assert lo_painter is not None

            pen.setColor(gdata.G_DCT_COLORS["departure"])
            pen.setStyle(QtCore.Qt.DashLine)

            lo_painter.setPen(pen)

            if (i + 1) < len(rt._aoItem):

                l_pos = fo_widget.viewport.translate_pos(
                    fo_widget._airspace.getPosition(rt._aoItem[i].s_name))
                lf_x = l_pos.f_x
                lf_y = l_pos.f_y
                l_pos = fo_widget.viewport.translate_pos(
                    fo_widget._airspace.getPosition(rt._aoItem[i + 1].s_name))

                lo_painter.drawLine(tMath.round(lf_x, 0), tMath.round(lf_y, 0),
                                    tMath.round(l_pos.f_x, 0),
                                    tMath.round(l_pos.f_y, 0))

            del lo_painter

            if name[2:len(name) - 1].isdigit():
                self.draw_waypoint(fo_widget, rt._aoItem[i].s_name, True)

            else:
                self.draw_waypoint(fo_widget, rt._aoItem[i].s_name, False)

            i += 1
示例#6
0
    def drawArrival(self, fo_widget, rt):
        """
        DOCUMENT ME!
        """
        # check input
        assert fo_widget

        i = 0
        while i < len(rt._aoItem):

            name = rt._aoItem[i].sName

            lo_painter = QtGui.QPainter(fo_widget)
            assert lo_painter is not None

            lo_painter.setPen(gdata.G_DCT_COLORS["arrival"])

            if (i + 1) < len(rt._aoItem):

                l_pos = fo_widget.viewport.translate_pos(
                    fo_widget._airspace.getPosition(rt._aoItem[i].sName))
                assert l_pos is not None

                lf_x = l_pos.f_x
                lf_y = l_pos.f_y

                l_pos = fo_widget.viewport.translate_pos(
                    fo_widget._airspace.getPosition(rt._aoItem[i + 1].sName))
                assert l_pos is not None

                lo_painter.drawLine(tMath.round(lf_x, 0), tMath.round(lf_y, 0),
                                    tMath.round(l_pos.f_x, 0),
                                    tMath.round(l_pos.f_y, 0))

            del lo_painter

            if name[2:].isdigit():
                self.draw_waypoint(fo_widget, rt._aoItem[i].sName, True)

            else:
                self.draw_waypoint(fo_widget, rt._aoItem[i].sName, False)

            i += 1