Makie.jl icon indicating copy to clipboard operation
Makie.jl copied to clipboard

`project_command` not defined for `EllipticalArc`s

Open DanielVandH opened this issue 4 months ago • 0 comments

  • [x] what version of Makie are you running? (]st -m Makie)
  • [x] can you reproduce the bug with a fresh environment ? (]activate --temp; add Makie)
  • [x] What platform + GPU are you on? -- Windows
julia> svg = "M 6 10 A 6 4 10 1 0 14 10";

julia> path = BezierPath(svg);

julia> lines(path)
Error showing value of type Makie.FigureAxisPlot:
ERROR: MethodError: no method matching project_command(::EllipticalArc, ::Lines{Tuple{Vector{…}}}, ::Symbol, ::StaticArraysCore.SMatrix{4, 4, Float64, 16})

Closest candidates are:
  project_command(::ClosePath, ::Any, ::Any, ::Any)
   @ CairoMakie C:\Users\danjv\.julia\packages\CairoMakie\rpVfb\src\primitives.jl:128
  project_command(::CurveTo, ::Any, ::Any, ::Any)
   @ CairoMakie C:\Users\danjv\.julia\packages\CairoMakie\rpVfb\src\primitives.jl:120
  project_command(::LineTo, ::Any, ::Any, ::Any)
   @ CairoMakie C:\Users\danjv\.julia\packages\CairoMakie\rpVfb\src\primitives.jl:116
  ...

Stacktrace:
  [1] draw_bezierpath_lines(ctx::Cairo.CairoContext, bezierpath::BezierPath, scene::Lines{…}, color::ColorTypes.RGBA{…},
 space::Symbol, model::StaticArraysCore.SMatrix{…}, linewidth::Float32)
    @ CairoMakie C:\Users\danjv\.julia\packages\CairoMakie\rpVfb\src\primitives.jl:103
  [2] draw_atomic(scene::Scene, screen::CairoMakie.Screen{CairoMakie.IMAGE}, primitive::Union{Lines, LineSegments})
    @ CairoMakie C:\Users\danjv\.julia\packages\CairoMakie\rpVfb\src\primitives.jl:78
  [3] draw_plot(scene::Scene, screen::CairoMakie.Screen{CairoMakie.IMAGE}, primitive::Lines{Tuple{Vector{Point{2, Float64}}}})
    @ CairoMakie C:\Users\danjv\.julia\packages\CairoMakie\rpVfb\src\infrastructure.jl:129
  [4] cairo_draw(screen::CairoMakie.Screen{CairoMakie.IMAGE}, scene::Scene)
    @ CairoMakie C:\Users\danjv\.julia\packages\CairoMakie\rpVfb\src\infrastructure.jl:51
  [5] display(screen::CairoMakie.Screen{CairoMakie.IMAGE}, scene::Scene; connect::Bool)
    @ CairoMakie C:\Users\danjv\.julia\packages\CairoMakie\rpVfb\src\display.jl:43
  [6] display(screen::CairoMakie.Screen{CairoMakie.IMAGE}, scene::Scene)
    @ CairoMakie C:\Users\danjv\.julia\packages\CairoMakie\rpVfb\src\display.jl:40
  [7] display(figlike::Makie.FigureAxisPlot; backend::Module, inline::MakieCore.Automatic, update::Bool, screen_config::@Kwargs{})
    @ Makie C:\Users\danjv\.julia\packages\Makie\eERNK\src\display.jl:166
  [8] display(figlike::Makie.FigureAxisPlot)
    @ Makie C:\Users\danjv\.julia\packages\Makie\eERNK\src\display.jl:130
  [9] #invokelatest#2
    @ .\essentials.jl:892 [inlined]
 [10] invokelatest
    @ .\essentials.jl:889 [inlined]
 [11] print_response(errio::IO, response::Any, show_value::Bool, have_color::Bool, specialdisplay::Union{…})
    @ REPL C:\Users\danjv\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\REPL\src\REPL.jl:315
 [12] (::REPL.var"#57#58"{REPL.LineEditREPL, Pair{Any, Bool}, Bool, Bool})(io::Any)
    @ REPL C:\Users\danjv\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\REPL\src\REPL.jl:284
 [13] with_repl_linfo(f::Any, repl::REPL.LineEditREPL)
    @ REPL C:\Users\danjv\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\REPL\src\REPL.jl:569
 [14] print_response(repl::REPL.AbstractREPL, response::Any, show_value::Bool, have_color::Bool)
    @ REPL C:\Users\danjv\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\REPL\src\REPL.jl:282
 [15] (::REPL.var"#do_respond#80"{…})(s::REPL.LineEdit.MIState, buf::Any, ok::Bool)
    @ REPL C:\Users\danjv\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\REPL\src\REPL.jl:911
 [16] #invokelatest#2
    @ .\essentials.jl:892 [inlined]
 [17] invokelatest
    @ .\essentials.jl:889 [inlined]
 [18] run_interface(terminal::REPL.Terminals.TextTerminal, m::REPL.LineEdit.ModalInterface, s::REPL.LineEdit.MIState)
    @ REPL.LineEdit C:\Users\danjv\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\REPL\src\LineEdit.jl:2656
 [19] run_frontend(repl::REPL.LineEditREPL, backend::REPL.REPLBackendRef)
    @ REPL C:\Users\danjv\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\REPL\src\REPL.jl:1312
 [20] (::REPL.var"#62#68"{REPL.LineEditREPL, REPL.REPLBackendRef})()
    @ REPL C:\Users\danjv\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\REPL\src\REPL.jl:386
Some type information was truncated. Use `show(err)` to see complete types.

Presumably the drawing here could know to use elliptical_arc_to_beziers(c) (as is done in replace_nonfreetype_commands(path)) to render the EllipticalArc

DanielVandH avatar Sep 28 '24 16:09 DanielVandH