Diagram.py: simplify draw_rect_from_center() by reusing draw_rect()
authorAntonio Ospite <ao2@ao2.it>
Fri, 12 Jun 2015 20:27:47 +0000 (22:27 +0200)
committerAntonio Ospite <ao2@ao2.it>
Fri, 12 Jun 2015 20:37:22 +0000 (22:37 +0200)
Diagram.py

index ff5a500..8cb41ad 100755 (executable)
@@ -161,30 +161,17 @@ class Diagram(object):
                               stroke=False, stroke_color=[0, 0, 0, 0.5]):
         cr = self.cr
 
+        # the position of the center of a rectangle at (0,0)
         mx = width / 2.0
         my = height / 2.0
 
+        # calculate the position of the bottom-left corner after rotating the
+        # rectangle around the center
         rx = cx - (mx * cos(theta) - my * sin(theta))
         ry = cy - (mx * sin(theta) + my * cos(theta))
 
-        cr.save()
-        cr.translate(rx, ry)
-        cr.rotate(theta)
-
-        if fill:
-            cr.rectangle(0, 0, width, height)
-            r, g, b, a = self.color_to_rgba(fill_color)
-            cr.set_source_rgba(r, g, b, a)
-            cr.fill()
-
-        if stroke:
-            cr.rectangle(0, 0, width, height)
-            r, g, b, a = self.color_to_rgba(stroke_color)
-            cr.set_source_rgba(r, g, b, a)
-            cr.stroke()
-            self.draw_dot(0, 0, 3.0, stroke_color)
-
-        cr.restore()
+        self.draw_rect(rx, ry, width, height, theta, fill, fill_color, stroke,
+                       stroke_color)
 
     def draw_rect(self, x, y, width, height, theta=0, fill=True, fill_color=[1, 1, 1, 0.8],
                   stroke=False, stroke_color=[0, 0, 0, 0.5]):