@@ -5,32 +5,36 @@ using WGLMakie.Colors
55using MLStyle
66using ZXCalculus: ZXW
77using ZXCalculus, ZXCalculus. ZXW
8- using ZXCalculus. ZXW: Z,X
8+ using ZXCalculus. ZXW: Z, X, Input, Output, spider_type
99using ZXCalculus. ZX. Graphs
1010
11- function edge_click_action(idx, args... )
12- red_green_blk = [RGB(1. ,0. ,0. ), RGB(0. ,1. ,0. ), RGB(0. ,0. ,0. )]
13- which_color = findfirst(x -> x == p. edge_color[][idx], red_green_blk)
14- p. edge_color[][idx] = red_green_blk[mod1(which_color+ 1 ,length(red_green_blk))]
15- p. edge_color[] = p. edge_color[]
16- end
1711
1812function ZXCalculus. ZXW. plot(zxwd:: ZXWDiagram{T,P} ; kwargs... ) where {T,P}
1913 g = zxwd. mg
2014 f, ax, p = graphplot(g,
2115 edge_width= [2.0 for i in 1 : ne(g)],
2216 edge_color= [colorant" black" for i in 1 : ne(g)],
23- node_size= [10 for i in 1 : nv(g)],
17+ node_size= [15 for i in 1 : nv(g)],
2418 node_color= [
2519 @match spider_type(zxwd, i) begin
2620 Z(p) => colorant" red"
2721 X(p) => colorant" green"
22+ Input => colorant" orange"
23+ Output => colorant" orange"
2824 _ => colorant" yellow"
2925 end for i in 1 : nv(g)])
3026
3127 hidedecorations!(ax)
3228 hidespines!(ax)
3329 deregister_interaction!(ax, :rectanglezoom)
30+
31+ function edge_click_action(idx, args... )
32+ red_green_blk = [RGB(1.0 , 0.0 , 0.0 ), RGB(0.0 , 1.0 , 0.0 ), RGB(0.0 , 0.0 , 0.0 )]
33+ which_color = findfirst(x -> x == p. edge_color[][idx], red_green_blk)
34+ p. edge_color[][idx] = red_green_blk[mod1(which_color + 1 , length(red_green_blk))]
35+ p. edge_color[] = p. edge_color[]
36+ end
37+
3438 register_interaction!(ax, :nhover, NodeHoverHighlight(p))
3539 register_interaction!(ax, :ehover, EdgeHoverHighlight(p))
3640 register_interaction!(ax, :ndrag, NodeDrag(p))
0 commit comments