render levels_on_top of current level

This commit is contained in:
Laura Klünder 2017-11-07 21:52:51 +01:00
parent 0e23945be4
commit 3b628681d6
2 changed files with 7 additions and 4 deletions

View file

@ -43,6 +43,9 @@ class LevelRenderData:
map_history = MapHistory.open_level(level.pk, 'base') 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 = {} level_crop_to = {}
# choose a crop area for each level. non-intermediate levels (not on_top_of) below the one that we are # 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. # levels above them.
crop_to = None crop_to = None
primary_level_count = 0 primary_level_count = 0
for sublevel in reversed(levels[:i + 1]): for sublevel in reversed(sublevels):
geoms = single_level_geoms[sublevel.pk] geoms = single_level_geoms[sublevel.pk]
if geoms.holes is not None: if geoms.holes is not None:
@ -68,7 +71,7 @@ class LevelRenderData:
render_data = LevelRenderData() render_data = LevelRenderData()
render_data.access_restriction_affected = {} render_data.access_restriction_affected = {}
for sublevel in levels[:i + 1]: for sublevel in sublevels:
old_geoms = single_level_geoms[sublevel.pk] old_geoms = single_level_geoms[sublevel.pk]
crop_to = level_crop_to[sublevel.pk] crop_to = level_crop_to[sublevel.pk]

View file

@ -4,13 +4,13 @@ from functools import lru_cache
from itertools import chain from itertools import chain
from typing import Optional, Union from typing import Optional, Union
import meshpy.triangle as triangle
import ModernGL
import numpy as np import numpy as np
from PIL import Image from PIL import Image
from shapely.geometry import CAP_STYLE, JOIN_STYLE, MultiPolygon, Polygon from shapely.geometry import CAP_STYLE, JOIN_STYLE, MultiPolygon, Polygon
from shapely.ops import unary_union 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.render.engines.base import FillAttribs, RenderEngine, StrokeAttribs
from c3nav.mapdata.utils.geometry import assert_multipolygon from c3nav.mapdata.utils.geometry import assert_multipolygon