diff --git a/src/pyplaml/diagram_edge.py b/src/pyplaml/diagram_edge.py index 9606caf6ee1be9e5ccbebe77501c034d90046ced..966e68afced63c8b1e47fe6af7479d744fce3828 100644 --- a/src/pyplaml/diagram_edge.py +++ b/src/pyplaml/diagram_edge.py @@ -112,11 +112,15 @@ class DiagramEdge(DiagramObject): self.mo_mid_text_arrow.rotate(self.mo_mid_text_arrow.start_angle + angle_to_obj) def __line_updater(self): - (start, target) = self.__get_closest_points() + def_params = {"tip_length": 0.25, "stroke_width": 1, "color": BLACK} - self.mo_line = DashedLine(buff=0, stroke_width=1, tip_length=0.25, color=BLACK) if self.dotted \ - else Line(buff=0, stroke_width=1, tip_length=0.25, color=BLACK) - self.mo_line.put_start_and_end_on(start, target) + if self.source != self.target: + (start, target) = self.__get_closest_points() + self.mo_line = DashedLine(buff=0, **def_params) if self.dotted else Line(buff=0, **def_params) + self.mo_line.put_start_and_end_on(start, target) + else: + self.mo_line = Arc(**def_params, angle=-PI) + self.mo_line.put_start_and_end_on(self.source.get_edge_center(UP), self.source.get_edge_center(RIGHT)) self.__prepare_line_tips()