diff --git a/src/interpolation_methods.jl b/src/interpolation_methods.jl index a92fcaa7..b729ad52 100644 --- a/src/interpolation_methods.jl +++ b/src/interpolation_methods.jl @@ -140,7 +140,7 @@ end # BSpline Curve Interpolation function (A::BSplineInterpolation{<:AbstractVector{<:Number}})(t::Number) # change t into param [0 1] - idx = findfirst(x->x>=t,A.t) - 1 + idx = searchsortedlast(A.t,t) idx == 0 ? idx += 1 : nothing t = A.p[idx] + (t - A.t[idx])/(A.t[idx+1] - A.t[idx]) * (A.p[idx+1] - A.p[idx]) n = length(A.t) @@ -155,7 +155,7 @@ end # BSpline Curve Approx function (A::BSplineApprox{<:AbstractVector{<:Number}})(t::Number) # change t into param [0 1] - idx = findfirst(x->x>=t,A.t) - 1 + idx = searchsortedlast(A.t,t) idx == 0 ? idx += 1 : nothing t = A.p[idx] + (t - A.t[idx])/(A.t[idx+1] - A.t[idx]) * (A.p[idx+1] - A.p[idx]) n = length(A.t)