def draw_path(self, gc, path, transform, rgbFace=None): """ TODO alpha TODO Hatch """ if rgbFace is not None: r, g, b, a = rgbFace else: r, g, b, a = gc.get_rgb() color = parse_color(rgba(r*255, g*255, b*255, a)) if rgbFace is not None: stroke_fill_context = self._renderer.fill(color=color) else: offset, sequence = gc.get_dashes() stroke_fill_context = self._renderer.stroke(color=color, line_width=gc.get_linewidth(), line_dash=sequence) transform = transform + \ Affine2D().scale(1.0, -1.0).translate(0.0, self.height) with stroke_fill_context as context: with context.context() as path_segments: for points, code in path.iter_segments(transform): if code == Path.MOVETO: path_segments.move_to(points[0], points[1]) elif code == Path.LINETO: path_segments.line_to(points[0], points[1]) elif code == Path.CURVE3: path_segments.quadratic_curve_to(points[0], points[1], points[2], points[3]) elif code == Path.CURVE4: path_segments.bezier_curve_to(points[0], points[1], points[2], points[3], points[4], points[5]) elif code == Path.CLOSEPOLY: path_segments.closed_path(points[0], points[1])
def to_toga_color(self, r, g, b, a): return parse_color(rgba(r * 255, g * 255, b * 255, a))