Add new "mirror" key word to the where parameter of Boxes.move()

This commit is contained in:
Florian Festi 2018-10-19 19:05:07 +02:00
parent c45b5cd30b
commit a4b5af98e2
1 changed files with 7 additions and 1 deletions

View File

@ -938,8 +938,10 @@ class Boxes:
def move(self, x, y, where, before=False): def move(self, x, y, where, before=False):
"""Intended to be used by parts """Intended to be used by parts
where can be combinations of "up", "down", "left", "right" and "only" where can be combinations of "up" or "down", "left" or "right", "only",
"mirror"
when "only" is included the move is only done when before is True when "only" is included the move is only done when before is True
"mirror" will flip the part along the y axis
The function returns whether actual drawing of the part The function returns whether actual drawing of the part
should be omited. should be omited.
@ -963,6 +965,7 @@ class Boxes:
"left": (-x, 0, True), "left": (-x, 0, True),
"right": (x, 0, False), "right": (x, 0, False),
"only": (0, 0, None), "only": (0, 0, None),
"mirror": (0, 0, None),
} }
if not before: if not before:
@ -984,6 +987,9 @@ class Boxes:
self.ctx.save() self.ctx.save()
if self.debug: if self.debug:
self.ctx.rectangle(0, 0, x, y) self.ctx.rectangle(0, 0, x, y)
if "mirror" in terms:
self.moveTo(x, 0)
self.ctx.scale(-1, 1)
self.moveTo(self.spacing / 2.0, self.spacing / 2.0) self.moveTo(self.spacing / 2.0, self.spacing / 2.0)
return dontdraw return dontdraw