From b266c3f3913e436975d7ed336cc552d75e2e1544 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Thu, 6 Dec 2018 18:01:13 +0100 Subject: [PATCH] support center option in openscad renderer --- src/c3nav/mapdata/render/engines/openscad.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/c3nav/mapdata/render/engines/openscad.py b/src/c3nav/mapdata/render/engines/openscad.py index 85e7b037..74122957 100644 --- a/src/c3nav/mapdata/render/engines/openscad.py +++ b/src/c3nav/mapdata/render/engines/openscad.py @@ -58,9 +58,16 @@ class OpenScadCommand(AbstractOpenScadElem): class OpenSCADEngine(Base3DEngine): filetype = 'scad' - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.root = OpenScadRoot() + def __init__(self, *args, center=True, **kwargs): + super().__init__(*args, center=center, **kwargs) + + if center: + self.root = OpenScadBlock('translate([%f, %f, 0])' % ( + -(self.maxx - self.minx) * self.scale / 2, + -(self.maxy - self.miny) * self.scale / 2 + )) + else: + self.root = OpenScadRoot() def custom_render(self, level_render_data, access_permissions, full_levels): if full_levels: