gzz-commits
[Top][All Lists]
Advanced

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

[Gzz-commits] gzz/gfx demo/irregu4.py librenderables/renderab...


From: Janne V. Kujala
Subject: [Gzz-commits] gzz/gfx demo/irregu4.py librenderables/renderab...
Date: Wed, 13 Nov 2002 11:28:44 -0500

CVSROOT:        /cvsroot/gzz
Module name:    gzz
Changes by:     Janne V. Kujala <address@hidden>        02/11/13 11:28:44

Modified files:
        gfx/demo       : irregu4.py 
        gfx/librenderables: renderables.py 

Log message:
        Add some IrregularEdge shapes; use F1-F8 in irregu4 to change

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/demo/irregu4.py.diff?tr1=1.8&tr2=1.9&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/librenderables/renderables.py.diff?tr1=1.142&tr2=1.143&r1=text&r2=text

Patches:
Index: gzz/gfx/demo/irregu4.py
diff -u gzz/gfx/demo/irregu4.py:1.8 gzz/gfx/demo/irregu4.py:1.9
--- gzz/gfx/demo/irregu4.py:1.8 Wed Nov 13 09:10:09 2002
+++ gzz/gfx/demo/irregu4.py     Wed Nov 13 11:28:44 2002
@@ -36,6 +36,7 @@
         self.xs = 1
         self.ys = 1
         self.scale = 1
+        self.shape = 0
         self.texslicing = 0
         self.flags = 255
 
@@ -218,6 +219,7 @@
         outer_code = code % {"tex" : texRGBA.getTexId(),
                              "color" : "0 0 0 0" }
 
+        shape = self.shape
         texscale = 1.0
         linewidth = 2
         refsize = 128
@@ -237,7 +239,7 @@
             AlphaFunc GEQUAL 1.0
             """  % texINTENSITY.getTexId() 
 
-        self.outer = GLRen.createIrregularEdge(
+        self.outer = GLRen.createIrregularEdge(shape,
             texscale, linewidth, refsize, scale_pow,
             border0, border1, texslicing,
             "0 0 0 1 0 0 0 0", "",
@@ -252,7 +254,7 @@
         if (self.flags & 4) == 0:
             stdcode += "Disable ALPHA_TEST\n"
             
-        self.inner = GLRen.createIrregularEdge(
+        self.inner = GLRen.createIrregularEdge(shape,
             texscale, linewidth, refsize, scale_pow,
             border0, border1, texslicing,
             ("0 0 0 0 0 0 0 0", "1 1 1 1 0 0 0 0")[self.flags >> 1 & 1], "",
@@ -260,7 +262,7 @@
             SLICE_1D + Y_COLOR + (self.flags >> 4 & 1) * INSIDE, stdcode, 1.0)
 
         if GL.hasExtension("GL_NV_register_combiners") and 0:
-            self.outer = GLRen.createIrregularEdge(
+            self.outer = GLRen.createIrregularEdge(shape,
                 texscale, linewidth, refsize, scale_pow,
                 border0, border1, texslicing,
                 "1 1 1 1 0 0 0 0", "", 3, 0,
@@ -273,7 +275,7 @@
             1):
             outer_code = code2 % {"tex" : texINTENSITY.getTexId(),
                                   "color" : "0 0 0 0" }
-            self.outer = GLRen.createIrregularEdge(
+            self.outer = GLRen.createIrregularEdge(shape,
                 texscale, linewidth, refsize, scale_pow,
                 border0, border1, texslicing,
                 "1 1 1 1 0 0 0 0", "", 0, 1,
@@ -353,6 +355,9 @@
         elif k == "-": self.scale -= .1
         elif "1" <= k <= "9":
             self.flags ^= 1 << int(k) - 1
+            self.initcode()
+        elif "F1" <= k <= "F9":
+            self.shape = int(k[1:]) - 1
             self.initcode()
         
 
Index: gzz/gfx/librenderables/renderables.py
diff -u gzz/gfx/librenderables/renderables.py:1.142 
gzz/gfx/librenderables/renderables.py:1.143
--- gzz/gfx/librenderables/renderables.py:1.142 Tue Nov 12 04:53:49 2002
+++ gzz/gfx/librenderables/renderables.py       Wed Nov 13 11:28:44 2002
@@ -1284,12 +1284,13 @@
 {
     "Type" : "2",
     "Name": "IrregularEdge",
-    "Data": """float texscale, linewidth, refsize, scale_pow;
+    "Data": """int shape;
+            float texscale, linewidth, refsize, scale_pow;
             float border0, border1, texslicing;
             vector<float> const0, const1; int angles, multi, flags;
             CallGLCode setup;
            float dicefactor;""",
-    "Params" : """
+    "Params" : """int shape,
            float texscale, float linewidth, float refsize, float scale_pow,
             float border0, float border1, float texslicing,
             UTF8String const0, UTF8String const1, int angles, int multi, int 
flags,
@@ -1309,6 +1310,7 @@
             }
     """,
     "ParamCode" : """
+            this->shape = shape;
             this->texscale = texscale;
             this->linewidth = linewidth;
             this->refsize = refsize;
@@ -1330,13 +1332,36 @@
         // XXX: TODO: use coords1.nonlinearity()
         int n = (int)(36 * dicefactor);
         std::vector<ZPt> vert(n+1);
-        std::vector<ZVec> norm(n+1);
-
-        for (int i = 0; i < n; i++) { 
-            float a = i * 2*M_PI / n;
-            vert[i] = coords2.transform(ZPt(cos(a), sin(a), 0));
+        
+        switch (shape) {
+        case 1:
+        case 2:
+        case 3:
+        case 4:
+        case 5:
+        case 6:
+            n = 2 + shape;
+        default:
+        case 0: 
+            for (int i = 0; i < n; i++) { 
+                float a = i * 2*M_PI / n;
+                vert[i] = coords2.transform(ZPt(cos(a), sin(a), 0));
+            }
+            break;
+        case 7:
+            n = 4;
+            float t = 1/sqrt(2);
+            vert[0] = coords2.transform(ZPt(+t, -t, 0));
+            vert[1] = coords2.transform(ZPt(+t, +t, 0));
+            vert[2] = coords2.transform(ZPt(-t, +t, 0));
+            vert[3] = coords2.transform(ZPt(-t, -t, 0));
+            break;
         }
+
         vert[n] = vert[0];
+        vert.resize(n + 1);
+
+        std::vector<ZVec> norm(n + 1);
 
         for (int i = 0; i <= n; i++) {
             ZVec v1 = (vert[(i+1) % n] - vert[i % n]).cw90().normalize();




reply via email to

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