fix error if the graph is not in one piece

This commit is contained in:
Laura Klünder 2016-12-19 02:40:30 +01:00
parent 3e0019b4f6
commit 86cf03d6c2
2 changed files with 7 additions and 6 deletions

View file

@ -223,9 +223,9 @@ class Graph:
level_distances = empty_distances.copy()
in_level_i = np.array(tuple(level.room_transfer_points.index(point)
for point in level.level_transfer_points))
for point in level.level_transfer_points), dtype=int)
in_graph_i = np.array(tuple(self.level_transfer_points.index(point)
for point in level.level_transfer_points))
for point in level.level_transfer_points), dtype=int)
level_distances[in_graph_i[:, None], in_graph_i] = router.shortest_paths[in_level_i[:, None], in_level_i]
better = level_distances < sparse_distances
@ -375,7 +375,8 @@ class Graph:
room_transfers = {}
for room in rooms:
room_transfer_points = np.array(tuple(room.points.index(point) for point in room.room_transfer_points))
room_transfer_points = np.array(tuple(room.points.index(point)
for point in room.room_transfer_points), dtype=int)
points = room_points[room]
if mode == 'orig':
@ -402,7 +403,7 @@ class Graph:
level_transfers = {}
for level in levels:
level_transfer_points = np.array(tuple(level.room_transfer_points.index(point)
for point in level.level_transfer_points))
for point in level.level_transfer_points), dtype=int)
points, distances = zip(*(tuple((level.room_transfer_points.index(point), segment.distance)
for point, segment in all_room_transfers.items()

View file

@ -328,9 +328,9 @@ class GraphLevel():
routers[room] = router
room_distances = empty_distances.copy()
in_room_i = np.array(tuple(room.points.index(point) for point in room.room_transfer_points))
in_room_i = np.array(tuple(room.points.index(point) for point in room.room_transfer_points), dtype=int)
in_level_i = np.array(tuple(self.room_transfer_points.index(point)
for point in room.room_transfer_points))
for point in room.room_transfer_points), dtype=int)
room_distances[in_level_i[:, None], in_level_i] = router.shortest_paths[in_room_i[:, None], in_room_i]
better = room_distances < sparse_distances