fix svg rendering for new holes
This commit is contained in:
parent
665ef56c9b
commit
bffc0f2191
1 changed files with 15 additions and 6 deletions
|
@ -35,6 +35,9 @@ class Section(SpecificLocation, EditorFormMixin, models.Model):
|
||||||
result['altitude'] = float(str(self.altitude))
|
result['altitude'] = float(str(self.altitude))
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
def _get_space_hole_geometries(self, space):
|
||||||
|
space.hole_geometries = cascaded_union([hole.geometry for hole in self.holes.all()])
|
||||||
|
|
||||||
def _render_space_ground(self, svg, space):
|
def _render_space_ground(self, svg, space):
|
||||||
areas_by_color = {}
|
areas_by_color = {}
|
||||||
for area in space.areas.all():
|
for area in space.areas.all():
|
||||||
|
@ -75,13 +78,19 @@ class Section(SpecificLocation, EditorFormMixin, models.Model):
|
||||||
}
|
}
|
||||||
for space in spaces:
|
for space in spaces:
|
||||||
space_levels[space.level].append(space)
|
space_levels[space.level].append(space)
|
||||||
space_geometries = {
|
for space in space_levels['normal']:
|
||||||
level: cascaded_union(tuple((s.geometry.difference(building_geometries) if s.outside else s.geometry)
|
if space.outside:
|
||||||
for s in level_spaces))
|
space.geometry = space.geometry.difference(building_geometries)
|
||||||
for level, level_spaces in space_levels.items()}
|
else:
|
||||||
|
space.geometry = space.geometry.intersection(building_geometries)
|
||||||
|
space_geometries = {level: cascaded_union(tuple(s.geometry for s in level_spaces))
|
||||||
|
for level, level_spaces in space_levels.items()}
|
||||||
|
|
||||||
hole_geometries = cascaded_union(tuple(h.geometry for h in self.holes.all()))
|
for space in spaces:
|
||||||
hole_geometries = hole_geometries.intersection(space_geometries['normal'])
|
space_holes = cascaded_union(tuple(hole.geometry for hole in space.holes.all()))
|
||||||
|
space.hole_geometries = space_holes.intersection(space.geometry)
|
||||||
|
|
||||||
|
hole_geometries = cascaded_union(tuple(space.hole_geometries for space in space_levels['normal']))
|
||||||
|
|
||||||
lower_spaces_by_color = {}
|
lower_spaces_by_color = {}
|
||||||
for space in space_levels['lower']:
|
for space in space_levels['lower']:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue