Subversion Repositories wimsdev

Rev

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

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