1#!/usr/bin/env python 2#coding:utf-8 3# Author: mozman --<mozman@gmx.at> 4# Purpose: pattern module 5# Created: 29.10.2010 6# Copyright (C) 2010, Manfred Moitzi 7# License: MIT License 8 9from svgwrite.base import BaseElement 10from svgwrite.mixins import XLink, ViewBox, Transform, Presentation 11from svgwrite.utils import is_string 12 13class Pattern(BaseElement, XLink, ViewBox, Transform, Presentation): 14 """ 15 A pattern is used to fill or stroke an object using a pre-defined graphic 16 object which can be replicated ("tiled") at fixed intervals in x and y to 17 cover the areas to be painted. Patterns are defined using a `pattern` element 18 and then referenced by properties `fill` and `stroke` on a given graphics 19 element to indicate that the given element shall be filled or stroked with 20 the referenced pattern. 21 """ 22 elementname = 'pattern' 23 transformname = 'patternTransform' 24 25 def __init__(self, insert=None, size=None, inherit=None, **extra): 26 """ 27 :param 2-tuple insert: base point of the pattern (**x**, **y**) 28 :param 2-tuple size: size of the pattern (**width**, **height**) 29 :param inherit: pattern inherits properties from `inherit` see: **xlink:href** 30 31 """ 32 super(Pattern, self).__init__(**extra) 33 if insert is not None: 34 self['x'] = insert[0] 35 self['y'] = insert[1] 36 if size is not None: 37 self['width'] = size[0] 38 self['height'] = size[1] 39 if inherit is not None: 40 if is_string(inherit): 41 self.set_href(inherit) 42 else: 43 self.set_href(inherit.get_iri()) 44 45 if self.debug: 46 self.validator.check_all_svg_attribute_values(self.elementname, self.attribs) 47 48 def get_paint_server(self, default='none'): 49 """ Returns the <FuncIRI> of the gradient. """ 50 return "%s %s" % (self.get_funciri(), default) 51