Subversion Repositories wimsdev

Rev

Rev 13587 | Blame | Compare with Previous | Last modification | View Log | RSS feed

!if $wims_read_parm!=slib_header
  !goto proc
!endif

slib_author=Bernadette, Perrin-Riou

slib_example=[0,1,0;0,1,1;0,0,0]\
[u,v,0;0,w,x;0,y,0],[a,b,c],edge\
[0,T,0;0,1,0;0,1,0],[a,b,c],,rankdir="RL"\
[0,1,0;0,1,1;0,0,0],no_label_node,html
slib_require=graphviz
!exit

:proc

slib_labelnode=0
!reset slib_options slib_Node slib_output slib_l

!distribute item $wims_read_parm into slib_A,slib_Node,slib_output,slib_options
slib_A=!declosing $slib_A
slib_Node=!declosing $slib_Node
!if no_label_node isin $slib_Node
  slib_Node=
  slib_label_node=0
!endif

slib_options=!declosing $slib_options
!default slib_options=rankdir="LR"; node [fontsize=10,width=".2", height=".2", margin=0 shape=box];

slib_sA=!rows2lines $slib_A
slib_r=!linecnt $slib_sA
slib_A=!lines2rows $slib_A

!default slib_orient=1
slib_graphv=

!if $slib_orient=1
   graphviz_dot=dot
   slib_graph=digraph
   slib_arrow=->
!else
  graphviz_dot=neato
  slib_graph=graph
  slib_arrow=--
!endif
slib_rA=!rows2lines $slib_A
!for slib_i = 1 to $slib_r
  !for slib_j = 1 to $slib_i
    !if $(slib_A[$slib_i;$slib_j]) != 0
      !if edge iswordof $slib_output
        slib_l=[label="$(slib_A[$slib_i;$slib_j])"]
      !endif
      slib_graphv=!append line $slib_i $slib_arrow $slib_j [color="blue"] $slib_l ; to $slib_graphv
    !endif
    !if $slib_orient=1
      !if $slib_i != $slib_j and $(slib_A[$slib_j;$slib_i]) != 0
        !if edge iswordof $slib_output
          slib_l=[label="$(slib_A[$slib_j;$slib_i])"]
        !endif
        slib_graphv=!append line $slib_j $slib_arrow $slib_i [color="blue"] $slib_l ; to $slib_graphv
      !endif
    !endif
  !next
  !if $(slib_Node[$slib_i])!= or $slib_label_node=0
    slib_graphv=!append line $slib_i [label="$(slib_Node[$slib_i])"] [color="blue"] ; to $slib_graphv
  !endif
!next

slib_out=$slib_graph bar {$slib_options $slib_graphv}

slib_graphviz_out=!exec graphviz $slib_out
slib_out=!line 1 of $slib_graphviz_out
!if url notin $slib_output or html isin $slib_output
  slib_out=<img src="$slib_out" alt="">
!endif