diff --git a/src/c3nav/mapdata/render/engines/blender.py b/src/c3nav/mapdata/render/engines/blender.py index 9a71efe2..67c6b3d8 100644 --- a/src/c3nav/mapdata/render/engines/blender.py +++ b/src/c3nav/mapdata/render/engines/blender.py @@ -259,6 +259,9 @@ class BlenderEngine(Base3DEngine): if geoms.on_top_of_id is None: buildings = geoms.buildings + holes = geoms.holes.difference(restricted_spaces) + buildings = buildings.difference(holes) + self._add_polygon('Level %s' % geoms.short_label, buildings, geoms.lower_bound, geoms.upper_bound) self._set_last_polygon_to_main() diff --git a/src/c3nav/mapdata/render/renderdata.py b/src/c3nav/mapdata/render/renderdata.py index b12cf9ff..e052fd9a 100644 --- a/src/c3nav/mapdata/render/renderdata.py +++ b/src/c3nav/mapdata/render/renderdata.py @@ -159,6 +159,8 @@ class LevelRenderData: new_geoms = LevelGeometries() new_geoms.buildings = crop_to.intersection(old_geoms.buildings) + if old_geoms.on_top_of_id is None: + new_geoms.holes = crop_to.intersection(old_geoms.holes) new_geoms.doors = crop_to.intersection(old_geoms.doors) new_geoms.walls = crop_to.intersection(old_geoms.walls) new_geoms.all_walls = crop_to.intersection(old_geoms.all_walls)