/[gzz]/gzz/gfx/demo/paper/multipaper.py
ViewVC logotype

Diff of /gzz/gfx/demo/paper/multipaper.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2 by tjl, Fri Dec 20 16:00:21 2002 UTC revision 1.3 by tjl, Sun Dec 29 20:33:12 2002 UTC
# Line 9  class Scene: Line 9  class Scene:
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                            
# Line 46  class Scene: Line 75  class Scene:
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
# Line 58  class Scene: Line 85  class Scene:
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()
# Line 72  class Scene: Line 94  class Scene:
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
# Line 92  class Scene: Line 116  class Scene:
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))

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26