X-Git-Url: https://git.ao2.it/flexagon-toolkit.git/blobdiff_plain/2fde23a2e920ed2dab6dfd661077c251f28578db..1cd1b488690ff3007df258adbfb198f5bdedfb80:/src/diagram/svgwrite_diagram.py diff --git a/src/diagram/svgwrite_diagram.py b/src/diagram/svgwrite_diagram.py index 1da39a2..186d134 100755 --- a/src/diagram/svgwrite_diagram.py +++ b/src/diagram/svgwrite_diagram.py @@ -138,6 +138,34 @@ class SvgwriteDiagram(Diagram): self._stroke(line, stroke_color) self.add(line) + def draw_circle(self, cx, cy, radius=10.0, + stroke_color=None, + fill_color=(0, 0, 0, 0.5)): + circle = self.svg.circle((cx, cy), radius) + + self._fill(circle, fill_color) + self._stroke(circle, stroke_color) + + self.add(circle) + + def draw_line(self, x1, y1, x2, y2, stroke_color=(0, 0, 0, 1)): + line = self.svg.line((x1, y1), (x1, y2)) + self._stroke(line, stroke_color) + + self.add(line) + + def draw_rect(self, x, y, width, height, theta=0, + stroke_color=None, + fill_color=(1, 1, 1, 0.8)): + rect = self.svg.rect((x, y), (width, height)) + + rect['transform'] = 'rotate(%f, %f, %f)' % (degrees(theta), x, y) + + self._fill(rect, fill_color) + self._stroke(rect, stroke_color) + + self.add(rect) + def draw_centered_text(self, cx, cy, text, theta=0.0, color=(0, 0, 0), align_baseline=False, @@ -158,3 +186,6 @@ class SvgwriteDiagram(Diagram): if bb_stroke_color or bb_fill_color: warnings.warn("Drawing the bounding box has not been implemented yet.") + + # XXX: this is just a very quick and dirty estimate to advance the text + return self.font_size * len(text) / 2