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: Tue, 12 Nov 2002 04:53:50 -0500

CVSROOT:        /cvsroot/gzz
Module name:    gzz
Changes by:     Janne V. Kujala <address@hidden>        02/11/12 04:53:49

Modified files:
        gfx/demo       : irregu4.py 
        gfx/librenderables: renderables.py 
        gfx/libutil    : Irregu.hxx 

Log message:
        Interpolate between irregu SLICE_1D and SLICE_2D

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/demo/irregu4.py.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/librenderables/renderables.py.diff?tr1=1.141&tr2=1.142&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/libutil/Irregu.hxx.diff?tr1=1.7&tr2=1.8&r1=text&r2=text

Patches:
Index: gzz/gfx/demo/irregu4.py
diff -u gzz/gfx/demo/irregu4.py:1.6 gzz/gfx/demo/irregu4.py:1.7
--- gzz/gfx/demo/irregu4.py:1.6 Tue Nov 12 02:18:25 2002
+++ gzz/gfx/demo/irregu4.py     Tue Nov 12 04:53:49 2002
@@ -29,7 +29,7 @@
         self.xs = 1
         self.ys = 1
         self.scale = 1
-
+        self.texslicing = 0
         self.flags = 255
 
         self.initcode()
@@ -196,6 +196,7 @@
         scale_pow = 0
         border0 = -.5 * ripple_scale * texscale
         border1 = .5 * ripple_scale * texscale
+        texslicing = self.texslicing
 
         SLICE = (SLICE_2D, SLICE_1D)[self.flags >> 4 & 1]
 
@@ -211,7 +212,8 @@
             """  % texINTENSITY.getTexId() 
 
         self.outer = GLRen.createIrregularEdge(
-            texscale, linewidth, refsize, scale_pow, border0, border1, 
+            texscale, linewidth, refsize, scale_pow,
+            border0, border1, texslicing,
             "0 0 0 1 0 0 0 0", "",
             0, 0,
             SLICE + Y_COLOR + SHIFTS, stdcode + """
@@ -225,14 +227,16 @@
             stdcode += "Disable ALPHA_TEST\n"
             
         self.inner = GLRen.createIrregularEdge(
-            texscale, linewidth, refsize, scale_pow, border0, border1, 
+            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], "",
             0, 0,
             SLICE + Y_COLOR, stdcode, 1.0)
 
-        if GL.hasExtension("GL_NV_register_combiners"):
+        if GL.hasExtension("GL_NV_register_combiners") and 0:
             self.outer = GLRen.createIrregularEdge(
-                texscale, linewidth, refsize, scale_pow, border0, border1, 
+                texscale, linewidth, refsize, scale_pow,
+                border0, border1, texslicing,
                 "1 1 1 1 0 0 0 0", "", 3, 0,
                 Y_SECCOLOR + SLICE + DOTVEC_COLOR + INTERP_DOTVEC,
                 outer_code, 1.0)
@@ -244,7 +248,8 @@
             outer_code = code2 % {"tex" : texINTENSITY.getTexId(),
                                   "color" : "0 0 0 0" }
             self.outer = GLRen.createIrregularEdge(
-                texscale, linewidth, refsize, scale_pow, border0, border1, 
+                texscale, linewidth, refsize, scale_pow,
+                border0, border1, texslicing,
                 "1 1 1 1 0 0 0 0", "", 0, 1,
                 Y_SECCOLOR + SLICE,
                 outer_code, 1.0)
@@ -290,6 +295,14 @@
             self.y1 -= .2 * sin(self.a1)
         elif k == "Left": self.a1 -= .1
         elif k == "Right": self.a1 += .1
+        elif k == "Prior":
+            self.texslicing -= .125
+            print self.texslicing
+            self.initcode()
+        elif k == "Next":
+            self.texslicing += .125
+            print self.texslicing
+            self.initcode()
         elif k == "x": self.xs += .1
         elif k == "X": self.xs -= .1
         elif k == "y": self.ys += .1
@@ -303,3 +316,5 @@
 
 
 currentScene = IrreguScene()
