diff --git a/src/c3nav/mapdata/render/engines/base3d.py b/src/c3nav/mapdata/render/engines/base3d.py index 987c3036..45a52b14 100644 --- a/src/c3nav/mapdata/render/engines/base3d.py +++ b/src/c3nav/mapdata/render/engines/base3d.py @@ -13,12 +13,9 @@ class Base3DEngine(RenderEngine): self.vertices = [] - scale_x = self.scale / self.width * 2 - scale_y = self.scale / self.height * 2 - scale_z = (scale_x+scale_y)/2 + self.np_scale = np.array((self.scale, self.scale, self.scale)) + self.np_offset = np.array((-self.minx * self.scale, -self.maxy * self.scale, 0)) - self.np_scale = np.array((scale_x, -scale_y, scale_z)) - self.np_offset = np.array((-self.minx * scale_x - 1, self.maxy * scale_y - 1, 0)) def _append_to_vertices(self, vertices, append=None): if append is not None: diff --git a/src/c3nav/mapdata/render/engines/opengl.py b/src/c3nav/mapdata/render/engines/opengl.py index 1d63b4a0..aac9996d 100644 --- a/src/c3nav/mapdata/render/engines/opengl.py +++ b/src/c3nav/mapdata/render/engines/opengl.py @@ -133,6 +133,16 @@ class OpenGLWorker(threading.Thread): class OpenGLEngine(Base3DEngine): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + scale_x = self.scale / self.width * 2 + scale_y = self.scale / self.height * 2 + scale_z = (scale_x+scale_y) / 2 + + self.np_scale = np.array((scale_x, -scale_y, scale_z)) + self.np_offset = np.array((-self.minx * scale_x - 1, self.maxy * scale_y - 1, 0)) + def _add_geometry(self, geometry, fill: Optional[FillAttribs], stroke: Optional[StrokeAttribs], **kwargs): if fill is not None: