new renderers: respect --full-levels
This commit is contained in:
parent
4e2e8213bc
commit
8c9725a82a
4 changed files with 20 additions and 7 deletions
|
@ -8,7 +8,7 @@ from shapely.ops import unary_union
|
|||
|
||||
from c3nav.mapdata.render.engines import register_engine
|
||||
from c3nav.mapdata.render.engines.base3d import Base3DEngine
|
||||
from c3nav.mapdata.render.utils import get_full_levels
|
||||
from c3nav.mapdata.render.utils import get_full_levels, get_main_levels
|
||||
from c3nav.mapdata.utils.geometry import assert_multipolygon
|
||||
|
||||
|
||||
|
@ -204,8 +204,11 @@ class BlenderEngine(Base3DEngine):
|
|||
def _add_python(self, code):
|
||||
self.result += self._clean_python(code)+'\n'
|
||||
|
||||
def custom_render(self, level_render_data, access_permissions):
|
||||
levels = get_full_levels(level_render_data)
|
||||
def custom_render(self, level_render_data, access_permissions, full_levels):
|
||||
if full_levels:
|
||||
levels = get_full_levels(level_render_data)
|
||||
else:
|
||||
levels = get_main_levels(level_render_data)
|
||||
|
||||
buildings = None
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ from shapely.ops import unary_union
|
|||
|
||||
from c3nav.mapdata.render.engines import register_engine
|
||||
from c3nav.mapdata.render.engines.base3d import Base3DEngine
|
||||
from c3nav.mapdata.render.utils import get_full_levels
|
||||
from c3nav.mapdata.render.utils import get_full_levels, get_main_levels
|
||||
from c3nav.mapdata.utils.geometry import assert_multipolygon
|
||||
|
||||
|
||||
|
@ -62,8 +62,11 @@ class OpenSCADEngine(Base3DEngine):
|
|||
super().__init__(*args, **kwargs)
|
||||
self.root = OpenScadRoot()
|
||||
|
||||
def custom_render(self, level_render_data, access_permissions):
|
||||
levels = get_full_levels(level_render_data)
|
||||
def custom_render(self, level_render_data, access_permissions, full_levels):
|
||||
if full_levels:
|
||||
levels = get_full_levels(level_render_data)
|
||||
else:
|
||||
levels = get_main_levels(level_render_data)
|
||||
|
||||
buildings = None
|
||||
areas = None
|
||||
|
|
|
@ -39,7 +39,7 @@ class MapRenderer:
|
|||
scale=self.scale, buffer=1, background='#DCDCDC', center=center)
|
||||
|
||||
if hasattr(engine, 'custom_render'):
|
||||
engine.custom_render(level_render_data, access_permissions)
|
||||
engine.custom_render(level_render_data, access_permissions, self.full_levels)
|
||||
return engine
|
||||
|
||||
if self.full_levels:
|
||||
|
|
|
@ -20,3 +20,10 @@ def get_full_levels(level_render_data):
|
|||
for level in level_render_data.levels if level.on_top_of_id is None
|
||||
)))
|
||||
return levels
|
||||
|
||||
|
||||
def get_main_levels(level_render_data):
|
||||
main_level_pk = [level for level in level_render_data.levels if level.on_top_of_id is None][-1].pk
|
||||
levels = tuple(level for level in level_render_data.levels
|
||||
if level.pk == main_level_pk or level.on_top_of_id == main_level_pk)
|
||||
return levels
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue