using SpanningTreeCoverage
area = read_area("map1")
10×10 Matrix{Int8}: 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0
plot_area(area)
new_area = subdivide_area(area)
20×20 Matrix{Int8}: 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
plot_area(new_area)
obstacle_nodes = calculate_obstacle_nodes(area)
10-element Vector{Int64}: 1 2 11 12 65 66 75 76 85 86
mst = calculate_mst(size(area), obstacle_nodes)
89-element Vector{Graphs.SimpleGraphs.SimpleEdge{Int64}}: Edge 1 => 2 Edge 1 => 9 Edge 2 => 3 Edge 2 => 10 Edge 3 => 4 Edge 3 => 11 Edge 4 => 5 Edge 4 => 12 Edge 5 => 6 Edge 5 => 13 Edge 6 => 7 Edge 6 => 14 Edge 7 => 8 ⋮ Edge 71 => 79 Edge 72 => 80 Edge 73 => 81 Edge 74 => 82 Edge 75 => 83 Edge 76 => 84 Edge 77 => 87 Edge 78 => 88 Edge 79 => 89 Edge 80 => 90 Edge 84 => 85 Edge 85 => 86
p = plot_area(new_area)
plot_mst!(p, size(area), obstacle_nodes, mst)
guide = calculate_guide(size(area), obstacle_nodes, mst)
Set{StaticArrays.SVector{2, Float64}} with 357 elements: [15.5, 7.5] [13.5, 14.5] [7.5, 16.5] [11.5, 5.0] [15.5, 17.5] [5.5, 6.0] [7.5, 9.0] [15.5, 3.5] [3.5, 8.0] [19.5, 7.5] [9.5, 1.5] [19.5, 17.5] [3.5, 14.0] [7.0, 1.5] [19.5, 3.5] [5.5, 4.0] [5.5, 13.0] [17.5, 8.0] [11.5, 8.5] [5.5, 4.5] [9.5, 5.0] [13.5, 7.5] [13.5, 17.5] [17.5, 14.0] [7.5, 8.0] ⋮
p = plot_area(new_area)
plot_guide!(p, guide)
path = calculate_circumnavigation_path(new_area, guide)
361-element Vector{StaticArrays.SVector{2, Int64}}: [19, 1] [18, 1] [17, 1] [16, 1] [15, 1] [14, 1] [13, 1] [12, 1] [11, 1] [10, 1] [9, 1] [8, 1] [7, 1] ⋮ [20, 11] [20, 10] [20, 9] [20, 8] [20, 7] [20, 6] [20, 5] [20, 4] [20, 3] [20, 2] [20, 1] [19, 1]
p = plot_area(new_area)
plot_guide!(p, guide)
plot_path!(p, path)
p = plot_area(new_area)
plot_path!(p, path)