gzz-commits
[Top][All Lists]
Advanced

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

[Gzz-commits] libvob include/vob/geom/Fillets2.hxx include/vo...


From: Janne V. Kujala
Subject: [Gzz-commits] libvob include/vob/geom/Fillets2.hxx include/vo...
Date: Sat, 14 Jun 2003 03:53:05 -0400

CVSROOT:        /cvsroot/libvob
Module name:    libvob
Branch:         
Changes by:     Janne V. Kujala <address@hidden>        03/06/14 03:53:05

Modified files:
        include/vob/geom: Fillets2.hxx 
        include/vob/vobs: Fillet.hxx 
        vob/demo/multifil: multifil.py randgraph.py 

Log message:
        make fillet thickness 3D-rotation invariant

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/include/vob/geom/Fillets2.hxx.diff?tr1=1.14&tr2=1.15&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/include/vob/vobs/Fillet.hxx.diff?tr1=1.14&tr2=1.15&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/vob/demo/multifil/multifil.py.diff?tr1=1.14&tr2=1.15&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/vob/demo/multifil/randgraph.py.diff?tr1=1.13&tr2=1.14&r1=text&r2=text

Patches:
Index: libvob/include/vob/geom/Fillets2.hxx
diff -u libvob/include/vob/geom/Fillets2.hxx:1.14 
libvob/include/vob/geom/Fillets2.hxx:1.15
--- libvob/include/vob/geom/Fillets2.hxx:1.14   Fri Jun 13 09:38:12 2003
+++ libvob/include/vob/geom/Fillets2.hxx        Sat Jun 14 03:53:04 2003
@@ -233,7 +233,8 @@
            double err;
            double maxerr = tol * node.r;
 
-           while (1) {
+           int iter = 100;
+           while (iter--) {
                f = 0.5 * (f0 + f1);
                p = point(f) - node.ctr;
                err = dir2.dot(p);
@@ -246,6 +247,11 @@
                    p1 = p;
                    f1 = f;
                }
+           }
+           if (iter == 0) {
+               cout << "EllipseFillet::point reached max iter" << std::endl;
+               success = false;
+               return ZVec();
            }
 
            success = true;
Index: libvob/include/vob/vobs/Fillet.hxx
diff -u libvob/include/vob/vobs/Fillet.hxx:1.14 
libvob/include/vob/vobs/Fillet.hxx:1.15
--- libvob/include/vob/vobs/Fillet.hxx:1.14     Fri Jun 13 08:13:36 2003
+++ libvob/include/vob/vobs/Fillet.hxx  Sat Jun 14 03:53:04 2003
@@ -169,14 +169,14 @@
 
     void v(ZVec p) const {
        if(flags & 4) {
-           glColor3f(1, p.z / 100, p.z / 100);
+           glColor3f(1, p.z / 800, p.z / 800);
        }
        glVertex(p);
     }
 
     void vl(ZVec p) const {
        if(flags & 4) {
-           glColor3f(0,p.z / 100, p.z / 100);
+           glColor3f(0,p.z / 800, p.z / 800);
        }
        glVertex(p);
     }
@@ -285,8 +285,8 @@
 
        float csize = crad(t0);
 
-       Conn conn1(thick_t, angle_t, t0, t1, d1);
-       Conn conn2(thick_t, angle_t, t0, t2, d2);
+       Conn conn1(thick_t, angle_t, t0, t1, 0.5 * (p1 - ctr).length());
+       Conn conn2(thick_t, angle_t, t0, t2, 0.5 * (p2 - ctr).length());
 
        float th1 = conn1.th;
        float th2 = conn2.th;
Index: libvob/vob/demo/multifil/multifil.py
diff -u libvob/vob/demo/multifil/multifil.py:1.14 
libvob/vob/demo/multifil/multifil.py:1.15
--- libvob/vob/demo/multifil/multifil.py:1.14   Thu Jun 12 09:29:57 2003
+++ libvob/vob/demo/multifil/multifil.py        Sat Jun 14 03:53:04 2003
@@ -39,14 +39,14 @@
            SlideLin("x", 200, 20, "x", "Left", "Right"),
            SlideLin("y", 300, 20, "y", "Up", "Down"),
            SlideLin("angle", math.pi/4, .05, "meet angle", "+", "-"),
-           SlideLin("thick", .1, .01, "thickness", "T", "t"),
+           SlideLin("thick", 1, .1, "thickness", "T", "t"),
            Toggle("drawEdge", 1, "Draw edge", "e"),
            Toggle("drawInside", 1, "Draw inside", "i"),
            Toggle("depthColor", 0, "Color from depth", "d"),
            Toggle("lines", 0, "Toggle showing lines", "l"),
            Toggle("ellipses", 1, "Toggle ellipses", "s"),
            Toggle("stretched", 1, "Toggle stretched", "v"),
