From 3b628681d6b4be6da0d166855ce8f64abb2c1505 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Tue, 7 Nov 2017 21:52:51 +0100 Subject: [PATCH] render levels_on_top of current level --- src/c3nav/mapdata/render/data.py | 7 +++++-- src/c3nav/mapdata/render/engines/opengl.py | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/c3nav/mapdata/render/data.py b/src/c3nav/mapdata/render/data.py index 7bdcdcef..dcc14fdb 100644 --- a/src/c3nav/mapdata/render/data.py +++ b/src/c3nav/mapdata/render/data.py @@ -43,6 +43,9 @@ class LevelRenderData: map_history = MapHistory.open_level(level.pk, 'base') + sublevels = tuple(sublevel for sublevel in levels + if sublevel.on_top_of_id == level.pk or sublevel.base_altitude <= level.base_altitude) + level_crop_to = {} # choose a crop area for each level. non-intermediate levels (not on_top_of) below the one that we are @@ -50,7 +53,7 @@ class LevelRenderData: # levels above them. crop_to = None primary_level_count = 0 - for sublevel in reversed(levels[:i + 1]): + for sublevel in reversed(sublevels): geoms = single_level_geoms[sublevel.pk] if geoms.holes is not None: @@ -68,7 +71,7 @@ class LevelRenderData: render_data = LevelRenderData() render_data.access_restriction_affected = {} - for sublevel in levels[:i + 1]: + for sublevel in sublevels: old_geoms = single_level_geoms[sublevel.pk] crop_to = level_crop_to[sublevel.pk] diff --git a/src/c3nav/mapdata/render/engines/opengl.py b/src/c3nav/mapdata/render/engines/opengl.py index 9c30f029..92b90281 100644 --- a/src/c3nav/mapdata/render/engines/opengl.py +++ b/src/c3nav/mapdata/render/engines/opengl.py @@ -4,13 +4,13 @@ from functools import lru_cache from itertools import chain from typing import Optional, Union -import meshpy.triangle as triangle -import ModernGL import numpy as np from PIL import Image from shapely.geometry import CAP_STYLE, JOIN_STYLE, MultiPolygon, Polygon from shapely.ops import unary_union +import meshpy.triangle as triangle +import ModernGL from c3nav.mapdata.render.engines.base import FillAttribs, RenderEngine, StrokeAttribs from c3nav.mapdata.utils.geometry import assert_multipolygon