gzz-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gzz-commits] gzz/gfx demo/fillet/ambiguity.py demo/paper/sin...


From: Tuomas J. Lukka
Subject: [Gzz-commits] gzz/gfx demo/fillet/ambiguity.py demo/paper/sin...
Date: Thu, 19 Dec 2002 18:05:46 -0500

CVSROOT:        /cvsroot/gzz
Module name:    gzz
Changes by:     Tuomas J. Lukka <address@hidden>        02/12/19 18:05:46

Modified files:
        gfx/demo/fillet: ambiguity.py 
        gfx/demo/paper : singlepaper.py util.py 
        gfx/util       : demokeys.py 

Log message:
        More demo fixes

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/demo/fillet/ambiguity.py.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/demo/paper/singlepaper.py.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/demo/paper/util.py.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/util/demokeys.py.diff?tr1=1.2&tr2=1.3&r1=text&r2=text

Patches:
Index: gzz/gfx/demo/fillet/ambiguity.py
diff -u gzz/gfx/demo/fillet/ambiguity.py:1.3 
gzz/gfx/demo/fillet/ambiguity.py:1.4
--- gzz/gfx/demo/fillet/ambiguity.py:1.3        Thu Dec 12 05:04:40 2002
+++ gzz/gfx/demo/fillet/ambiguity.py    Thu Dec 19 18:05:46 2002
@@ -3,6 +3,7 @@
 from __future__ import nested_scopes
 
 from util import *
+from gfx.util.demokeys import *
 
 class Scene(AlphaCells):
     """Demonstrate the ambiguity of box-line views.
@@ -16,19 +17,11 @@
        AlphaCells.__init__(self)
        self.ind = 5
        self.bgcolor = (0.9, 0.6, 0.6)
-       self.shift = 0
-       self.fillet = 0
-    def key(self, k):
-       """Keys:
+       self.key = KeyPresses(self,
+Toggle("fillet", 0, "filleting", "f", noAnimation=1),
+Toggle("shift", 0, "layout ambiguity (shifting)", "s"),
+       )
 
-       s: Toggle layout
-       f: Toggle filletting
-       """
-       if k == "s":
-           self.shift = 1-self.shift
-       if k == "f":
-           self.fillet = 1-self.fillet
-           gzz.client.AbstractUpdateManager.setNoAnimation()
     def putcells(self, vs, dx):
        d = vs.getSize()
        w = d.width / 20
Index: gzz/gfx/demo/paper/singlepaper.py
diff -u gzz/gfx/demo/paper/singlepaper.py:1.3 
gzz/gfx/demo/paper/singlepaper.py:1.4
--- gzz/gfx/demo/paper/singlepaper.py:1.3       Thu Dec 19 10:31:00 2002
+++ gzz/gfx/demo/paper/singlepaper.py   Thu Dec 19 18:05:46 2002
@@ -1,6 +1,7 @@
 from __future__ import nested_scopes
 from util import *
 from gfx.util.misc import *
+import re
 
 class Scene:
     """Shows a single unique background texture at a time.
@@ -16,23 +17,27 @@
 
        print "Paper2scene, keys = ",keys
        self.key = KeyPresses(self, 
-           Action("Choose random seed", "v", self.randomize,
-               noAnimation=1),
+Action("Choose random seed", "v", self.randomize, noAnimation=1),
+Action("Edit seed number", re.compile("[0-9]|Back[sS]pace"), 
+                               self.__class__.editSeed, noAnimation=1),
            *keys
            )
 
-    def randomize(self):
+    def randomize(self, *args):
        self.seed = rng.nextInt(2000000000)
        self.initpaper()
 
