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 import register_engine
|
||||||
from c3nav.mapdata.render.engines.base3d import Base3DEngine
|
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
|
from c3nav.mapdata.utils.geometry import assert_multipolygon
|
||||||
|
|
||||||
|
|
||||||
|
@ -204,8 +204,11 @@ class BlenderEngine(Base3DEngine):
|
||||||
def _add_python(self, code):
|
def _add_python(self, code):
|
||||||
self.result += self._clean_python(code)+'\n'
|
self.result += self._clean_python(code)+'\n'
|
||||||
|
|
||||||
def custom_render(self, level_render_data, access_permissions):
|
def custom_render(self, level_render_data, access_permissions, full_levels):
|
||||||
levels = get_full_levels(level_render_data)
|
if full_levels:
|
||||||
|
levels = get_full_levels(level_render_data)
|
||||||
|
else:
|
||||||
|
levels = get_main_levels(level_render_data)
|
||||||
|
|
||||||
buildings = None
|
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 import register_engine
|
||||||
from c3nav.mapdata.render.engines.base3d import Base3DEngine
|
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
|
from c3nav.mapdata.utils.geometry import assert_multipolygon
|
||||||
|
|
||||||
|
|
||||||
|
@ -62,8 +62,11 @@ class OpenSCADEngine(Base3DEngine):
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
self.root = OpenScadRoot()
|
self.root = OpenScadRoot()
|
||||||
|
|
||||||
def custom_render(self, level_render_data, access_permissions):
|
def custom_render(self, level_render_data, access_permissions, full_levels):
|
||||||
levels = get_full_levels(level_render_data)
|
if full_levels:
|
||||||
|
levels = get_full_levels(level_render_data)
|
||||||
|
else:
|
||||||
|
levels = get_main_levels(level_render_data)
|
||||||
|
|
||||||
buildings = None
|
buildings = None
|
||||||
areas = None
|
areas = None
|
||||||
|
|
|
@ -39,7 +39,7 @@ class MapRenderer:
|
||||||
scale=self.scale, buffer=1, background='#DCDCDC', center=center)
|
scale=self.scale, buffer=1, background='#DCDCDC', center=center)
|
||||||
|
|
||||||
if hasattr(engine, 'custom_render'):
|
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
|
return engine
|
||||||
|
|
||||||
if self.full_levels:
|
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
|
for level in level_render_data.levels if level.on_top_of_id is None
|
||||||
)))
|
)))
|
||||||
return levels
|
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