diff --git a/src/pyplaml/diagram_object.py b/src/pyplaml/diagram_object.py index dd00ec06fd49e3bf1f9f00a7fbacd08ff81aa9ef..84ed981d85c126865b04ee16c7b6bb2dd77a892e 100644 --- a/src/pyplaml/diagram_object.py +++ b/src/pyplaml/diagram_object.py @@ -8,6 +8,9 @@ import pyplaml class DiagramObject(VGroup): + """ + Base class for all diagram objects. + """ def __init__(self, name: str, **kwargs): super().__init__(**kwargs) @@ -19,6 +22,9 @@ class DiagramObject(VGroup): @abstractmethod def redraw(self): + """ + Resets the VGroup of an objects and creates it from scratch. + """ self.submobjects = [] def add_note(self, note: pyplaml.DiagramNote, direction: pyplaml.Direction) -> pyplaml.DiagramNote: @@ -32,23 +38,29 @@ class DiagramObject(VGroup): return note def get_boundary_points(self): + """ + Returns a dictionary of all corners and points in between them. + """ + + def lerp(t: float, a, b): + return (1 - t) * a + t * b + ul = self.get_boundary_point(direction=UL) ur = self.get_boundary_point(direction=UR) dl = self.get_boundary_point(direction=DL) dr = self.get_boundary_point(direction=DR) - u = self.lerp(0.5, ul, ur) - r = self.lerp(0.5, ur, dr) - d = self.lerp(0.5, dl, dr) - l = self.lerp(0.5, ul, dl) + u = lerp(0.5, ul, ur) + r = lerp(0.5, ur, dr) + d = lerp(0.5, dl, dr) + l = lerp(0.5, ul, dl) return {'UL': ul, 'UR': ur, 'UP': u, 'DL': dl, 'DR': dr, 'R': r, 'D': d, 'L': l, } - @staticmethod - def lerp(t: float, a, b): - return (1 - t) * a + t * b - def append_to_diagram(self, diagram: pyplaml.Diagram): + """ + Appends an object to a diagram. + """ key = self.get_key() if not key in diagram.objects: diagram[key] = self