diff --git a/src/c3nav/mapdata/render/renderer.py b/src/c3nav/mapdata/render/renderer.py index 8c62afdf..cd623ef4 100644 --- a/src/c3nav/mapdata/render/renderer.py +++ b/src/c3nav/mapdata/render/renderer.py @@ -127,15 +127,16 @@ class LevelRenderer(): fill_opacity=0.06)) if show_accessibles: - main_geometry = self.level.geometries.accessible.buffer(-0.6, join_style=MITRE) - clear_geometry = self.level.geometries.accessible.buffer(-0.3, join_style=MITRE) - missing_geometry = clear_geometry.difference(main_geometry.buffer(0.31, join_style=MITRE)) + narrowed_geometry = self.level.geometries.accessible.buffer(-0.6, join_style=MITRE) + clear_geometry = self.level.geometries.accessible.buffer(-0.3, join_style=JOIN_STYLE.mitre) + wide_geometry = narrowed_geometry.buffer(0.31, join_style=MITRE).intersection(clear_geometry) + missing_geometry = clear_geometry.difference(wide_geometry.buffer(0.01, join_style=MITRE)) contents.append(self.polygon_svg(clear_geometry, fill_color='#FFFF00', fill_opacity=0.5)) - contents.append(self.polygon_svg(main_geometry, + contents.append(self.polygon_svg(narrowed_geometry, fill_color='#009900', fill_opacity=0.5)) diff --git a/src/c3nav/routing/area.py b/src/c3nav/routing/area.py index 1d5c4b00..a5a60836 100644 --- a/src/c3nav/routing/area.py +++ b/src/c3nav/routing/area.py @@ -33,7 +33,7 @@ class GraphArea(): angle_diff = ((stair_angle - angle + 180) % 360) - 180 up = angle_diff < 0 # noqa - if not (50 < abs(angle_diff) < 130): + if not (40 < abs(angle_diff) < 150): valid = False break diff --git a/src/c3nav/routing/room.py b/src/c3nav/routing/room.py index a48a1a53..ae99672f 100644 --- a/src/c3nav/routing/room.py +++ b/src/c3nav/routing/room.py @@ -53,8 +53,8 @@ class GraphRoom(): self.areas.append(GraphArea(self, mpl_clear, mpl_stairs)) def build_points(self): - original_geometry = self.geometry - geometry = original_geometry.buffer(-0.6, join_style=JOIN_STYLE.mitre) + narrowed_geometry = self.geometry.buffer(-0.6, join_style=JOIN_STYLE.mitre) + geometry = narrowed_geometry.buffer(0.31, join_style=JOIN_STYLE.mitre).intersection(self.clear_geometry) if geometry.is_empty: return