-           Toggle("curvature", 1, "Show curvature", "c"),
+           Toggle("curvature", 0, "Show curvature", "c"),
            SlideLin("size", 50, 5, "Node size", "K", "k"),
            SlideLin("dice", 20, 1, "Dice factor", "P", "p"),
        )
@@ -69,7 +69,7 @@
        #thick = vs.orthoCS(0, "Thi", 0, self.thick, 0, 0, 0);
         #thick = vs.orthoCS(0, "Thi", 0, 100*(self.thick / (math.hypot(self.x 
- 500, self.y - 500)+50)), 0, 0, 0);
 
-        thick = vs.coords.rational1D22(0, self.thick, 0, 0,  0, 1, 0);
+        thick = vs.coords.rational1D22(0, self.thick, 0, 0,  1, 1, 0);
         angle = vs.coords.rational1D22(0, self.angle, 0, 0,  1, 0, 0);
         vs.matcher.add(thick, "Thi")
         vs.matcher.add(angle, "Ang")
@@ -89,10 +89,10 @@
            2)
 
        a = vs.orthoBoxCS(0, "A", 0, 100, 100, 1, 1, self.size, self.size);
-       b = vs.orthoBoxCS(0, "B", 25, self.x, self.y, 1, 1, self.size, 
self.size);
-       c = vs.orthoBoxCS(0, "C", 50, 200, 500, 1, 1, self.size, self.size);
-       d = vs.orthoBoxCS(0, "D", 75, 100, 300, 1, 1, self.size, self.size);
-       e = vs.orthoBoxCS(0, "E", 100, 500, 500, 1, 1, self.size, self.size);
+       b = vs.orthoBoxCS(0, "B", 200, self.x, self.y, 1, 1, self.size, 
self.size);
+       c = vs.orthoBoxCS(0, "C", 400, 200, 500, 1, 1, self.size, self.size);
+       d = vs.orthoBoxCS(0, "D", 600, 100, 300, 1, 1, self.size, self.size);
+       e = vs.orthoBoxCS(0, "E", 800, 500, 500, 1, 1, self.size, self.size);
 
        def pc(conns):
            # vs.put(conns, [a,  b, c, d])
Index: libvob/vob/demo/multifil/randgraph.py
diff -u libvob/vob/demo/multifil/randgraph.py:1.13 
libvob/vob/demo/multifil/randgraph.py:1.14
--- libvob/vob/demo/multifil/randgraph.py:1.13  Fri Jun 13 08:27:10 2003
+++ libvob/vob/demo/multifil/randgraph.py       Sat Jun 14 03:53:04 2003
@@ -39,7 +39,7 @@
            SlideLin("x", 200, 20, "x", "Left", "Right"),
            SlideLin("y", 300, 20, "y", "Up", "Down"),
            SlideLin("angle", math.pi/4, .05, "meet angle", "+", "-"),
-           SlideLin("thick", .1, .01, "thickness", "T", "t"),
+           SlideLin("thick", 1, .1, "thickness", "T", "t"),
            Toggle("drawEdge", 1, "Draw edge", "e"),
            Toggle("drawInside", 1, "Draw inside", "i"),
            Toggle("depthColor", 0, "Color from depth", "d"),
@@ -90,14 +90,18 @@
 
         box = 800
 
-        cs = vs.scaleCS(0, "cs", 1, 1, .15)
-        cs = vs.translateCS(cs, "Trans", 0.5 * box, 0.5 * box, 0.5 * box);
+        cs = vs.scaleCS(0, "cs", 1, 1, 1)
+        size = vs.getSize()
+        cs = vs.translateCS(cs, "Trans",
+                            0.5 * size.width,
+                            0.5 * size.height,
+                            0.5 * box);
 
         cs = vs.coords.rotateXYZ(cs,  0, 1, 0,  self.ang);
         vs.matcher.add(cs, "Rot")
         
 
-        thick = vs.coords.rational1D22(0, self.thick, 0, 0,  0, 1, 0);
+        thick = vs.coords.rational1D22(0, self.thick, 0, 0,  1, 1, 0);
         angle = vs.coords.rational1D22(0, self.angle, 0, 0,  1, 0, 0);
         vs.matcher.add(thick, "Thi")
         vs.matcher.add(angle, "Ang")
@@ -105,9 +109,10 @@
 
         nodes = [ {
             "cs" : vs.orthoBoxCS(cs, "node%s" % i,
-                                 (rng.random() -.5) * box,
-                                 (rng.random() -.5) * box,
-                                 (rng.random() -.5) * box, 1, 1, self.size, 
self.size),
+                                 (rng.random() - .5) * box,
+                                 (rng.random() - .5) * box - self.size,
+                                 (rng.random() - .5) * box - self.size,
+                                 1, 1, self.size, self.size),
             "conns" : [ ],
             } for i in range(0,self.N) ]
 




reply via email to

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