JuliaGeometry/Meshes.jl

`Ngon`-`Segment` intersection in 2D

Open

#646 opened on Dec 5, 2023

View on GitHub
 (4 comments) (0 reactions) (0 assignees)Julia (98 forks)auto 404
featurehelp wanted

Repository metrics

Stars
 (460 stars)
PR merge metrics
 (PR metrics pending)

Description

julia> r = Rope(Point(1, 0), Point(1, 1), Point(2, 1));

julia> q = Quadrangle(Point(0,0), Point(0, 1), Point(1, 1), Point(1, 0));

julia> intersection(q, r)
ERROR: StackOverflowError:
Stacktrace:
 [1] intersection(f::Function, g₁::Quadrangle{2, Float64}, g₂::Rope{2, Float64, Vector{Point2}})
   @ Meshes ~/.julia/packages/Meshes/w8yhV/src/intersections.jl:100
 [2] intersection(f::Function, g₁::Rope{2, Float64, Vector{Point2}}, g₂::Quadrangle{2, Float64})
   @ Meshes ~/.julia/packages/Meshes/w8yhV/src/intersections.jl:100

julia> b = Box(Point(0,0), Point(1,1));

julia> intersection(b, r)
ERROR: StackOverflowError:
Stacktrace:
 [1] intersection(f::Function, g₁::Box{2, Float64}, g₂::Rope{2, Float64, Vector{Point2}})
   @ Meshes ~/.julia/packages/Meshes/w8yhV/src/intersections.jl:100
 [2] intersection(f::Function, g₁::Rope{2, Float64, Vector{Point2}}, g₂::Box{2, Float64})
   @ Meshes ~/.julia/packages/Meshes/w8yhV/src/intersections.jl:100

Related to #644. In my application, I would like to use a Rope to represent a "path", and I would like to find intersections between that path and a number of geometries. At the moment, those are segments, ngons (probably only rectangles), and other ropes.

I guess the stackoverlow is a red herring for any missing method: https://github.com/JuliaGeometry/Meshes.jl/issues/246

Contributor guide