···
from . import elements as elementsModule
···
self.viewBox = (self.viewBox[0], -self.viewBox[1]-self.viewBox[3],
self.viewBox[2], self.viewBox[3])
···
return self.renderWidth, self.height * s
return self.renderWidth, self.renderHeight
-
def draw(self, obj, **kwargs):
if not hasattr(obj, 'writeSvgElement'):
···
-
def append(self, element):
-
self.elements.append(element)
-
def extend(self, iterable):
-
self.elements.extend(iterable)
def insert(self, i, element):
self.elements.insert(i, element)
def remove(self, element):
···
self.otherDefs.extend(elements)
def appendDef(self, element):
self.otherDefs.append(element)
def asSvg(self, outputFile=None):
returnString = outputFile is None
···
-
for element in self.elements:
element.writeSvgDefs(idGen, isDuplicate, outputFile, False)
···
outputFile.write('</defs>\n')
# Generate ids for normal elements
prevDefSet = set(prevSet)
-
for element in self.elements:
element.writeSvgElement(idGen, isDuplicate, outputFile, True)
-
for element in self.elements:
element.writeSvgElement(idGen, isDuplicate, outputFile, False)
···
+
from collections import defaultdict
from . import elements as elementsModule
···
self.viewBox = (self.viewBox[0], -self.viewBox[1]-self.viewBox[3],
self.viewBox[2], self.viewBox[3])
+
self.orderedElements = defaultdict(list)
···
return self.renderWidth, self.height * s
return self.renderWidth, self.renderHeight
+
def draw(self, obj, *, z=None, **kwargs):
if not hasattr(obj, 'writeSvgElement'):
···
+
self.extend(elements, z=z)
+
def append(self, element, *, z=None):
+
self.orderedElements[z].append(element)
+
self.elements.append(element)
+
def extend(self, iterable, *, z=None):
+
self.orderedElements[z].extend(iterable)
+
self.elements.extend(iterable)
def insert(self, i, element):
self.elements.insert(i, element)
def remove(self, element):
···
self.otherDefs.extend(elements)
def appendDef(self, element):
self.otherDefs.append(element)
+
''' Returns self.elements and self.orderedElements as a single list. '''
+
output = list(self.elements)
+
for z in sorted(self.orderedElements):
+
output.extend(self.orderedElements[z])
def asSvg(self, outputFile=None):
returnString = outputFile is None
···
+
allElements = self.allElements()
+
for element in allElements:
element.writeSvgDefs(idGen, isDuplicate, outputFile, False)
···
outputFile.write('</defs>\n')
# Generate ids for normal elements
prevDefSet = set(prevSet)
+
for element in allElements:
element.writeSvgElement(idGen, isDuplicate, outputFile, True)
+
for element in allElements:
element.writeSvgElement(idGen, isDuplicate, outputFile, False)