Subversion Repositories wimsdev

Rev

Rev 10989 | Rev 13594 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
10989 bpr 1
 
2
!if $wims_read_parm!=slib_header
3
 !goto proc
4
!endif
5
slib_title=Square tile
6
slib_author=Bernadette, Perrin-Riou
7
slib_example=[0,0,2,4;2,2,4,10],[300,300],[blue,green],html\
8
[0,0,2,4;2,2,4,10],[,300],[blue,green],html\
9
[0,0,2,4;2,2,4,5;-1,-1,1,2],[300,],[black,violet],html\
10
[0,0;0,1;0,2;0,3;1,2],,[blue,green],html\
11
[0,0;0,2;0,3;1,1;2,2;3,3],,,html\
12
[0,0;0,2;0,3;1,1;2,2;3,3],,[blue],html\
13
[0,0;0,2;0,3;1,1,t2;2,2;3,3,t1],,[blue],html\
14
[0,0;0,2;0,3;1,1,t1;2,2;3,3,t2],,[blue],html\
15
[0,0,2,4;2,2,4,5;-1,-1,1,2;2,7,t1;3,7,t2;4,7,t3;5,7,t4],[300,300],[black,violet],html\
16
 
17
!exit
18
 
19
:proc
20
!reset slib_out slib_data slib_color slib_sizex slib_sizey
21
!distribute items $wims_read_parm into slib_d,slib_size, slib_color,slib_option
22
slib_size=!declosing $slib_size
23
!if $slib_size=$empty
24
  slib_size=200
25
!endif
26
!distribute items $slib_size into slib_sizex,slib_sizey
27
!distribute items -1000,-1000,1000,1000 into slib_maxx,slib_maxy,slib_minx,slib_miny
28
slib_d=!declosing $slib_d
29
slib_d=!rows2lines $slib_d
30
slib_dcnt=!linecnt $slib_d
31
slib_d=!lines2rows $slib_d
32
slib_color=!declosing $slib_color
33
!default slib_color=red
34
 
35
slib_cnt=0
36
!reset slib_list
37
!for slib_n = 1 to $slib_dcnt
38
     slib_square=$(slib_d[$slib_n;])
39
     slib_square=!nospace $slib_square
40
     !if $(slib_square[4])!=$empty
41
         !for slib_i=0 to $(slib_square[3])-1
42
           !for slib_j = 0 to $(slib_square[4])-1
11042 bpr 43
             slib_rect=$[$(slib_square[1])+$slib_i],$[$(slib_square[2])+$slib_j],$[$(slib_square[1])+$slib_i+1],$[$(slib_square[2])+$slib_j+1]
10989 bpr 44
             !if $(slib_color[2])!=$empty
11042 bpr 45
               slib_out=!append line frectangle $slib_rect,$(slib_color[2]) to $slib_out
10989 bpr 46
             !endif
11042 bpr 47
             slib_out=!append line rectangle $slib_rect,$(slib_color[1]) to $slib_out
10989 bpr 48
           !next
49
          !next
50
          slib_maxx=$[max($(slib_square[1])+$(slib_square[3])+1,$slib_maxx)]
51
          slib_maxy=$[max($(slib_square[2])+$(slib_square[4])+1,$slib_maxy)]
52
          slib_minx=$[min($(slib_square[1]),$slib_minx)]
53
          slib_miny=$[min($(slib_square[2]),$slib_miny)]
54
    !else
55
         !if $(slib_square[3])!=$empty
56
           !if $(slib_square[3])=t2
57
             slib_tmp=$[$(slib_square[1])],$[$(slib_square[2])],$[$(slib_square[1])+1],$[$(slib_square[2])],$[$(slib_square[1])+1],$[$(slib_square[2])+1]
58
           !endif
59
           !if $(slib_square[3])=t1
60
             slib_tmp=$[$(slib_square[1])],$[$(slib_square[2])],$[$(slib_square[1])],$[$(slib_square[2])+1],$[$(slib_square[1])+1],$[$(slib_square[2])+1]
61
           !endif
62
           !if $(slib_square[3])=t3
63
             slib_tmp=$[$(slib_square[1])],$[$(slib_square[2])],$[$(slib_square[1])+1],$[$(slib_square[2])],$[$(slib_square[1])],$[$(slib_square[2])+1]
64
           !endif
65
           !if $(slib_square[3])=t4
66
             slib_tmp=$[$(slib_square[1])+1],$[$(slib_square[2])],$[$(slib_square[1])+1],$[$(slib_square[2])+1],$[$(slib_square[1])],$[$(slib_square[2])+1]
67
           !endif
68
           !if $(slib_color[2])!=$empty
69
             slib_out=!append line ftriangle $slib_tmp,$(slib_color[2]) \
70
to $slib_out
71
           !endif
72
           slib_out=!append line triangle $slib_tmp,$(slib_color[1]) \
73
to $slib_out
74
         !else
11042 bpr 75
           slib_rect=$[$(slib_square[1])],$[$(slib_square[2])],$[$(slib_square[1])+1],$[$(slib_square[2])+1]
10989 bpr 76
           !if $(slib_color[2])!=$empty
11042 bpr 77
             slib_out=!append line frectangle $slib_rect,$(slib_color[2]) \
10989 bpr 78
to $slib_out
79
           !endif
11042 bpr 80
          slib_out=!append line rectangle $slib_rect,$(slib_color[1]) to $slib_out
10989 bpr 81
        !endif
82
        slib_maxx=$[max($(slib_square[1])+1,$slib_maxx)]
83
        slib_maxy=$[max($(slib_square[2])+1,$slib_maxy)]
84
        slib_minx=$[min($(slib_square[1]),$slib_minx)]
85
        slib_miny=$[min($(slib_square[2]),$slib_miny)]
86
     !endif
87
!next
88
!if $slib_sizey=$empty
89
  slib_sizey=$[round($slib_sizex*(2+$slib_maxy-($slib_miny))/(2+$slib_maxx-($slib_minx)))]
90
!else
91
  !if $slib_sizex=$empty
92
    slib_sizex=$[round($slib_sizey*(2+$slib_maxx-($slib_minx))/(2+$slib_maxy-($slib_miny)))]
93
  !endif
94
!endif
95
 
96
slib_out=xrange $slib_minx-1,$slib_maxx+1\
97
yrange $slib_miny-1,$slib_maxy+1\
98
$slib_out
99
 
100
!if url iswordof $slib_option or html iswordof $slib_option
101
  insdraw_size=$slib_sizex,$slib_sizey
102
  !insdraw $slib_out
103
  slib_out=$ins_url
104
  !if html iswordof $slib_option
105
    slib_out=<img src="$ins_url" alt="" />
106
 !else
107
    slib_out=$slib_out,$insdraw_size
108
 !endif
109
!endif