import StaticArrays: SVector
using RegionTrees
include("adaptive_distance_fields.jl")
using .AdaptivelySampledDistanceFields: ASDF, evaluate
s = x -> sqrt(sum((x - SVector(0, 0)).^2))
eps = 0.1
adf = ASDF(s, SVector(0., 0), SVector(1. + eps, 1 + eps), 1e-4, 1e-4)
ERROR: LoadError: BoundsError: attempt to access interpolate(::StaticArrays.SArray{Tuple{2,2},Float64,2,4}, BSpline(Linear())) with element type Float64 with indices 1:2×1:2 at index [2.000000000000001, 1.4999999999999973]
Stacktrace:
[1] throw_boundserror(::Interpolations.BSplineInterpolation{Float64,2,StaticArrays.SArray{Tuple{2,2},Float64,2,4},BSpline{Linear},Tuple{Base.Slice{UnitRange{Int64}},Base.Slice{UnitRange{Int64}}}}, ::Tuple{Float64,Float64}) at ./abstractarray.jl:484
[2] BSplineInterpolation at /home/h-ishida/documents/Interpolations.jl/src/b-splines/indexing.jl:17 [inlined]
[3] macro expansion at /home/h-ishida/documents/RegionTrees.jl/examples/adaptive_distance_fields/adaptive_distance_fields.jl:10 [inlined]
[4] evaluate(::Interpolations.BSplineInterpolation{Float64,2,StaticArrays.SArray{Tuple{2,2},Float64,2,4},BSpline{Linear},Tuple{Base.Slice{UnitRange{Int64}},Base.Slice{UnitRange{Int64}}}}, ::StaticArrays.SArray{Tuple{2},Float64,1,2}) at /home/h-ishida/documents/RegionTrees.jl/examples/adaptive_distance_fields/adaptive_distance_fields.jl:10
[5] evaluate(::Interpolations.BSplineInterpolation{Float64,2,StaticArrays.SArray{Tuple{2,2},Float64,2,4},BSpline{Linear},Tuple{Base.Slice{UnitRange{Int64}},Base.Slice{UnitRange{Int64}}}}, ::HyperRectangle{2,Float64}, ::StaticArrays.SArray{Tuple{2},Float64,1,2}) at /home/h-ishida/documents/RegionTrees.jl/examples/adaptive_distance_fields/adaptive_distance_fields.jl:30
[6] evaluate at /home/h-ishida/documents/RegionTrees.jl/examples/adaptive_distance_fields/adaptive_distance_fields.jl:19 [inlined]
[7] needs_refinement(::Cell{Interpolations.BSplineInterpolation{Float64,2,StaticArrays.SArray{Tuple{2,2},Float64,2,4},BSpline{Linear},Tuple{Base.Slice{UnitRange{Int64}},Base.Slice{UnitRange{Int64}}}},2,Float64,4}, ::getfield(Main, Symbol("##107#108")), ::Float64, ::Float64) at /home/h-ishida/documents/RegionTrees.jl/examples/adaptive_distance_fields/adaptive_distance_fields.jl:45
[8] adaptivesampling!(::Cell{Interpolations.BSplineInterpolation{Float64,2,StaticArrays.SArray{Tuple{2,2},Float64,2,4},BSpline{Linear},Tuple{Base.Slice{UnitRange{Int64}},Base.Slice{UnitRange{Int64}}}},2,Float64,4}, ::Main.AdaptivelySampledDistanceFields.SignedDistanceRefinery{getfield(Main, Symbol("##107#108"))}) at /home/h-ishida/documents/RegionTrees.jl/examples/adaptive_distance_fields/adaptive_distance_fields.jl:33
[9] ASDF(::Function, ::StaticArrays.SArray{Tuple{2},Float64,1,2}, ::StaticArrays.SArray{Tuple{2},Float64,1,2}, ::Float64, ::Float64) at /home/h-ishida/documents/RegionTrees.jl/examples/adaptive_distance_fields/adaptive_distance_fields.jl:63
[10] top-level scope at none:0
[11] include at ./boot.jl:326 [inlined]
[12] include_relative(::Module, ::String) at ./loading.jl:1038
[13] include(::Module, ::String) at ./sysimg.jl:29
[14] include(::String) at ./client.jl:403
[15] top-level scope at none:0
in expression starting at /home/h-ishida/documents/RegionTrees.jl/examples/adaptive_distance_fields/test.jl:9
I tweaked the example as follows:
and got the following error:
As the error messages show,
coordscomputed here is outside the range of itp (i.e. [1, 2]).I did farther investigation and found that the cell's origin and boundary was
[1.0656250000000003,1.0656250000000003]and[0.034375,0.034375]respectively when the evaluate function causes the error. The value of origin is so strange and seems to incur some problem related to floating points.