gzz-commits
[Top][All Lists]
Advanced

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

[Gzz-commits] gzz/gfx/librenderables renderables.py


From: Janne V. Kujala
Subject: [Gzz-commits] gzz/gfx/librenderables renderables.py
Date: Mon, 11 Nov 2002 13:35:05 -0500

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

Modified files:
        gfx/librenderables: renderables.py 

Log message:
        Fix irreguedge normals

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/librenderables/renderables.py.diff?tr1=1.138&tr2=1.139&r1=text&r2=text

Patches:
Index: gzz/gfx/librenderables/renderables.py
diff -u gzz/gfx/librenderables/renderables.py:1.138 
gzz/gfx/librenderables/renderables.py:1.139
--- gzz/gfx/librenderables/renderables.py:1.138 Mon Nov 11 12:40:23 2002
+++ gzz/gfx/librenderables/renderables.py       Mon Nov 11 13:35:03 2002
@@ -1244,10 +1244,11 @@
         }
 
         for (int i = 0; i <= n; i++) {
-            norm[i] = (vert[(i+1) % n] - vert[(i+n-1) % n]).cw90().normalize();
-
-            norm[i] *= (ripple_scale * texscale) /
-                   norm[i].dot((vert[(i+1) % n] - vert[i]).cw90().normalize());
+            ZVec v1 = (vert[(i+1) % n] - vert[i % n]).cw90().normalize();
+            ZVec v2 = (vert[i % n] - vert[(i+n-1) % n]).cw90().normalize();
+        
+            norm[i] = (v1 + v2).normalize();
+            norm[i] *= (ripple_scale * texscale) / v1.dot(norm[i]);
         }
 
         setup();
@@ -1327,15 +1328,18 @@
         std::vector<ZPt> vert(n+1);
         std::vector<ZVec> norm(n+1);
 
-        for (int i = 0; i <= n; i++) { 
+        for (int i = 0; i < n; i++) { 
             float a = i * 2*M_PI / n;
             vert[i] = coords2.transform(ZPt(cos(a), sin(a), 0));
         }
+        vert[n] = vert[0];
 
         for (int i = 0; i <= n; i++) {
-            norm[i] = (vert[(i+1) % n] - vert[(i+n-1) % n]).cw90().normalize();
-
-            norm[i] *= norm[i].dot((vert[(i+1) % n] - 
vert[i]).cw90().normalize());
+            ZVec v1 = (vert[(i+1) % n] - vert[i % n]).cw90().normalize();
+            ZVec v2 = (vert[i % n] - vert[(i+n-1) % n]).cw90().normalize();
+        
+            norm[i] = (v1 + v2).normalize();
+            norm[i] *= 1.0 / v1.dot(norm[i]);
         }
 
         setup();




reply via email to

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