gzz-commits
[Top][All Lists]
Advanced

[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()        
+
+




reply via email to

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