+
+#GL.call("PolygonMode FRONT_AND_BACK FILL")
Index: gzz/gfx/librenderables/renderables.py
diff -u gzz/gfx/librenderables/renderables.py:1.141 
gzz/gfx/librenderables/renderables.py:1.142
--- gzz/gfx/librenderables/renderables.py:1.141 Tue Nov 12 02:18:25 2002
+++ gzz/gfx/librenderables/renderables.py       Tue Nov 12 04:53:49 2002
@@ -1256,7 +1256,7 @@
         float col[] = {1,1,1,1,0,0,0,0};
         if (!mode) glColor4f(0,0,0,1);
         Irregu::draw(coords1, vert, norm, texscale, 2.0, 128, 0,
-                     -.5, .5, col, NULL, 3, 0, 
+                     -.5, .5, 0, col, NULL, 3, 0, 
                      Irregu::SLICE_1D + Irregu::Y_SECCOLOR +
                      mode * Irregu::DOTVEC_COLOR + Irregu::INTERP_DOTVEC);
 
@@ -1284,13 +1284,14 @@
 {
     "Type" : "2",
     "Name": "IrregularEdge",
-    "Data": """float texscale, linewidth, refsize, scale_pow, border0, border1;
+    "Data": """float texscale, linewidth, refsize, scale_pow;
+            float border0, border1, texslicing;
             vector<float> const0, const1; int angles, multi, flags;
             CallGLCode setup;
            float dicefactor;""",
     "Params" : """
            float texscale, float linewidth, float refsize, float scale_pow,
-            float border0, float border1, 
+            float border0, float border1, float texslicing,
             UTF8String const0, UTF8String const1, int angles, int multi, int 
flags,
             UTF8String setupcode, float dicefactor
        """,
@@ -1314,6 +1315,7 @@
             this->scale_pow = scale_pow;
             this->border0 = border0;
             this->border1 = border1;
+            this->texslicing = texslicing;
             this->const0 = getconstvec(const0);
             this->const1 = getconstvec(const1);
             this->angles = angles;
@@ -1348,7 +1350,7 @@
         GLERR;
         Irregu::draw(coords1, vert, norm, texscale,
                      linewidth, refsize, scale_pow,
-                     border0, border1,
+                     border0, border1, texslicing,
                      &const0[0], &const1[0],
                      angles, multi, flags);
 
Index: gzz/gfx/libutil/Irregu.hxx
diff -u gzz/gfx/libutil/Irregu.hxx:1.7 gzz/gfx/libutil/Irregu.hxx:1.8
--- gzz/gfx/libutil/Irregu.hxx:1.7      Tue Nov 12 02:18:25 2002
+++ gzz/gfx/libutil/Irregu.hxx  Tue Nov 12 04:53:49 2002
@@ -72,7 +72,7 @@
     void draw(Coords &coords, 
              const vector<ZPt> &pt, const vector<ZVec> &norm, 
              float texscale, float linewidth, float refsize, float scale_pow,
-             float border0, float border1,
+             float border0, float border1, float texslicing,
              const float c0[], const float c1[],
              int angles, int multi,
              unsigned flags) {
@@ -86,11 +86,14 @@
        
 
        ZPt vert[pt.size()][2];
+       ZPt vert1[pt.size()][2];
        ZPt vert2[pt.size()][2];
 
        for (unsigned i = 0; i < pt.size(); i++) {
            vert[i][0] = pt[i] + border0 * norm[i];
            vert[i][1] = pt[i] + border1 * norm[i];
+           vert1[i][0] = pt[i] + texslicing * border0 * norm[i];
+           vert1[i][1] = pt[i] + texslicing * border1 * norm[i];
            vert2[i][0] = coords.transform(vert[i][0]);
            vert2[i][1] = coords.transform(vert[i][1]);
        }
@@ -155,8 +158,9 @@
                }
 
                float q1 = dv0.dot(dv1) / dv0.dot(dv0);
-               ZPt a1q = pt[i] * q1;
-               ZPt b1q = pt[j] * q1;
+               q1 /= lerp(1.0, q1, texslicing);
+               ZPt a1q = vert1[i][1] * q1;
+               ZPt b1q = vert1[j][1] * q1;
 
                ZVec shift0(0,0,0);
                ZVec shift1(0,0,0);
@@ -202,7 +206,7 @@
 
                if (multi > 0) glColor4f(0,0,dy0,dy0);
                colorfv(c0);
-               texCoord(pt[i], texscale);
+               texCoord(vert1[i][0], texscale);
                u = GL_TEXTURE1;
                for (int d = 1; d <= multi; d++) {
                    multiTexCoord(u++, pt[i] + d * d0, texscale);
@@ -218,7 +222,7 @@
                }
 
                //colorfv(c0);
-               texCoord(pt[j], texscale);
+               texCoord(vert1[j][0], texscale);
                u = GL_TEXTURE1;
                for (int d = 1; d <= multi; d++) {
                    multiTexCoord(u++, pt[j] + d * d0, texscale);




reply via email to

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