gzz-commits
[Top][All Lists]
Advanced

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

[Gzz-commits] gzz ./TODO gfx/demo/sqfillet.py gfx/libfillet/F...


From: Tuomas J. Lukka
Subject: [Gzz-commits] gzz ./TODO gfx/demo/sqfillet.py gfx/libfillet/F...
Date: Wed, 23 Oct 2002 05:40:07 -0400

CVSROOT:        /cvsroot/gzz
Module name:    gzz
Changes by:     Tuomas J. Lukka <address@hidden>        02/10/23 05:40:07

Modified files:
        .              : TODO 
        gfx/demo       : sqfillet.py 
        gfx/libfillet  : Fillet.cxx 

Log message:
        Now the shape is satisfactory. Next to worry about center

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/TODO.diff?tr1=1.316&tr2=1.317&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/demo/sqfillet.py.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/libfillet/Fillet.cxx.diff?tr1=1.3&tr2=1.4&r1=text&r2=text

Patches:
Index: gzz/TODO
diff -u gzz/TODO:1.316 gzz/TODO:1.317
--- gzz/TODO:1.316      Tue Oct 22 12:28:22 2002
+++ gzz/TODO    Wed Oct 23 05:40:07 2002
@@ -125,6 +125,9 @@
     tjl:        
        - better graphics for xupdf and pp
            - fillets without the original object
+               - normal direction as data
+               - dicing only when needed
+               - don't
            - soft shadows
        - Nokia demo [deadline 24.10]
            - xupdf:
Index: gzz/gfx/demo/sqfillet.py
diff -u gzz/gfx/demo/sqfillet.py:1.3 gzz/gfx/demo/sqfillet.py:1.4
--- gzz/gfx/demo/sqfillet.py:1.3        Wed Oct 23 02:13:04 2002
+++ gzz/gfx/demo/sqfillet.py    Wed Oct 23 05:40:07 2002
@@ -3,31 +3,44 @@
 
 class SqfScene:
     def __init__(self):
-       self.x = [105, 850, 900]
+       self.w = [20, 40, 80]
        self.flags = [1, 0]
+       self.rand = 1
+       self.updcoords()
     def key(self, key):
-       if key == "c":
-           rotatelist(self.x)
+       if key == "w":
+           rotatelist(self.w)
        if key == "f":
            rotatelist(self.flags)
            print "Flags: ",self.flags[0]
-       pass
-    def scene(self, vs):
-       vs.map.put(background((.2, .4, .5)))
+       if key == "s":
+           self.rand = not self.rand
+           self.updcoords()
+       if key == 'u':
+           self.updcoords()
+    def updcoords(self):
+
+       if self.rand:
+           self.csp = []
+           for i in range(0, 3):
+               x = 1000 * Math.random()
+               y = 700 * Math.random()
+               w = 400 * Math.random()
+               h = 200 * Math.random()
+               self.csp.append([x, y, w, h])
+       else:
+           self.csp = [
+               [ 100, 100, 300, 20 ],
+               [ 500, 200, 300, 100],
+               [ 300, 800, 100, 300]
+           ]
 
-       cs = []
-       for i in range(0, 3):
-           x = 1000 * Math.random()
-           y = 700 * Math.random()
-           w = 400 * Math.random()
-           h = 200 * Math.random()
-           cs.append(vs.orthoCS(0, str(i), 0, x, y, w, h))
 
+    def scene(self, vs):
+       vs.map.put(background((.2, .4, .5)))
+       cs = [ vs.orthoCS(0, str(i), 0, *self.csp[i]) for i in (0,1,2)]
        cs1, cs2, cs3 = cs;
        
-       # cs1 = vs.orthoCS(0, "1", 0, 100, 100, 200, 100)
-       # cs2 = vs.orthoCS(0, "2", 0, self.x[0], 400, 200, 100)
-       # cs3 = vs.orthoCS(0, "3", 0, x, y, w, h)
 
        vs.map.put(coloredQuad((1, 1, 1)), cs3)
 
@@ -39,21 +52,26 @@
            LineWidth 1
        """))
 
-       fil = GLRen.createSqFilletConnection(20, self.flags[0])
+       fil = GLRen.createSqFilletConnection(self.w[0], self.flags[0])
+
+       n = 20
 
-       vs.map.put(fil, cs1, cs2)
+       for i in range(0, n):
+           vs.map.put(fil, cs1, cs2)
 
        vs.map.put(getDListNocoords("""
            Color 1 0 0
        """))
 
-       vs.map.put(fil, cs1, cs3)
+       for i in range(0, n):
+           vs.map.put(fil, cs1, cs3)
 
        vs.map.put(getDListNocoords("""
            Color 0 1 0
        """))
 
-       vs.map.put(fil, cs2, cs3)
+       for i in range(0, n):
+           vs.map.put(fil, cs2, cs3)
 
 
 currentScene = SqfScene()
Index: gzz/gfx/libfillet/Fillet.cxx
diff -u gzz/gfx/libfillet/Fillet.cxx:1.3 gzz/gfx/libfillet/Fillet.cxx:1.4
--- gzz/gfx/libfillet/Fillet.cxx:1.3    Wed Oct 23 02:13:04 2002
+++ gzz/gfx/libfillet/Fillet.cxx        Wed Oct 23 05:40:07 2002
@@ -35,7 +35,8 @@
 
     ZPt FilletDistort::operator() (ZPt p, bool &wasshifted) {
        Vec p2c(p-center);
-       float x = norm.dot(p2c) / width;
+       float x0 = norm.dot(p2c) ;
+       float x = x0 / width;
        float y = dir.dot(p2c);
 
        DBG(dbg) << "Distort "<<p<<" "<<x<<" "<<y<<"\n";
@@ -55,7 +56,7 @@
        // float b = 1 - sqrt(1-(1-t)*(1-t)); // distance
        
        if(flags & 1) 
-           b *= (fabs(y) / (fabs(x) + fabs(y))); // multiply by angle.
+           b *= (fabs(y) / (fabs(x0) + fabs(y))); // multiply by angle.
        float c = 1 - t * t * (3 - 2 * t * t); // direction
 
 




reply via email to

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