[Top][All Lists]
[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.
"""
- [Gzz-commits] gzz ./TODO gfx/demo/fillet/zbuffer.py gfx/demo/...,
Tuomas J. Lukka <=