From 84fd2b00119542b992b5ed32baf3c4ea5a9a4581 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Sat, 15 Dec 2018 23:24:04 +0100 Subject: [PATCH] fix _build_vertex_values with no faces crash --- src/c3nav/mapdata/render/geometry/level.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/c3nav/mapdata/render/geometry/level.py b/src/c3nav/mapdata/render/geometry/level.py index 23910063..20c977ad 100644 --- a/src/c3nav/mapdata/render/geometry/level.py +++ b/src/c3nav/mapdata/render/geometry/level.py @@ -286,11 +286,14 @@ class LevelGeometries: vertex_value_mask = np.full(self.vertices.shape[:1], fill_value=False, dtype=np.bool) for item in items: - i_vertices = np.unique(self.faces[np.array(tuple(chain(*area_func(item).faces)))].flatten()) + faces = area_func(item).faces + if not faces: + continue + i_vertices = np.unique(self.faces[np.array(tuple(chain(*faces)))].flatten()) vertex_values[i_vertices] = value_func(item, i_vertices) vertex_value_mask[i_vertices] = True - if not np.all(vertex_value_mask): + if np.any(vertex_value_mask) and not np.all(vertex_value_mask): interpolate = NearestNDInterpolator(self.vertices[vertex_value_mask], vertex_values[vertex_value_mask]) vertex_values[np.logical_not(vertex_value_mask)] = interpolate(