use level.short_label as group name for rendering
This commit is contained in:
parent
c99b9e4e58
commit
d6b94b0167
3 changed files with 10 additions and 5 deletions
|
@ -273,6 +273,7 @@ class LevelRenderData:
|
||||||
|
|
||||||
new_geoms.pk = old_geoms.pk
|
new_geoms.pk = old_geoms.pk
|
||||||
new_geoms.on_top_of_id = old_geoms.on_top_of_id
|
new_geoms.on_top_of_id = old_geoms.on_top_of_id
|
||||||
|
new_geoms.short_label = old_geoms.short_label
|
||||||
new_geoms.base_altitude = old_geoms.base_altitude
|
new_geoms.base_altitude = old_geoms.base_altitude
|
||||||
new_geoms.default_height = old_geoms.default_height
|
new_geoms.default_height = old_geoms.default_height
|
||||||
new_geoms.min_altitude = (min(area.altitude for area in new_geoms.altitudeareas)
|
new_geoms.min_altitude = (min(area.altitude for area in new_geoms.altitudeareas)
|
||||||
|
@ -369,6 +370,7 @@ class LevelGeometries:
|
||||||
|
|
||||||
self.pk = None
|
self.pk = None
|
||||||
self.on_top_of_id = None
|
self.on_top_of_id = None
|
||||||
|
self.short_label = None
|
||||||
self.base_altitude = None
|
self.base_altitude = None
|
||||||
self.default_height = None
|
self.default_height = None
|
||||||
self.min_altitude = None
|
self.min_altitude = None
|
||||||
|
@ -463,6 +465,7 @@ class LevelGeometries:
|
||||||
# general level infos
|
# general level infos
|
||||||
geoms.pk = level.pk
|
geoms.pk = level.pk
|
||||||
geoms.on_top_of_id = level.on_top_of_id
|
geoms.on_top_of_id = level.on_top_of_id
|
||||||
|
geoms.short_label = level.short_label
|
||||||
geoms.base_altititude = int(level.base_altitude * 1000)
|
geoms.base_altititude = int(level.base_altitude * 1000)
|
||||||
geoms.default_height = int(level.default_height * 1000)
|
geoms.default_height = int(level.default_height * 1000)
|
||||||
geoms.min_altitude = (min(area.altitude for area in geoms.altitudeareas)
|
geoms.min_altitude = (min(area.altitude for area in geoms.altitudeareas)
|
||||||
|
|
|
@ -13,7 +13,7 @@ class OpenSCADEngine(Base3DEngine):
|
||||||
vertices = tuple(set(tuple(vertex) for vertex in facets.reshape((-1, 3))))
|
vertices = tuple(set(tuple(vertex) for vertex in facets.reshape((-1, 3))))
|
||||||
lookup = {vertex: i for i, vertex in enumerate(vertices)}
|
lookup = {vertex: i for i, vertex in enumerate(vertices)}
|
||||||
|
|
||||||
return (b'module ' + name.encode() + b'() {\n' +
|
return (b'module ' + name.replace('-', 'minus').encode() + b'() {\n' +
|
||||||
b' polyhedron(\n' +
|
b' polyhedron(\n' +
|
||||||
b' points = [\n' +
|
b' points = [\n' +
|
||||||
b'\n'.join((b' [%.3f, %.3f, %.3f],' % tuple(vertex)) for vertex in vertices) + b'\n' +
|
b'\n'.join((b' [%.3f, %.3f, %.3f],' % tuple(vertex)) for vertex in vertices) + b'\n' +
|
||||||
|
@ -29,11 +29,13 @@ class OpenSCADEngine(Base3DEngine):
|
||||||
def render(self) -> bytes:
|
def render(self) -> bytes:
|
||||||
result = (b'c3nav_export();\n\n' +
|
result = (b'c3nav_export();\n\n' +
|
||||||
b'module c3nav_export() {\n' +
|
b'module c3nav_export() {\n' +
|
||||||
b'\n'.join((b' %s();' % group.encode()) for group in self.groups.keys()) + b'\n' +
|
b'\n'.join((b' %s();' % group.replace('-', 'minus').encode())
|
||||||
|
for group in self.groups.keys()) + b'\n' +
|
||||||
b'}\n\n')
|
b'}\n\n')
|
||||||
for group, subgroups in self.groups.items():
|
for group, subgroups in self.groups.items():
|
||||||
result += (b'module ' + group.encode() + b'() {\n' +
|
result += (b'module ' + group.replace('-', 'minus').encode() + b'() {\n' +
|
||||||
b'\n'.join((b' %s();' % subgroup.encode()) for subgroup in subgroups) + b'\n' +
|
b'\n'.join((b' %s();' % subgroup.replace('-', 'minus').encode())
|
||||||
|
for subgroup in subgroups) + b'\n' +
|
||||||
b'}\n')
|
b'}\n')
|
||||||
result += b'\n'
|
result += b'\n'
|
||||||
for group, vertices in self.vertices.items():
|
for group, vertices in self.vertices.items():
|
||||||
|
|
|
@ -90,7 +90,7 @@ class MapRenderer:
|
||||||
if not bbox.intersects(geoms.affected_area):
|
if not bbox.intersects(geoms.affected_area):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
engine.add_group('level_%s' % geoms.pk)
|
engine.add_group('level_%s' % geoms.short_label)
|
||||||
|
|
||||||
# hide indoor and outdoor rooms if their access restriction was not unlocked
|
# hide indoor and outdoor rooms if their access restriction was not unlocked
|
||||||
add_walls = hybrid_union(tuple(area for access_restriction, area in geoms.restricted_spaces_indoors.items()
|
add_walls = hybrid_union(tuple(area for access_restriction, area in geoms.restricted_spaces_indoors.items()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue