Rev 13587 | 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 |
| 17173 | bpr | 74 | slib_out=<img src="$slib_out" alt=""> |
| 2641 | bpr | 75 | !endif |