Exemple #1
0
def _text_to(view, pad, r, mat, textcol_a):
    mat = mat.dot(pad.translate_mat)

    # zero-out rotation
    mat[0:2, 0:2] = view.viewState.glMatrix[0:2, 0:2]

    # Hack
    text_height_px = view.viewState.scale_factor * r.height

    # Hack
    pname = pad.pad_name

    if text_height_px < 14:
        alpha = 0
        textcol_a[3] = (text_height_px - 6) / 8

        if text_height_px < 6:
            return
    elif 14 <= text_height_px <= TRANSITION_POINT_1:
        alpha = 0
    elif text_height_px > TRANSITION_POINT_1:
        if pname != "":
            if text_height_px > TRANSITION_POINT_2:
                alpha = 1
            else:
                alpha = (text_height_px - TRANSITION_POINT_1) / (
                    TRANSITION_POINT_2 - TRANSITION_POINT_1)
        else:
            alpha = 0

    h_delta_1 = r.height * (1 - RATIO * alpha)
    h_delta_2 = r.height * (RATIO - RGAP) * alpha

    r_top = Rect.fromRect(r)
    r_top.bottom = r_top.top - h_delta_1

    r.top = r.bottom + h_delta_2

    view.text_batch.submit_text_box(mat, "%s" % pad.pad_no, r_top, textcol_a,
                                    None)
    if alpha:
        view.text_batch.submit_text_box(mat, "%s" % pname, r, textcol_a, None)
Exemple #2
0
def _text_to(view, pad, r, mat, textcol_a):
    mat = mat.dot(pad.translate_mat)

    # zero-out rotation
    mat[0:2,0:2] = view.viewState.glMatrix[0:2,0:2]

    # Hack
    text_height_px = view.viewState.scale_factor * r.height

    # Hack
    pname = pad.pad_name

    if text_height_px < 14:
        alpha = 0
        textcol_a[3] = (text_height_px - 6) / 8

        if text_height_px < 6:
            return
    elif 14 <= text_height_px <= TRANSITION_POINT_1:
        alpha = 0
    elif text_height_px > TRANSITION_POINT_1:
        if pname != "":
            if text_height_px > TRANSITION_POINT_2:
                alpha = 1
            else:
                alpha = (text_height_px - TRANSITION_POINT_1) / (TRANSITION_POINT_2 - TRANSITION_POINT_1)
        else:
            alpha = 0

    h_delta_1 = r.height * (1 - RATIO * alpha)
    h_delta_2 = r.height * (RATIO - RGAP) * alpha

    r_top = Rect.fromRect(r)
    r_top.bottom = r_top.top - h_delta_1

    r.top = r.bottom + h_delta_2

    view.text_batch.submit_text_box(mat, "%s" % pad.pad_no, r_top, textcol_a, None)
    if alpha:
        view.text_batch.submit_text_box(mat, "%s" % pname, r, textcol_a, None)
Exemple #3
0
    def update_if_necessary(self):
        if not self.__needs_rebuild():
            return

        components = self.__project.artwork.components

        self.__top_side_pads.restart()
        self.__top_side_labels.restart()
        self.__bottom_side_labels.restart()
        self.__bottom_side_pads.restart()

        for cmp in components:
            if cmp.side == SIDE.Top:
                pad_batch = self.__top_side_pads
            else:
                pad_batch = self.__bottom_side_pads

            for pad in cmp.get_pads():
                if pad.is_through():
                    r = Rect.fromCenterSize(Point2(0, 0), pad.l * 0.6,
                                            pad.w * 0.6)

                else:
                    r = Rect.fromCenterSize(Point2(0, 0), pad.l * 0.8,
                                            pad.w * 0.8)

                mat = cmp.matrix.dot(pad.translate_mat)

                r_top = Rect.fromRect(r)

                s = "%s: %s" % (pad.pad_no, pad.pad_name)

                ti = pad_batch.get_string(s)
                text_mat = mat.dot(ti.get_render_to_mat(r_top))
                pad_batch.add(text_mat, ti)

        self.__top_side_pads.prepare()
        self.__top_side_labels.prepare()
        self.__bottom_side_labels.prepare()
        self.__bottom_side_pads.prepare()
Exemple #4
0
    def update_if_necessary(self):
        if not self.__needs_rebuild():
            return

        components = self.__project.artwork.components

        self.__top_side_pads.restart()
        self.__top_side_labels.restart()
        self.__bottom_side_labels.restart()
        self.__bottom_side_pads.restart()

        for cmp in components:
            if cmp.side == SIDE.Top:
                pad_batch = self.__top_side_pads
            else:
                pad_batch = self.__bottom_side_pads

            for pad in cmp.get_pads():
                if pad.is_through():
                    r = Rect.fromCenterSize(Point2(0,0), pad.l * 0.6, pad.w * 0.6)

                else:
                    r = Rect.fromCenterSize(Point2(0,0), pad.l*0.8, pad.w*0.8)

                mat = cmp.matrix.dot(pad.translate_mat)

                r_top = Rect.fromRect(r)

                s = "%s: %s" % (pad.pad_no, pad.pad_name)

                ti = pad_batch.get_string(s)
                text_mat = mat.dot(ti.get_render_to_mat(r_top))
                pad_batch.add(text_mat, ti)

        self.__top_side_pads.prepare()
        self.__top_side_labels.prepare()
        self.__bottom_side_labels.prepare()
        self.__bottom_side_pads.prepare()