示例#1
0
    def __init__(self, me_groups, me_paths, remove_ime=False):
        self.me_groups = me_groups
        self.me_paths = me_paths
        self.me_groups.sort(key=lambda mg: mg.get_tight_bbox().left())
        if remove_ime:
            self.remove_ime_notation()
        # adjust_tight_bbox by path
        self.adjust_me_group_bbox_by_path()
        self.adjust_me_group_bbox_overlapping()

        tight_bboxes = [
            me_group.get_tight_bbox() for me_group in self.me_groups
        ]
        tight_bboxes.extend(
            [me_path.get_tight_bbox() for me_path in self.me_paths])
        if len(tight_bboxes) == 0:
            raise Exception("empty bboxes")

        self.set_tight_bbox(merge_bbox_list(tight_bboxes))

        adjusted_bboxes = [
            me_group.get_adjusted_bbox() for me_group in self.me_groups
        ]
        adjusted_bboxes.extend(
            [me_path.get_adjusted_bbox() for me_path in self.me_paths])
        self.set_adjusted_bbox(merge_bbox_list(adjusted_bboxes))
示例#2
0
 def __init__(self, me_groups):
     MEGroup.__init__(self)
     MEObject.__init__(self)
     self.me_groups = me_groups
     self.set_tight_bbox(
         merge_bbox_list(
             [me_group.get_tight_bbox() for me_group in self.me_groups]))
     self.set_adjusted_bbox(
         merge_bbox_list(
             [me_group.get_adjusted_bbox() for me_group in self.me_groups]))
示例#3
0
    def __init__(self, hs_group, open_fence_symbol, close_fence_symbol=None):
        """

        :param hs_group:
        :type hs_group: me_group.internal_me_group.MEHorSupOrSubGroup
        :param open_fence_symbo:
        :type open_fence_symbo: MESymbol
        :param close_fence_symbol:
        :type close_fence_symbol: MESymbol
        """
        MEGroup.__init__(self)
        MEObject.__init__(self)
        self.hs_group = hs_group
        self.open_fence_symbol = open_fence_symbol
        self.close_fence_symbol = close_fence_symbol

        tight_bbox_list = [
            hs_group.get_tight_bbox(),
            open_fence_symbol.get_tight_bbox(),
        ]
        if close_fence_symbol is not None:
            tight_bbox_list.append(close_fence_symbol.get_tight_bbox())
        merged_tight_bbox = merge_bbox_list(tight_bbox_list)
        self.set_tight_bbox(merged_tight_bbox)
        self.set_adjusted_bbox(hs_group.get_adjusted_bbox())
示例#4
0
 def __init__(self, base_me_group, upper_me_group):
     MEGroup.__init__(self)
     MEObject.__init__(self)
     self.base_me_group = base_me_group
     self.upper_me_group = upper_me_group
     self.set_adjusted_bbox(self.base_me_group.get_adjusted_bbox())
     self.set_tight_bbox(
         merge_bbox_list([
             self.base_me_group.get_tight_bbox(),
             self.upper_me_group.get_tight_bbox()
         ]))
示例#5
0
    def __init__(self, mg_mat):
        MEGroup.__init__(self)
        MEObject.__init__(self)
        self.mg_mat = mg_mat

        # tight bbox
        tmp_mg_list = []
        for r, mg_list in enumerate(self.mg_mat):
            for c, mg in enumerate(mg_list):
                tmp_mg_list.append(mg)
        merged_bbox = merge_bbox_list(
            [mg.get_tight_bbox() for mg in tmp_mg_list])
        self.set_tight_bbox(merged_bbox)

        # TODO, adjust bbox
        self.set_adjusted_bbox(merged_bbox)
示例#6
0
    def __init__(self, base_me_group, sup_me_group):
        """

        :param base_me_group: Base
        :param sup_me_group: sup part
        """
        MEGroup.__init__(self)
        MEObject.__init__(self)  # the bbox function
        self.base_me_group = base_me_group
        self.sup_me_group = sup_me_group
        self.set_adjusted_bbox(self.base_me_group.get_adjusted_bbox()
                               )  # based on the base me group
        self.set_tight_bbox(
            merge_bbox_list([
                self.base_me_group.get_tight_bbox(),
                self.sup_me_group.get_tight_bbox()
            ]))
示例#7
0
    def __init__(self, base_me_group, under_me_group):
        """

        :param base_me_group:
        :param under_me_group:
        """
        MEGroup.__init__(self)
        MEObject.__init__(self)
        self.base_me_group = base_me_group
        self.under_me_group = under_me_group
        # the adjusted is to calculate the relative relationship between groups
        self.set_adjusted_bbox(self.base_me_group.get_adjusted_bbox())
        # the tight bbox is for the assessment of the relationship of overlapping
        self.set_tight_bbox(
            merge_bbox_list([
                self.base_me_group.get_tight_bbox(),
                self.under_me_group.get_tight_bbox()
            ]))