gzz-commits
[Top][All Lists]
Advanced

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

[Gzz-commits] gzz ./TODO gfx/demo/fillet/zbuffer.py gfx/demo/...


From: Tuomas J. Lukka
Subject: [Gzz-commits] gzz ./TODO gfx/demo/fillet/zbuffer.py gfx/demo/...
Date: Fri, 20 Dec 2002 11:00:22 -0500

CVSROOT:        /cvsroot/gzz
Module name:    gzz
Changes by:     Tuomas J. Lukka <address@hidden>        02/12/20 11:00:21

Modified files:
        .              : TODO 
        gfx/demo/fillet: zbuffer.py 
        gfx/demo/paper : combiners.py combinerutil.py multipaper.py 
                         singlepaper.py util.py 
        gfx/libcoords  : Coords.cxx 
        gfx/util       : demokeys.py 
        test/gzz/vob   : vobcoorder.test 

Log message:
        Demo improvements; Important fix to interp code

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/TODO.diff?tr1=1.468&tr2=1.469&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/demo/fillet/zbuffer.py.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/demo/paper/combiners.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/demo/paper/combinerutil.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/demo/paper/multipaper.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/demo/paper/singlepaper.py.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/demo/paper/util.py.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/libcoords/Coords.cxx.diff?tr1=1.58&tr2=1.59&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/util/demokeys.py.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/test/gzz/vob/vobcoorder.test.diff?tr1=1.9&tr2=1.10&r1=text&r2=text

Patches:
Index: gzz/TODO
diff -u gzz/TODO:1.468 gzz/TODO:1.469
--- gzz/TODO:1.468      Thu Dec 19 22:08:57 2002
+++ gzz/TODO    Fri Dec 20 11:00:20 2002
@@ -19,6 +19,9 @@
 0.8alpha4: Cleanup release after crucial demos; make it possible for anyone to
            get *THE* demo up and running
            
+    jvk / mudyc:
+       - fix papermill OpenGL 1.1 compatibility mode: on NV1X, I get
+         a white paper in the single paper scene of "make runpaper"
     vegai:
        + "make committable": remove CLASSES and all object files,
          compile normal and GL and test both normal and GL;
@@ -51,6 +54,9 @@
        - go through most important GL demos and redo the interfaces
          and document
            - paper
+               - register combiners: separate nv combiner source, show in 
+                 demos.
+                   - not in hash at first
            - xupdf
                - fix for new buoys
            - irregu 
Index: gzz/gfx/demo/fillet/zbuffer.py
diff -u gzz/gfx/demo/fillet/zbuffer.py:1.3 gzz/gfx/demo/fillet/zbuffer.py:1.4
--- gzz/gfx/demo/fillet/zbuffer.py:1.3  Thu Dec 12 13:39:54 2002
+++ gzz/gfx/demo/fillet/zbuffer.py      Fri Dec 20 11:00:21 2002
@@ -1,6 +1,7 @@
 #(c): Tuomas J. Lukka
 
 from util import *
+from gfx.util.demokeys import *
 
 
 class Scene:
@@ -11,37 +12,17 @@
     pieces that are rendered into Z-buffer.
     """
     def __init__(self):
-       self.ind = 5
-       self.rotate = 0
-       self.conn = 1
-       self.color = 0
-       self.movel = 0
-       self.polymode = 0
        initConnTexs()
-    def key(self, k):
-       """Keys:
+       self.ind = 5
 
