def is_edge_valid(target_node, node, obstacle): for i in range(len(obstacle.x_list) - 1): p1 = Geometry.Point(target_node.x, target_node.y) p2 = Geometry.Point(node.x, node.y) p3 = Geometry.Point(obstacle.x_list[i], obstacle.y_list[i]) p4 = Geometry.Point(obstacle.x_list[i + 1], obstacle.y_list[i + 1]) if Geometry.is_seg_intersect(p1, p2, p3, p4): return False return True