File: square.wl

package info (click to toggle)
wadc 3.1-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 7,352 kB
  • sloc: java: 3,808; ansic: 1,950; xml: 135; makefile: 67; sh: 34
file content (92 lines) | stat: -rw-r--r-- 1,064 bytes parent folder | download
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
#"standard.h"

main {
  seed(rand(0,1337))
  thing
  movestep(-192,-192)
  rectop(1024)
}

rectop(n) {
  quad(rec(div(n,2)) rotleft)
}

square(n) {
  { final(mul(n,2)) | rec(n) | rec(n) }
}

rec(n) {
  eq(n,64)
    ? final(mul(n,2))
    : movestep(n,n)
      quad(square(div(n,2)) rotleft)
      movestep(sub(0,n),sub(0,n))
}

final(n) {
  { solids(n) | spaces(n) | spaces(n) }
}





-- SPACES --

spaces(n) {
  { base(n) | base(n) | trim(n) }
}

base(n) {
  wall("BRICK7")
  sqr(n)
  floor("DEM1_6")
  rightsector(0,128,128)
}

trim(n) {
  wall("MODWALL1")
  sqr(n)
  floor("FLAT4")
  rightsector(0,128,128)
  movestep(16,16)
  sqr(sub(n,32))
  floor("FLAT8")
  innerrightsector(0,128,128)
  movestep(-16,-16)
}




-- SOLIDS --

solids(n) {
  { octasolid(n,div(n,4)) | plat(n) | 0 }
}

plat(n) {
  sqr(n)
  rightsector(0,64,128)
}

octasolid(n,s) {
  wall("MARBLE3")
  quad(
    straight(s)
    rotright
    eright(s)
    right(s)
    rightsector(0,128,128)
    rotright
    movestep(n,0)
    rotright
  )
}




-- TOOLS --

sqr(n) { quad(step(n,0) rotright) }