+    def editSeed(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
+       self.initpaper()
+
     def initpaper(self):
         self.pq = getpaper(self.seed)
         self.opq = getpaper(self.seed, optimized = 1)
 
     def OLDkey(self, k):
         oldseed = self.seed
-        if k >= "0" and k <= "9": self.seed = self.seed * 10 + int(k)
-        if k == "BackSpace" or k == "Backspace": self.seed = self.seed / 10
        if k == 'o':
            rotatelist(self.optimized)
 
Index: gzz/gfx/demo/paper/util.py
diff -u gzz/gfx/demo/paper/util.py:1.3 gzz/gfx/demo/paper/util.py:1.4
--- gzz/gfx/demo/paper/util.py:1.3      Thu Dec 19 10:31:00 2002
+++ gzz/gfx/demo/paper/util.py  Thu Dec 19 18:05:46 2002
@@ -97,16 +97,21 @@
 
 rng = java.util.Random()
 
-def toggleOpengl11():
+def toggleOpengl11(*args):
     gzz.gfx.gl.PaperOptions.use_opengl_1_1 = \
            not gzz.gfx.gl.PaperOptions.use_opengl_1_1
     print 'Use of OpenGL 1.1:', gzz.gfx.gl.PaperOptions.use_opengl_1_1 
 
+def togglePapermillDebug(*args):
+    gfx.libpaper.papermill.dbg = not gfx.libpaper.papermill.dbg
+    print "Papermilldbg ",gfx.libpaper.papermill.dbg
+
 from gfx.util.demokeys import *
 keys = [
     SlideLog("zoom", 900.0, "zoom factor", "<", ">"),
     Action("Reload textures", "t", retexture),
     Action("Toggle using OpenGL 1.1 -compatibility mode", "O", toggleOpengl11),
+    Action("Toggle papermill debug", "d", togglePapermillDebug),
 ]
 
 benchmark = 0
@@ -120,8 +125,6 @@
         passmask[i] = not passmask[i]
        print passmask
         currentScene.initpaper()
-    if k == "d":
-        gfx.libpaper.papermill.dbg = not gfx.libpaper.papermill.dbg
 #    if k == "c":
 #        global cmap
 #        x,y = 0,0
Index: gzz/gfx/util/demokeys.py
diff -u gzz/gfx/util/demokeys.py:1.2 gzz/gfx/util/demokeys.py:1.3
--- gzz/gfx/util/demokeys.py:1.2        Thu Dec 19 10:31:00 2002
+++ gzz/gfx/util/demokeys.py    Thu Dec 19 18:05:46 2002
@@ -2,26 +2,38 @@
 
 from __future__ import nested_scopes
 from gzz.client import AbstractUpdateManager
+import re
 
+somere = re.compile("[ab]")
 
 class KeyPresses:
+    """An object that can function as the ``key`` method
+    of a gl demo.
+
+    """
     def __init__(self, scene, *args):
        self.scene = scene
        print args
        self.things = args
        self.keymap = {}
+       self.res = []
        self.__doc__ = ""
        print "KEYMAP: things = ",self.things
        for t in self.things:
            for k in t.getKeys():
                print "KEY: ",k
                self.keymap[k[0]] = k[1]
+           self.res.extend(t.getREs())
            t.prepare(scene)
-           self.__doc__ += t.descline
+           self.__doc__ += "\n" + t.descline
     def __call__(self, key):
        if self.keymap.has_key(key):
            return self.keymap[key](self.scene,key)
-       print "No such key known: ",key,"Here:",self.keymap
+       else:
+           for r in self.res:
+               if r[0].match(key):
+                   return r[1](self.scene, key)
+       print "No such key known: ",key,"Here:",self.keymap,self.res
     
 class _NoAnimation:
     def __init__(self, func): self.func = func
@@ -38,13 +50,21 @@
            self.keys = [
                (k[0], _NoAnimation(k[1])) for k in self.keys]
     def getKeys(self):
-       return self.keys
+       return [k for k in self.keys if not isinstance(k[0], somere.__class__)]
            
     def getREs(self):
        """Get the regular expressions this object
        wants to catch.
        """
-       pass 
+       return [k for k in self.keys if isinstance(k[0], somere.__class__)]
+    def keyStrings(self):
+       list = []
+       for k in self.keys:
+           if isinstance(k[0], somere.__class__):
+               list.append(k[0].pattern)
+           else:
+               list.append(k[0])
+       return ", ".join(list)
 
 class Action(_Presses):
     """A key used to fire an action.
@@ -54,23 +74,25 @@
           (key, self.act),
            )
        self.func = func
-       self.descline = key + ": " + description
+       self.descline = self.keyStrings() + ": " + description
 
     def prepare(self, scene):
        pass
 
     def act(self, scene, key):
-       self.func()
+       self.func(scene, key)
 
 
 class Toggle(_Presses):
     """A key used to toggle a feature on or off.
     """
     def __init__(self, attr, default, description, key, **opts):
-       _Presses.__init__(self, opts, key = self.toggle)
+       _Presses.__init__(self, opts, 
+           (key, self.toggle)
+           )
        self.attr = attr
        self.default = default
-       self.descline = key + ": Toggle " + description
+       self.descline = self.keyStrings() + ": Toggle " + description
 
     def prepare(self, scene):
        setattr(scene, self.attr, self.default)
@@ -88,7 +110,7 @@
            )
        self.attr = attr
        self.default = default
-       self.descline = keydown+","+keyup + ": Adjust " + description
+       self.descline = self.keyStrings()+ ": Adjust " + description
 
     def prepare(self, scene):
        setattr(scene, self.attr, self.default)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]