-       p: Rotate view to show Z-buffer use
-       t: Change fillet type
-       k: Toggle drawing of the connection 
-       v: Toggle coloring of the connecting segment
-       s: Toggle shifting of one cell
-       m: Toggle polygon mode to show the polygons drawn.
-       """
-       if k == "t":
-           self.ind += 1
-           self.ind %= len(cellTexs)
-           print "IND NOW: ",self.ind
-       elif k == "p":
-           self.rotate = 1 - self.rotate
-       elif k == "k":
-           self.conn = 1 - self.conn
-       elif k == "v":
-           self.color = 1 - self.color
-       elif k == "s":
-           self.movel = 1 - self.movel
-       elif k == "m":
-           self.polymode = 1 - self.polymode
+       self.key = KeyPresses(self,
+Toggle("rotate", 0, "rotation to show Z-buffer use", "p"),
+Toggle("conn", 1, "drawing of connection", "k", noAnimation = 1),
+Toggle("color", 0, "coloring of the connecting segment", "v", noAnimation = 1),
+Toggle("movel", 0, "shifting one of the rectangles", "s"),
+Toggle("polymode", 0, "drawing polygons or only their edges", "m", noAnimation 
= 1),
+ListIndex("ind", cellTexs, 0, "fillet type", "<", ">", noAnimation = 1),
+       )
     def scene(self, vs):
        d = vs.getSize()
            
Index: gzz/gfx/demo/paper/combiners.py
diff -u gzz/gfx/demo/paper/combiners.py:1.1 gzz/gfx/demo/paper/combiners.py:1.2
--- gzz/gfx/demo/paper/combiners.py:1.1 Thu Dec 19 08:55:16 2002
+++ gzz/gfx/demo/paper/combiners.py     Fri Dec 20 11:00:21 2002
@@ -9,9 +9,10 @@
     def __init__(self):
        self.bgcolor = (0.7, 0.8, 0.6)
        self.pt = PaperTemplate()
-       self.tex0comb = "RGB"
+       self.tex0comb = "RGB0"
+       self.tex1comb = "RGB1"
+
        self.isectcomb = "BAND0"
-       self.tex1comb = "RGB"
     def key(self, k):
         if k == "F1":
             list = texcodes.keys()
Index: gzz/gfx/demo/paper/combinerutil.py
diff -u gzz/gfx/demo/paper/combinerutil.py:1.1 
gzz/gfx/demo/paper/combinerutil.py:1.2
--- gzz/gfx/demo/paper/combinerutil.py:1.1      Thu Dec 19 08:55:16 2002
+++ gzz/gfx/demo/paper/combinerutil.py  Fri Dec 20 11:00:21 2002
@@ -294,13 +294,13 @@
                                        self.texgen0.vecs[1][0]*sca,
                                        self.texgen0.vecs[0][1]*sca,
                                        self.texgen0.vecs[1][1]*sca)
-       vs.matcher.add(cs1, "1")
+       vs.matcher.add(into, cs1, "1")
        cs2 = vs.coords.affineCoordsys(into, 10, self.x1, self.y1,
                                        self.texgen1.vecs[0][0]*sca,
                                        self.texgen1.vecs[1][0]*sca,
                                        self.texgen1.vecs[0][1]*sca,
                                        self.texgen1.vecs[1][1]*sca)
-       vs.matcher.add(cs2, "2")
+       vs.matcher.add(into, cs2, "2")
 
        vs.map.put(pq, cs1, cs2)
        vs.map.put(self.frame, vs.scaleCS(cs1, "s", x0s, y0s))
Index: gzz/gfx/demo/paper/multipaper.py
diff -u gzz/gfx/demo/paper/multipaper.py:1.1 
gzz/gfx/demo/paper/multipaper.py:1.2
--- gzz/gfx/demo/paper/multipaper.py:1.1        Thu Dec 19 08:55:16 2002
+++ gzz/gfx/demo/paper/multipaper.py    Fri Dec 20 11:00:21 2002
@@ -3,6 +3,8 @@
 from util import *
 
 class Scene:
+    """ A scene showing multiple papers.
+    """
     has_dual_papers = 0
 
     def __init__(self):
Index: gzz/gfx/demo/paper/singlepaper.py
diff -u gzz/gfx/demo/paper/singlepaper.py:1.4 
gzz/gfx/demo/paper/singlepaper.py:1.5
--- gzz/gfx/demo/paper/singlepaper.py:1.4       Thu Dec 19 18:05:46 2002
+++ gzz/gfx/demo/paper/singlepaper.py   Fri Dec 20 11:00:21 2002
@@ -57,6 +57,7 @@
                                        size.width, 0,
                                        0, size.height)
        scale = float(self.zoom)
+       print "Scene: ",self.zoom,scale
        cs2 = vs.coords.affineCoordsys(0, 0, 0, 0,
                                        scale / size.width, 0,
                                        0, scale / size.height)
Index: gzz/gfx/demo/paper/util.py
diff -u gzz/gfx/demo/paper/util.py:1.4 gzz/gfx/demo/paper/util.py:1.5
--- gzz/gfx/demo/paper/util.py:1.4      Thu Dec 19 18:05:46 2002
+++ gzz/gfx/demo/paper/util.py  Fri Dec 20 11:00:21 2002
@@ -84,7 +84,7 @@
                demowindow.w, passmask=passmask)
     else:
        pap = ThePaperMill().getPaper(seed, passmask=passmask)
-    #print "Pq: ",seed
+    print "Pq: ",seed
     return GLRen.createPaperQuad(pap, -1, -1, +1, 1, 0)
 
 # A jython test program for papers
@@ -109,7 +109,7 @@
 from gfx.util.demokeys import *
 keys = [
     SlideLog("zoom", 900.0, "zoom factor", "<", ">"),
-    Action("Reload textures", "t", retexture),
+    Action("Reload textures", "t", lambda *args: retexture()),
     Action("Toggle using OpenGL 1.1 -compatibility mode", "O", toggleOpengl11),
     Action("Toggle papermill debug", "d", togglePapermillDebug),
 ]
Index: gzz/gfx/libcoords/Coords.cxx
diff -u gzz/gfx/libcoords/Coords.cxx:1.58 gzz/gfx/libcoords/Coords.cxx:1.59
--- gzz/gfx/libcoords/Coords.cxx:1.58   Thu Dec 19 18:06:00 2002
+++ gzz/gfx/libcoords/Coords.cxx        Fri Dec 20 11:00:21 2002
@@ -188,9 +188,13 @@
        glVertex(transform(p));
     }
     virtual ZPt transform(const ZPt &p) const {
-       return lerp(cs1->transform(p), 
+       ZPt res = lerp(cs1->transform(p), 
                    cs2->transform(p),
                    fract);
+       DBG(dbg) << "PointInterp: "<<p<<": "<<fract<<" "<<
+                   cs1->transform(p) << " " << cs2->transform(p) << " " 
+                   << res<<"\n";
+       return res;
     }
     virtual float nonlinearity(const ZPt &p, float radius) { 
        return lerp(cs1->nonlinearity(p, radius), 
@@ -223,7 +227,18 @@
        cs2->performGL();
        glGetFloatv(GL_MODELVIEW_MATRIX, mat2);
 
+       DBG(dbg) << "PointInterp PerformGL!\n";
+       if(dbg) {
+           for(int i=0; i<16; i++) DBG(dbg) << mat1[i] << " ";
+           DBG(dbg) << "\n";
+           for(int i=0; i<16; i++) DBG(dbg) << mat2[i] << " ";
+           DBG(dbg) << "\n";
+       }
        for(int i=0; i<16; i++) mat1[i] = lerp(mat1[i], mat2[i], fract);
+       if(dbg) {
+           for(int i=0; i<16; i++) DBG(dbg) << mat1[i] << " ";
+           DBG(dbg) << "\n";
+       }
 
 
        glPopMatrix();
@@ -1225,9 +1240,10 @@
        for(int i=0; i<nprev; i++) {
            int par1 = inds1[cs1+1+i];
            if(!cs[par1]) return false;
-           int par2 = inds1[cs2+1+i];
            if(par1 >= interpinds[0]) return false;
-           if(interpinds[par1] != par2) return false;
+           int par2 = inds2[cs2+1+i];
+           int par1interpsto = (par1 > 0 ? interpinds[par1] : 0);
+           if(par1interpsto != par2) return false;
        }
        DBG(dbg) << "DO interpolate\n";
        return true;
Index: gzz/gfx/util/demokeys.py
diff -u gzz/gfx/util/demokeys.py:1.3 gzz/gfx/util/demokeys.py:1.4
--- gzz/gfx/util/demokeys.py:1.3        Thu Dec 19 18:05:46 2002
+++ gzz/gfx/util/demokeys.py    Fri Dec 20 11:00:21 2002
@@ -100,6 +100,29 @@
     def toggle(self, scene, key):
        setattr(scene, self.attr, 1 - getattr(scene, self.attr))
 
+class ListIndex(_Presses):
+    """A key or a pair of keys used to move on a list of alternatives.
+    """
+    def __init__(self, attr, list, default, description, keydown, keyup, 
**opts):
+       _Presses.__init__(self, opts, 
+           (keydown , lambda *args: self.move(-1, *args)),
+           (keyup , lambda *args: self.move(1, *args)),
+           )
+       self.attr = attr
+       self.list = list
+       self.default = default
+       self.descline = self.keyStrings() + ": Select " + description
+
+    def prepare(self, scene):
+       setattr(scene, self.attr, self.default)
+
+    def move(self, dir, scene, key):
+       v = getattr(scene, self.attr)
+       v += dir
+       v = v % len(self.list)
+       setattr(scene, self.attr, v)
+
+
 class SlideLog(_Presses):
     """A pair of keys used to move a log slider up&down.
     """
@@ -121,4 +144,9 @@
            v *= 1.1
        else:
            v /= 1.1
+       print "SlideLog: ",v
        setattr(scene, self.attr, v)
+
+
+
+
Index: gzz/test/gzz/vob/vobcoorder.test
diff -u gzz/test/gzz/vob/vobcoorder.test:1.9 
gzz/test/gzz/vob/vobcoorder.test:1.10
--- gzz/test/gzz/vob/vobcoorder.test:1.9        Thu Dec 19 18:06:00 2002
+++ gzz/test/gzz/vob/vobcoorder.test    Fri Dec 20 11:00:21 2002
@@ -114,6 +114,22 @@
     failUnlessEqual(-1, c.getCSAt(0, 275, 165.5, None))
     failUnlessEqual(-1, c.getCSAt(0, 265, 175.5, None))
 
+def testInterpolateHierarchy():
+    """Test that vobs interpolate right in hierarchies.
+    """
+    cs1 = vs.translateCS(0, "A", 100, 100, 0)
+    cs1_1 = vs.orthoCS(cs1, "B", 0, 50, 50, 1, 1)
+
+    vs2 = getvs()
+    cs2_dummy = vs2.translateCS(0, "C", 0, 0, 0)
+    cs2 = vs2.translateCS(0, "A", 100, 100, 0)
+    cs2_1 = vs2.orthoCS(cs2, "B", 0, 100, 100, 1, 1)
+
+    interp = vs.matcher.interpList(vs2.matcher)
+    interp[0] = len(interp)
+
+    checkInterp(vs, vs2, interp , .5, cs1_1, [0, 0, 0], [175, 175, 0])
+
 def testInterpolateAlways():
     """Test that vobs always get interpolated, even when hierarchy changes.
     """



reply via email to

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