Rev 12676 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
2641 | bpr | 1 | !if $wims_read_parm!=slib_header |
13587 | bpr | 2 | !goto proc |
2641 | bpr | 3 | !endif |
4158 | bpr | 4 | |
4349 | bpr | 5 | slib_author=Bernadette, Perrin-Riou |
4158 | bpr | 6 | |
2641 | bpr | 7 | slib_example=[0,1,0;0,1,1;0,0,0]\ |
8 | [u,v,0;0,w,x;0,y,0],[a,b,c],edge\ |
||
9 | [0,T,0;0,1,0;0,1,0],[a,b,c],,rankdir="RL"\ |
||
4908 | bpr | 10 | [0,1,0;0,1,1;0,0,0],no_label_node,html |
3265 | bpr | 11 | slib_require=graphviz |
2641 | bpr | 12 | !exit |
13 | |||
14 | :proc |
||
15 | |||
16 | slib_labelnode=0 |
||
17 | !reset slib_options slib_Node slib_output slib_l |
||
18 | |||
19 | !distribute item $wims_read_parm into slib_A,slib_Node,slib_output,slib_options |
||
20 | slib_A=!declosing $slib_A |
||
21 | slib_Node=!declosing $slib_Node |
||
22 | !if no_label_node isin $slib_Node |
||
23 | slib_Node= |
||
24 | slib_label_node=0 |
||
25 | !endif |
||
7692 | bpr | 26 | |
2641 | bpr | 27 | slib_options=!declosing $slib_options |
11989 | bpr | 28 | !default slib_options=rankdir="LR"; node [fontsize=10,width=".2", height=".2", margin=0 shape=box]; |
2641 | bpr | 29 | |
30 | slib_sA=!rows2lines $slib_A |
||
31 | slib_r=!linecnt $slib_sA |
||
32 | slib_A=!lines2rows $slib_A |
||
33 | |||
34 | !default slib_orient=1 |
||
35 | slib_graphv= |
||
36 | |||
37 | !if $slib_orient=1 |
||
38 | graphviz_dot=dot |
||
39 | slib_graph=digraph |
||
40 | slib_arrow=-> |
||
41 | !else |
||
42 | graphviz_dot=neato |
||
43 | slib_graph=graph |
||
44 | slib_arrow=-- |
||
45 | !endif |
||
46 | slib_rA=!rows2lines $slib_A |
||
47 | !for slib_i = 1 to $slib_r |
||
48 | !for slib_j = 1 to $slib_i |
||
49 | !if $(slib_A[$slib_i;$slib_j]) != 0 |
||
50 | !if edge iswordof $slib_output |
||
51 | slib_l=[label="$(slib_A[$slib_i;$slib_j])"] |
||
52 | !endif |
||
53 | slib_graphv=!append line $slib_i $slib_arrow $slib_j [color="blue"] $slib_l ; to $slib_graphv |
||
54 | !endif |
||
55 | !if $slib_orient=1 |
||
56 | !if $slib_i != $slib_j and $(slib_A[$slib_j;$slib_i]) != 0 |
||
12676 | bpr | 57 | !if edge iswordof $slib_output |
58 | slib_l=[label="$(slib_A[$slib_j;$slib_i])"] |
||
59 | !endif |
||
60 | slib_graphv=!append line $slib_j $slib_arrow $slib_i [color="blue"] $slib_l ; to $slib_graphv |
||
2641 | bpr | 61 | !endif |
62 | !endif |
||
63 | !next |
||
64 | !if $(slib_Node[$slib_i])!= or $slib_label_node=0 |
||
65 | slib_graphv=!append line $slib_i [label="$(slib_Node[$slib_i])"] [color="blue"] ; to $slib_graphv |
||
66 | !endif |
||
67 | !next |
||
68 | |||
69 | slib_out=$slib_graph bar {$slib_options $slib_graphv} |
||
70 | |||
71 | slib_graphviz_out=!exec graphviz $slib_out |
||
72 | slib_out=!line 1 of $slib_graphviz_out |
||
4908 | bpr | 73 | !if url notin $slib_output or html isin $slib_output |
5736 | bpr | 74 | slib_out=<img src="$slib_out" alt=""/> |
2641 | bpr | 75 | !endif |