[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] gzz/gfx/demo paperbasis.py
From: |
Tuomas J. Lukka |
Subject: |
[Gzz-commits] gzz/gfx/demo paperbasis.py |
Date: |
Tue, 26 Nov 2002 04:23:38 -0500 |
CVSROOT: /cvsroot/gzz
Module name: gzz
Changes by: Tuomas J. Lukka <address@hidden> 02/11/26 04:23:38
Modified files:
gfx/demo : paperbasis.py
Log message:
Paperwork: basis demo
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/demo/paperbasis.py.diff?tr1=1.17&tr2=1.18&r1=text&r2=text
Patches:
Index: gzz/gfx/demo/paperbasis.py
diff -u gzz/gfx/demo/paperbasis.py:1.17 gzz/gfx/demo/paperbasis.py:1.18
--- gzz/gfx/demo/paperbasis.py:1.17 Mon Nov 25 14:15:20 2002
+++ gzz/gfx/demo/paperbasis.py Tue Nov 26 04:23:38 2002
@@ -23,31 +23,24 @@
global dbg
dbg = not dbg
-tex0codes = {
- "RGB" : nvcode.parseCombiner("""
+texcodes = {
+ "NONE" : nvcode.parseCombiner("""
+ alpha = 0
+ """),
+ "RGB0" : nvcode.parseCombiner("""
color = TEX0
alpha = 1
"""),
- "DOT" : nvcode.parseCombiner("""
-
- SPARE0 = (2*TEX0-1).(2*COL0-1)
- color = SPARE0
-
- """),
- }
-tex1codes = {
- "RGB" : nvcode.parseCombiner("""
- color = TEX0
+ "RGB1" : nvcode.parseCombiner("""
+ color = TEX1
alpha = 1
"""),
"DOT" : nvcode.parseCombiner("""
- SPARE0 = (2*TEX1-1).(2*COL0-1)
+ SPARE0 = (2*TEX0-1).(2*COL0-1)
color = SPARE0
- """),
- }
-isectcodes = {
+ """),
"BAND0" : nvcode.parseCombiner("""
SPARE0 = ((2*TEX0-1) . (2*TEX1-1)) * 2
@@ -73,7 +66,7 @@
color = SPARE0 * SPARE1
alpha = 1
"""),
- "BAND2" : nvcode.parseCombiner("""
+ "BAND3" : nvcode.parseCombiner("""
SPARE0 = ((2*TEX0-1) . (2*TEX1-1)) * 4
SPARE0 = ((+SPARE0)*(+SPARE0)) * 2
@@ -86,57 +79,6 @@
}
-isectcodes0 = {
- "I3COL" : nvcode.combinercode("""
- # Interpolate between three colors using two dot products
- CombinerParameterNV NUM_GENERAL_COMBINERS_NV 2
-
- # SPARE0 <- (TEX0 . CONST0)
- # SPARE1 <- (TEX1 . CONST1)
- CI0 RGB A TEXTURE0 EXPAND_NORMAL_NV RGB
- CI0 RGB B CONSTANT_COLOR0_NV EXPAND_NORMAL_NV RGB
- CI0 RGB C TEXTURE1 EXPAND_NORMAL_NV RGB
- CI0 RGB D CONSTANT_COLOR1_NV EXPAND_NORMAL_NV RGB
- CO0 RGB SPARE0_NV SPARE1_NV DISCARD_NV NONE NONE TRUE TRUE FALSE
-
- # PRI_COL <- lerp(SPARE0, PRI_COL, SEC_COL)
- CI1 RGB A PRIMARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB
- CI1 RGB B SPARE0_NV UNSIGNED_IDENTITY_NV RGB
- CI1 RGB C SECONDARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB
- CI1 RGB D SPARE0_NV UNSIGNED_INVERT_NV RGB
- CO1 RGB DISCARD_NV DISCARD_NV PRIMARY_COLOR_NV NONE NONE FALSE
FALSE FALSE
-
- # SPARE1.alpha <- SPARE0^2 - SPARE1^2
- CI1 ALPHA A SPARE0_NV SIGNED_IDENTITY_NV BLUE
- CI1 ALPHA B SPARE0_NV SIGNED_IDENTITY_NV BLUE
- CI1 ALPHA C SPARE1_NV SIGNED_NEGATE_NV BLUE
- CI1 ALPHA D SPARE1_NV SIGNED_IDENTITY_NV BLUE
- CO1 ALPHA DISCARD_NV DISCARD_NV SPARE1_NV NONE NONE FALSE
FALSE FALSE
-
- # lerp(SPARE1, PRI_COL, FOG)
- FCI A SPARE1_NV UNSIGNED_IDENTITY_NV RGB
- FCI B PRIMARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB
- FCI C FOG UNSIGNED_IDENTITY_NV RGB
- FCI D ZERO UNSIGNED_IDENTITY_NV RGB
-
- FCI G ZERO UNSIGNED_INVERT_NV ALPHA
- """),
- "DOT" : nvcode.combinercode("""
- CombinerParameterNV NUM_GENERAL_COMBINERS_NV 1
-
- # SPARE0 <- (TEX0 . TEX1)
- CI0 RGB A TEXTURE0 EXPAND_NORMAL_NV RGB
- CI0 RGB B TEXTURE1 EXPAND_NORMAL_NV RGB
- CO0 RGB SPARE0_NV DISCARD_NV DISCARD_NV NONE NONE TRUE FALSE FALSE
-
- FCI A ZERO UNSIGNED_IDENTITY_NV RGB
- FCI B ZERO UNSIGNED_IDENTITY_NV RGB
- FCI C ZERO UNSIGNED_IDENTITY_NV RGB
- FCI D SPARE0_NV UNSIGNED_IDENTITY_NV RGB
- FCI G ZERO UNSIGNED_INVERT_NV ALPHA
- """)
- }
-
def getpaper(vecs, cols, tex0comb, isectcomb, tex1comb):
pap = Paper()
pap.setNPasses(1)
@@ -186,15 +128,16 @@
CombinerParameterNV CONSTANT_COLOR1_NV %(r1)s
""" % locals()
- return GLRen.createBasisPaperQuad(pap, -1, -1, 1, 1,
- constcode + tex0codes[tex0comb],
- constcode + tex1codes[tex1comb],
- constcode + isectcodes[isectcomb])
+ return GLRen.createBasisPaperQuad(pap, 0, 0, 1, 1,
+ constcode + texcodes[tex0comb],
+ constcode + texcodes[tex1comb],
+ constcode + texcodes[isectcomb])
rng = java.util.Random()
class PaperTemplate:
def __init__(self):
+ self.deltac = .05
self.vecseed0 = 0
self.vecseed1 = 1
self.colseed = 2
@@ -202,8 +145,8 @@
self.initvecs()
self.initcols()
- self.x0, self.y0 = 600, 450
- self.x1, self.y1 = 600, 600
+ self.x0, self.y0 = 0, 0
+ self.x1, self.y1 = 0, 0
self.texgen0 = TexGenXYRepeatUnit(vecs = [[.5,0], [0,.5]])
self.texgen1 = TexGenXYRepeatUnit(vecs = [[.25,.25], [.25,-.25]])
@@ -212,10 +155,10 @@
Disable TEXTURE_2D
Disable DEPTH_TEST
Begin LINE_LOOP
- Vertex -1 -1
- Vertex -1 1
+ Vertex 0 0
+ Vertex 0 1
Vertex 1 1
- Vertex 1 -1
+ Vertex 1 0
End
""")
def initvecs(self):
@@ -252,10 +195,10 @@
self.texgen0 = TexGenXYRepeatUnit(rnd=rng)
elif k == "F5":
self.texgen1 = TexGenXYRepeatUnit(rnd=rng)
- elif k == "Up": self.y0 -= 20
- elif k == "Down": self.y0 += 20
- elif k == "Left": self.x0 -= 20
- elif k == "Right": self.x0 += 20
+ elif k == "Up": self.y0 -= self.deltac
+ elif k == "Down": self.y0 += self.deltac
+ elif k == "Left": self.x0 -= self.deltac
+ elif k == "Right": self.x0 += self.deltac
def place(self, vs, into, t1, c, t2):
pq = getpaper(self.vecs, self.cols, t1, c, t2)
@@ -265,18 +208,17 @@
# [0,1] x [0,1] to vertex coords, cs1 is for the first texture unit
# and cs2 for the second
- scale = 400
cs1 = vs.coords.affineCoordsys(into, 10, self.x0, self.y0,
- scale * self.texgen0.vecs[0][0],
- scale * self.texgen0.vecs[1][0],
- scale * self.texgen0.vecs[0][1],
- scale * self.texgen0.vecs[1][1])
+ self.texgen0.vecs[0][0],
+ self.texgen0.vecs[1][0],
+ self.texgen0.vecs[0][1],
+ self.texgen0.vecs[1][1])
vs.matcher.add(cs1, "1")
cs2 = vs.coords.affineCoordsys(into, 10, self.x1, self.y1,
- scale * self.texgen1.vecs[0][0],
- scale * self.texgen1.vecs[1][0],
- scale * self.texgen1.vecs[0][1],
- scale * self.texgen1.vecs[1][1])
+ self.texgen1.vecs[0][0],
+ self.texgen1.vecs[1][0],
+ self.texgen1.vecs[0][1],
+ self.texgen1.vecs[1][1])
vs.matcher.add(cs2, "2")
vs.map.put(pq, cs1, cs2)
@@ -292,26 +234,26 @@
self.tex1comb = "RGB"
def key(self, k):
if k == "F1":
- list = tex0codes.keys()
+ list = texcodes.keys()
self.tex0comb = list[(list.index(self.tex0comb) + 1) % len(list)]
print "Using", self.tex0comb, self.isectcomb, self.tex1comb,
"combiners"
- print tex0codes[self.tex0comb]
+ print texcodes[self.tex0comb]
AbstractUpdateManager.setNoAnimation()
elif k == "F3":
- list = tex1codes.keys()
+ list = texcodes.keys()
self.tex1comb = list[(list.index(self.tex1comb) + 1) % len(list)]
print "Using", self.tex0comb, self.isectcomb, self.tex1comb,
"combiners"
- print tex1codes[self.tex1comb]
+ print texcodes[self.tex1comb]
AbstractUpdateManager.setNoAnimation()
elif k == "c":
- list = isectcodes.keys()
+ list = texcodes.keys()
list.sort()
self.isectcomb = list[(list.index(self.isectcomb) + 1) % len(list)]
print "Using", self.tex0comb, self.isectcomb, self.tex1comb,
"combiners"
- print isectcodes[self.isectcomb]
+ print texcodes[self.isectcomb]
AbstractUpdateManager.setNoAnimation()
elif k == "C":
- list = isectcodes.keys()
+ list = texcodes.keys()
list.sort()
self.isectcomb = list[(list.index(self.isectcomb) - 1) % len(list)]
AbstractUpdateManager.setNoAnimation()
@@ -321,7 +263,8 @@
def scene(self, vs):
putnoc(vs, background(self.bgcolor))
- self.pt.place(vs, 0, self.tex0comb, self.isectcomb, self.tex1comb)
+ cs = vs.orthoCS(0, "S1", 0, 100, 100, 200, 200)
+ self.pt.place(vs, cs, self.tex0comb, self.isectcomb, self.tex1comb)
for i in range(0,3):
cs = vs.coords.affineCoordsys(0, 10, 600 + (i-1)*150, 80, 50, 0,
0, 50)
@@ -331,4 +274,36 @@
vs.map.put(cq, cs)
vs.map.put(self.pt.frame, cs)
-currentScene = PaperScene()
+class PaperFlowScene(PaperTemplate):
+ def __init__(self):
+ self.bgcolor = (0.7, 0.8, 0.6)
+ self.pt = PaperTemplate()
+ def key(self, k):
+ self.pt.key(k)
+
+ def scene(self, vs):
+ putnoc(vs, background(self.bgcolor))
+
+ self.pt.place(vs,
+ vs.orthoCS(0, "S1", 0, 100, 100, 200, 200),
+ "RGB0", "RGB0", "NONE")
+
+ self.pt.place(vs,
+ vs.orthoCS(0, "S2", 0, 300, 100, 200, 200),
+ "NONE", "RGB1", "RGB1")
+
+ self.pt.place(vs,
+ vs.orthoCS(0, "S3", 0, 200, 250, 200, 200),
+ "RGB0", "BAND0", "RGB1")
+
+ self.pt.place(vs,
+ vs.orthoCS(0, "S4", 0, 200, 400, 200, 200),
+ "RGB0", "BAND2", "RGB1")
+
+ self.pt.place(vs,
+ vs.orthoCS(0, "S5", 0, 200, 550, 200, 200),
+ "RGB0", "BAND3", "RGB1")
+
+currentScene = PaperFlowScene()
+
+
- [Gzz-commits] gzz/gfx/demo paperbasis.py, Janne V. Kujala, 2002/11/25
- [Gzz-commits] gzz/gfx/demo paperbasis.py, Tuomas J. Lukka, 2002/11/25
- [Gzz-commits] gzz/gfx/demo paperbasis.py,
Tuomas J. Lukka <=
- [Gzz-commits] gzz/gfx/demo paperbasis.py, Tuomas J. Lukka, 2002/11/26
- [Gzz-commits] gzz/gfx/demo paperbasis.py, Tuomas J. Lukka, 2002/11/26
- [Gzz-commits] gzz/gfx/demo paperbasis.py, Janne V. Kujala, 2002/11/26
- [Gzz-commits] gzz/gfx/demo paperbasis.py, Janne V. Kujala, 2002/11/26
- [Gzz-commits] gzz/gfx/demo paperbasis.py, Tuomas J. Lukka, 2002/11/26
- [Gzz-commits] gzz/gfx/demo paperbasis.py, Janne V. Kujala, 2002/11/26