File: squaretile

package info (click to toggle)
wims 2%3A4.29a%2Bdfsg1-3
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 185,704 kB
  • sloc: xml: 366,687; javascript: 120,570; ansic: 62,341; java: 62,170; sh: 7,744; perl: 3,937; yacc: 3,217; cpp: 1,915; lex: 1,805; makefile: 1,084; lisp: 914; pascal: 601; python: 520; php: 318; asm: 7
file content (108 lines) | stat: -rw-r--r-- 4,173 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
!if $wims_read_parm!=slib_header
  !goto proc
!endif
slib_title=Square tile
slib_author=Bernadette, Perrin-Riou
slib_example=[0,0,2,4;2,2,4,10],[300,300],[blue,green],html\
[0,0,2,4;2,2,4,10],[,300],[blue,green],html\
[0,0,2,4;2,2,4,5;-1,-1,1,2],[300,],[black,violet],html\
[0,0;0,1;0,2;0,3;1,2],,[blue,green],html\
[0,0;0,2;0,3;1,1;2,2;3,3],,,html\
[0,0;0,2;0,3;1,1;2,2;3,3],,[blue],html\
[0,0;0,2;0,3;1,1,t2;2,2;3,3,t1],,[blue],html\
[0,0;0,2;0,3;1,1,t1;2,2;3,3,t2],,[blue],html\
[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\

!exit

:proc
!reset slib_out slib_data slib_color slib_sizex slib_sizey
!distribute items $wims_read_parm into slib_d,slib_size, slib_color,slib_option
slib_size=!declosing $slib_size
!if $slib_size=$empty
  slib_size=200
!endif
!distribute items $slib_size into slib_sizex,slib_sizey
!distribute items -1000,-1000,1000,1000 into slib_maxx,slib_maxy,slib_minx,slib_miny
slib_d=!declosing $slib_d
slib_d=!rows2lines $slib_d
slib_dcnt=!linecnt $slib_d
slib_d=!lines2rows $slib_d
slib_color=!declosing $slib_color
!default slib_color=red

slib_cnt=0
!reset slib_list
!for slib_n = 1 to $slib_dcnt
  slib_square=$(slib_d[$slib_n;])
  slib_square=!nospace $slib_square
  !if $(slib_square[4])!=$empty
    !for slib_i=0 to $(slib_square[3])-1
      !for slib_j = 0 to $(slib_square[4])-1
        slib_rect=$[$(slib_square[1])+$slib_i],$[$(slib_square[2])+$slib_j],$[$(slib_square[1])+$slib_i+1],$[$(slib_square[2])+$slib_j+1]
        !if $(slib_color[2])!=$empty
          slib_out=!append line frectangle $slib_rect,$(slib_color[2]) to $slib_out
        !endif
        slib_out=!append line rectangle $slib_rect,$(slib_color[1]) to $slib_out
      !next
    !next
    slib_maxx=$[max($(slib_square[1])+$(slib_square[3])+1,$slib_maxx)]
    slib_maxy=$[max($(slib_square[2])+$(slib_square[4])+1,$slib_maxy)]
    slib_minx=$[min($(slib_square[1]),$slib_minx)]
    slib_miny=$[min($(slib_square[2]),$slib_miny)]
  !else
    !if $(slib_square[3])!=$empty
      !if $(slib_square[3])=t2
        slib_tmp=$[$(slib_square[1])],$[$(slib_square[2])],$[$(slib_square[1])+1],$[$(slib_square[2])],$[$(slib_square[1])+1],$[$(slib_square[2])+1]
      !endif
      !if $(slib_square[3])=t1
        slib_tmp=$[$(slib_square[1])],$[$(slib_square[2])],$[$(slib_square[1])],$[$(slib_square[2])+1],$[$(slib_square[1])+1],$[$(slib_square[2])+1]
      !endif
      !if $(slib_square[3])=t3
        slib_tmp=$[$(slib_square[1])],$[$(slib_square[2])],$[$(slib_square[1])+1],$[$(slib_square[2])],$[$(slib_square[1])],$[$(slib_square[2])+1]
      !endif
      !if $(slib_square[3])=t4
        slib_tmp=$[$(slib_square[1])+1],$[$(slib_square[2])],$[$(slib_square[1])+1],$[$(slib_square[2])+1],$[$(slib_square[1])],$[$(slib_square[2])+1]
      !endif
      !if $(slib_color[2])!=$empty
        slib_out=!append line ftriangle $slib_tmp,$(slib_color[2]) \
to $slib_out
      !endif
      slib_out=!append line triangle $slib_tmp,$(slib_color[1]) \
to $slib_out
    !else
      slib_rect=$[$(slib_square[1])],$[$(slib_square[2])],$[$(slib_square[1])+1],$[$(slib_square[2])+1]
      !if $(slib_color[2])!=$empty
        slib_out=!append line frectangle $slib_rect,$(slib_color[2]) \
to $slib_out
      !endif
      slib_out=!append line rectangle $slib_rect,$(slib_color[1]) to $slib_out
    !endif
    slib_maxx=$[max($(slib_square[1])+1,$slib_maxx)]
    slib_maxy=$[max($(slib_square[2])+1,$slib_maxy)]
    slib_minx=$[min($(slib_square[1]),$slib_minx)]
    slib_miny=$[min($(slib_square[2]),$slib_miny)]
  !endif
!next
!if $slib_sizey=$empty
  slib_sizey=$[round($slib_sizex*(2+$slib_maxy-($slib_miny))/(2+$slib_maxx-($slib_minx)))]
!else
  !if $slib_sizex=$empty
    slib_sizex=$[round($slib_sizey*(2+$slib_maxx-($slib_minx))/(2+$slib_maxy-($slib_miny)))]
  !endif
!endif

slib_out=xrange $slib_minx-1,$slib_maxx+1\
yrange $slib_miny-1,$slib_maxy+1\
$slib_out

!if url iswordof $slib_option or html iswordof $slib_option
  insdraw_size=$slib_sizex,$slib_sizey
  !insdraw $slib_out
  slib_out=$ins_url
  !if html iswordof $slib_option
    slib_out=<img src="$ins_url" alt="">
  !else
    slib_out=$slib_out,$insdraw_size
  !endif
!endif