9 |
|
|
10 |
def __init__(self): |
def __init__(self): |
11 |
self.bgcolor = (0.7, 0.8, 0.6) |
self.bgcolor = (0.7, 0.8, 0.6) |
12 |
self.w = 4 |
self.w = 3 |
13 |
self.h = 3 |
self.h = 2 |
14 |
self.seed = 0 |
self.seed = 0 |
15 |
self.initpaper() |
self.initpaper() |
16 |
|
|
17 |
|
self.key = KeyPresses(self, |
18 |
|
Toggle("showOptimized", 0, "Use optimized papers", "o"), |
19 |
|
Action("Choose random seed", "v", self.randomize, noAnimation=1), |
20 |
|
Action("Edit seed number", re.compile("[0-9]|Back[sS]pace"), |
21 |
|
self.__class__.editSeed, noAnimation=1), |
22 |
|
Action("More/less papers shown", re.compile("[+-]"), self.__class__.npapersadj) , |
23 |
|
*keys |
24 |
|
) |
25 |
|
|
26 |
|
def npapersadj(self, k): |
27 |
|
dw,dh = 0,0 |
28 |
|
if k == "+": dw,dh = [ (0,1), (1,0) ][self.w * 3 < self.h * 4] |
29 |
|
elif k == "-": dw,dh = [ (-1,0), (0,-1) ][self.w * 3 < self.h * 4] |
30 |
|
else: print "NPapersadj called wrongly" |
31 |
|
self.w += dw |
32 |
|
self.h += dh |
33 |
|
|
34 |
|
def randomize(self, *args): |
35 |
|
self.seed = rng.nextInt(2000000000) |
36 |
|
self.initpaper() |
37 |
|
|
38 |
|
def editSeed(self,k): |
39 |
|
if k >= "0" and k <= "9": self.seed = self.seed * 10 + int(k) |
40 |
|
if k == "BackSpace" or k == "Backspace": self.seed = self.seed / 10 |
41 |
|
self.initpaper() |
42 |
|
|
43 |
def initpaper(self): |
def initpaper(self): |
44 |
self.pq = range(0, self.w*self.h) |
self.pq = range(0, self.w*self.h) |
45 |
|
self.opq = range(0, self.w*self.h) |
46 |
paperopt = gzz.gfx.gl.PaperOptions.instance() |
paperopt = gzz.gfx.gl.PaperOptions.instance() |
47 |
tmp_paperopt = paperopt.use_opengl_1_1 |
tmp_paperopt = paperopt.use_opengl_1_1 |
48 |
|
|
49 |
if not self.has_dual_papers: |
if not self.has_dual_papers: |
50 |
for i in range(0,self.w*self.h): |
for i in range(0,self.w*self.h): |
51 |
self.pq[i] = getpaper(self.seed + i) |
self.pq[i] = getpaper(self.seed + i) |
52 |
|
self.opq[i] = getpaper(self.seed + i, optimized=1) |
53 |
else: |
else: |
54 |
for i in range(0, self.w*self.h): |
for i in range(0, self.w*self.h): |
55 |
paperopt.use_opengl_1_1 = i & 1 |
paperopt.use_opengl_1_1 = i & 1 |
56 |
self.pq[i] = getpaper(self.seed + i / 2) |
self.pq[i] = getpaper(self.seed + i / 2) |
57 |
|
self.opq[i] = getpaper(self.seed + i / 2, optimized=1) |
58 |
|
|
59 |
paperopt.use_opengl_1_1 = tmp_paperopt |
paperopt.use_opengl_1_1 = tmp_paperopt |
60 |
|
|
75 |
index += 1 |
index += 1 |
76 |
|
|
77 |
|
|
78 |
def key(self, k): |
def OLDkey(self, k): |
|
if k >= "0" and k <= "9": self.seed = self.seed * 10 + int(k) |
|
|
if k == "BackSpace" or k == "Backspace": self.seed = self.seed / 10 |
|
79 |
if k == "v": |
if k == "v": |
80 |
self.seed = rng.nextInt(200000000) |
self.seed = rng.nextInt(200000000) |
81 |
if k == "f": # as fork |
if k == "f": # as fork |
85 |
self.initpaper() |
self.initpaper() |
86 |
AbstractUpdateManager.setNoAnimation() |
AbstractUpdateManager.setNoAnimation() |
87 |
AbstractUpdateManager.chg() |
AbstractUpdateManager.chg() |
|
dw,dh = 0,0 |
|
|
if k == "+": dw,dh = [ (0,1), (1,0) ][self.w * 3 < self.h * 4] |
|
|
if k == "-": dw,dh = [ (-1,0), (0,-1) ][self.w * 3 < self.h * 4] |
|
|
self.w += dw |
|
|
self.h += dh |
|
88 |
|
|
89 |
def scene(self, vs): |
def scene(self, vs): |
90 |
size = vs.getSize() |
size = vs.getSize() |
94 |
cs1w = .47*size.width/self.w |
cs1w = .47*size.width/self.w |
95 |
cs1h = .47*size.height/self.h |
cs1h = .47*size.height/self.h |
96 |
|
|
97 |
scale = float(zoom) |
print self.w, self.h |
98 |
|
|
99 |
|
scale = float(self.zoom) |
100 |
cs2 = vs.coords.affineCoordsys(0, 1, 0, 0, scale/cs1w, 0, 0, scale/cs1h) |
cs2 = vs.coords.affineCoordsys(0, 1, 0, 0, scale/cs1w, 0, 0, scale/cs1h) |
101 |
vs.matcher.add(cs2, "tex") |
vs.matcher.add(cs2, "tex") |
102 |
|
|
103 |
self.boxes = [] |
self.boxes = [] |
104 |
cs1 = range(0,self.w*self.h) |
cs1 = range(0,self.w*self.h) |
105 |
for i in range(0,self.w*self.h): |
for i in range(0,self.w*self.h): |
106 |
if i >= len(self.pq): break |
if i >= len(self.pq): self.initpaper() |
107 |
|
|
108 |
x = (i%self.w+.5)*size.width/self.w |
x = (i%self.w+.5)*size.width/self.w |
109 |
y = (i/self.w+.5)*size.height/self.h |
y = (i/self.w+.5)*size.height/self.h |
116 |
|
|
117 |
vs.matcher.add(cs1[i], str(i)) |
vs.matcher.add(cs1[i], str(i)) |
118 |
|
|
119 |
vs.map.put(self.pq[i], cs1[i], cs2) |
if self.showOptimized: pap = self.pq[i] |
120 |
|
else: pap = self.opq[i] |
121 |
|
vs.map.put(pap, cs1[i], cs2) |
122 |
putText(vs, cs1[i], |
putText(vs, cs1[i], |
123 |
str(self.seed + i / (self.has_dual_papers + 1)), |
str(self.seed + i / (self.has_dual_papers + 1)), |
124 |
color=(0,0,0), x=-1,y=1,z=-1, h=.5, key=str(i)) |
color=(0,0,0), x=-1,y=1,z=-1, h=.5, key=str(i)) |