Subversion Repositories wimsdev

Rev

Rev 17173 | Rev 18426 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 17173 Rev 17944
Line 8... Line 8...
8
 
8
 
9
!exit
9
!exit
10
 
10
 
11
:proc
11
:proc
12
 
12
 
-
 
13
!reset slib_segments slib_texts slib_circles slib_disks
13
!distribute item $wims_read_parm into slib_G,slib_text
14
!distribute item $wims_read_parm into slib_G,slib_text
14
slib_doption=!item 3 to -1 of $wims_read_parm
15
slib_doption=!item 3 to -1 of $wims_read_parm
15
slib_option=$slib_doption
16
slib_option=$slib_doption
16
!default slib_color1=blue
17
!default slib_color1=blue
17
!default slib_color2=green
18
!default slib_color2=green
18
!default slib_color3 = yellow
19
!default slib_color3=yellow
19
slib_text=!declosing $slib_text
20
slib_text=!declosing $slib_text
20
!if [ isin $slib_text
21
!if [ isin $slib_text
21
  !distribute item $slib_text into slib_textp, slib_textm
22
  !distribute item $slib_text into slib_textp, slib_textm
22
!else
23
!else
23
  slib_textp=$slib_text
24
  slib_textp=$slib_text
24
!endif
25
!endif
25
slib_textp=!declosing $slib_textp
26
slib_textp=!declosing $slib_textp
26
slib_textm=!declosing $slib_textm
27
slib_textm=!declosing $slib_textm
27
slib_G=!declosing $slib_G
28
slib_G=!declosing $slib_G
28
slib_G = !translate internal ; to $\
29
slib_G=!translate internal ; to $\
29
$ in $slib_G
30
$ in $slib_G
30
slib_col=!column 1 of $slib_G
31
slib_col=!column 1 of $slib_G
31
slib_NG=!linecnt $slib_G
32
slib_NG=!linecnt $slib_G
32
slib_n=!lines2items $slib_G
33
slib_n=!lines2items $slib_G
33
slib_n=!listuniq $slib_n
34
slib_n=!listuniq $slib_n
34
## slib_n= !item -1 of $slib_n
35
## slib_n=!item -1 of $slib_n
35
slib_complement=!listcomplement $slib_col in $slib_n
36
slib_complement=!listcomplement $slib_col in $slib_n
36
!for slib_i in $slib_complement
37
!for slib_i in $slib_complement
37
  slib_G=!append line $slib_i to $slib_G
38
  slib_G=!append line $slib_i to $slib_G
38
!next slib_i
39
!next slib_i
39
!read slib/data/columnsort 1,numeric, $slib_G
40
!read slib/data/columnsort 1,numeric, $slib_G
40
slib_G=$slib_out
41
slib_G=$slib_out
41
slib_n=!linecnt $slib_G
42
slib_n=!linecnt $slib_G
42
slib_A1 =0
43
slib_A1=0
43
slib_height1 =1
44
slib_height1=1
44
slib_sizey =1
45
slib_sizey=1
45
slib_cnt1 = 0
46
slib_cnt1=0
46
slib_cnt=1
47
slib_cnt=1
47
slib_width1 =15
48
slib_width1=15
48
slib_Sizey=0
49
slib_Sizey=0
49
slib_position =$empty
50
slib_position=$empty
50
 
51
 
51
slib_milieu =0,-1
52
slib_milieu=0,-1
52
!for slib_k = 1 to $slib_n
53
!for slib_k=1 to $slib_n
53
  slib_L = !line $slib_k of $slib_G
54
  slib_L=!line $slib_k of $slib_G
54
  slib_i=!item 1 of $slib_L
55
  slib_i=!item 1 of $slib_L
55
  slib_position_prov=$(slib_A$slib_i),$[-$(slib_height$slib_i)]
56
  slib_position_prov=$(slib_A$slib_i),$[-$(slib_height$slib_i)]
56
  slib_position = !append line $slib_position_prov to $slib_position
57
  slib_position=!append line $slib_position_prov to $slib_position
57
  slib_a=!item 2 to -1 of $slib_L
58
  slib_a=!item 2 to -1 of $slib_L
58
  slib_ss=!itemcnt $slib_L
59
  slib_ss=!itemcnt $slib_L
59
  !for slib_b in $slib_a
60
  !for slib_b in $slib_a
60
    slib_j=!positionof $slib_b in $slib_a
61
    slib_j=!positionof $slib_b in $slib_a
61
    !if $slib_b <> 0 and $slib_b<>$empty
62
    !if $slib_b <> 0 and $slib_b<>$empty
62
      slib_jj =$[$slib_cnt+1]
63
      slib_jj=$[$slib_cnt+1]
63
      #sa hauteur
64
      #sa hauteur
64
      slib_height$slib_jj= $[$(slib_height$slib_i)+1]
65
      slib_height$slib_jj=$[$(slib_height$slib_i)+1]
65
      #la hauteur de l'arbre
66
      #la hauteur de l'arbre
66
      slib_sizey=$[max($slib_sizey, $(slib_height$slib_jj))]
67
      slib_sizey=$[max($slib_sizey, $(slib_height$slib_jj))]
67
      # Ne sert à rien ?
68
      # Ne sert à rien ?
68
      slib_cnt$(slib_height$slib_jj)=$[$(slib_cnt$(slib_height$slib_jj))+1]
69
      slib_cnt$(slib_height$slib_jj)=$[$(slib_cnt$(slib_height$slib_jj))+1]
69
      #nombre de sommets
70
      #nombre de sommets
70
      slib_cnt = $[$slib_cnt +1]
71
      slib_cnt=$[$slib_cnt +1]
71
      #position
72
      #position
72
      slib_test=$[($slib_ss)%2]
73
      slib_test=$[($slib_ss)%2]
73
      !ifval $slib_test =1
74
      !ifval $slib_test=1
74
        slib_A$slib_jj=$[$(slib_A$slib_i)+($slib_j-($slib_ss)/2)*$(slib_width$slib_i)]
75
        slib_A$slib_jj=$[$(slib_A$slib_i)+($slib_j-($slib_ss)/2)*$(slib_width$slib_i)]
75
      !else
76
      !else
76
        slib_A$slib_jj=$[$(slib_A$slib_i)+($slib_j-($slib_ss)/2-1)*$(slib_width$slib_i)]
77
        slib_A$slib_jj=$[$(slib_A$slib_i)+($slib_j-($slib_ss)/2-1)*$(slib_width$slib_i)]
77
      !endif
78
      !endif
78
      #calcul de la largeur donnée au sommet $slib_jj pour ses fils éventuels
79
      #calcul de la largeur donnée au sommet $slib_jj pour ses fils éventuels
79
      slib_width$slib_jj=$[$(slib_width$slib_i)/($slib_ss-0.5)]
80
      slib_width$slib_jj=$[$(slib_width$slib_i)/($slib_ss-0.5)]
80
      slib_milieu_prov=$[($(slib_A$slib_i)+2*$(slib_A$slib_jj))/3],$[-($(slib_height$slib_i) +2*$(slib_height$slib_jj))/3]
81
      slib_milieu_prov=$[($(slib_A$slib_i)+2*$(slib_A$slib_jj))/3],$[-($(slib_height$slib_i)+2*$(slib_height$slib_jj))/3]
81
      slib_milieu = !append line $slib_milieu_prov to $slib_milieu
82
      slib_milieu=!append line $slib_milieu_prov to $slib_milieu
82
    !endif
83
    !endif
83
  !next slib_b
84
  !next slib_b
84
!next slib_k
85
!next slib_k
85
slib_s=!line -1 of $slib_position
86
slib_s=!line -1 of $slib_position
86
slib_s = !item 1 of $slib_s
87
slib_s=!item 1 of $slib_s
87
 
88
 
88
#Trace du dessin
89
#Trace du dessin
89
slib_dessin =xrange $[-($slib_s)-5], $[$slib_s+5]\
90
slib_dessin=xrange $[-($slib_s)-5], $[$slib_s+5]\
90
yrange $[-($slib_sizey)-0.5],-0.5\
91
yrange $[-($slib_sizey)-0.5],-0.5\
91
linewidth 2
92
linewidth 2
92
slib_cnt =!linecnt $slib_G
93
slib_cnt=!linecnt $slib_G
93
!for slib_k= 1 to $slib_cnt
94
!for slib_k=1 to $slib_cnt
94
  slib_u =!line $slib_k of $slib_G
95
  slib_u=!line $slib_k of $slib_G
95
  slib_i=!item 1 of $slib_u
96
  slib_i=!item 1 of $slib_u
96
  slib_u=!item 2 to -1 of $slib_u
97
  slib_u=!item 2 to -1 of $slib_u
97
  slib_position_prov=!line $slib_k of $slib_position
98
  slib_position_prov=!line $slib_k of $slib_position
98
  !for slib_j in $slib_u
99
  !for slib_j in $slib_u
99
    !if $slib_j notsametext sentinelle
100
    !if $slib_j notsametext sentinelle
100
      #trace de la droite
101
      #trace de la droite
101
      slib_position_prov1=!line $slib_j of $slib_position
102
      slib_position_prov1=!line $slib_j of $slib_position
102
      slib_dessin = !append line segment $slib_position_prov,$slib_position_prov1, $slib_color1\
103
      slib_segments=!append item $slib_position_prov,$slib_position_prov1 to $slib_segments
103
       to $slib_dessin
-
 
104
      #on coupe les segments au milieu pour mettre un cercle et éventuellement du texte
104
      #on coupe les segments au milieu pour mettre un cercle et éventuellement du texte
105
 
105
 
106
      !if middle iswordof $slib_doption
106
      !if middle iswordof $slib_doption
107
        slib_milieu_prov=!line $slib_j of $slib_milieu
107
        slib_milieu_prov=!line $slib_j of $slib_milieu
108
        slib_dessin = !append line disk $slib_milieu_prov,30,white\
108
        slib_disks=!append line disk $slib_milieu_prov,30,white to $slib_disk
109
circle $slib_milieu_prov, 30,$slib_color3 to $slib_dessin
109
        slib_circles=!append line circle $slib_milieu_prov, 30,$slib_color3 to $slib_circles
110
        !if $slib_textm <> $empty
110
        !if $slib_textm <> $empty
111
          slib_textk=!item $slib_j of $slib_textm
111
          slib_textk=!item $slib_j of $slib_textm
112
          slib_milieu_prov1=!item 1 of $slib_milieu_prov
112
          slib_milieu_prov1=!item 1 of $slib_milieu_prov
113
          slib_milieu_prov2=!item 2 of $slib_milieu_prov
113
          slib_milieu_prov2=!item 2 of $slib_milieu_prov
114
          slib_milieu_prov=$[$slib_milieu_prov1-0.9], $[$slib_milieu_prov2+0.1]
114
          slib_milieu_prov=$[$slib_milieu_prov1-0.9], $[$slib_milieu_prov2+0.1]
115
          slib_dessin =!append line text black,$slib_milieu_prov, medium,$slib_textk to $slib_dessin
115
          slib_texts=!append line text black,$slib_milieu_prov, large,$slib_textk to $slib_texts
116
        !endif
116
        !endif
117
      !endif
117
      !endif
118
    !endif
118
    !endif
119
  !next slib_j
119
  !next slib_j
120
  !if point iswordof $slib_doption
120
  !if point iswordof $slib_doption
121
    slib_dessin =!append line disk $slib_position_prov,30,white\
121
    slib_disks=!append line disk $slib_position_prov,30,white to $slib_disks
122
circle $slib_position_prov,30,$slib_color2 to $slib_dessin
122
    slib_circles=!append line circle $slib_position_prov,30,$slib_color2 to $slib_circles
123
  !endif
123
  !endif
124
  !if $slib_textp <> $empty
124
  !if $(slib_textp[$slib_k]) <> $empty
125
    slib_textk=!item $slib_k of $slib_textp
-
 
126
    slib_position_prov1=!item 1 of $slib_position_prov
125
    slib_position_prov1=!item 1 of $slib_position_prov
127
    slib_position_prov2=!item 2 of $slib_position_prov
126
    slib_position_prov2=!item 2 of $slib_position_prov
128
    slib_position_prov=$[$slib_position_prov1-0.9], $[$slib_position_prov2+0.1]
127
    slib_position_prov=$[$slib_position_prov1-0.9], $[$slib_position_prov2+0.1]
129
    slib_dessin =!append line text black,$slib_position_prov, medium,$slib_textk to $slib_dessin
128
    slib_texts=!append line text black,$slib_position_prov, large,$(slib_textp[$slib_k]) to $slib_texts
130
  !endif
129
  !endif
131
 
-
 
132
!next slib_k
130
!next slib_k
-
 
131
slib_dessin=xrange $[-($slib_s)-5], $[$slib_s+5]\
-
 
132
yrange $[-($slib_sizey)-0.5],-0.5\
-
 
133
linewidth 2\
-
 
134
segments $slib_color1, $slib_segments\
-
 
135
$slib_disks\
-
 
136
$slib_circles\
-
 
137
$slib_texts
133
 
138
 
134
slib_out = $slib_dessin
139
slib_out=$slib_dessin
135
!if url iswordof $slib_doption or html iswordof $slib_doption
140
!if url iswordof $slib_doption or html iswordof $slib_doption
136
  insdraw_size=300,300
141
  insdraw_size=300,300
137
  !insdraw $slib_out
142
  !insdraw $slib_out
138
  slib_out=$ins_url
143
  slib_out=$ins_url
139
  !if html iswordof $slib_doption
144
  !if html iswordof $slib_doption