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 vobs/Fille...


From: Janne V. Kujala
Subject: [Gzz-commits] libvob/include/vob geom/Fillets2.hxx vobs/Fille...
Date: Tue, 24 Jun 2003 07:51:11 -0400

CVSROOT:        /cvsroot/libvob
Module name:    libvob
Branch:         
Changes by:     Janne V. Kujala <address@hidden>        03/06/24 07:51:10

Modified files:
        include/vob/geom: Fillets2.hxx 
        include/vob/vobs: Fillet.hxx 

Log message:
        cut a segment off of the overlapping node

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/include/vob/geom/Fillets2.hxx.diff?tr1=1.18&tr2=1.19&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/include/vob/vobs/Fillet.hxx.diff?tr1=1.17&tr2=1.18&r1=text&r2=text

Patches:
Index: libvob/include/vob/geom/Fillets2.hxx
diff -u libvob/include/vob/geom/Fillets2.hxx:1.18 
libvob/include/vob/geom/Fillets2.hxx:1.19
--- libvob/include/vob/geom/Fillets2.hxx:1.18   Tue Jun 24 07:44:02 2003
+++ libvob/include/vob/geom/Fillets2.hxx        Tue Jun 24 07:51:10 2003
@@ -607,5 +607,23 @@
 
     };
 
+    /** A span of the circular node shape with a segment removed. 
+     */
+    struct CircularSliceSpan {
+       const CircularNode &node;
+       float astart;
+       float aend;
+       CircularSliceSpan(const CircularNode &node, 
+                       float astart, float aend)  :
+               node(node), astart(astart), aend(aend) {
+       }
+
+       ZVec point(float fract, ZVec *intern = 0) const {
+           if(intern) *intern = node.ctr - ZVec(0,0,20);
+           return node.ctr + node.r * lerp(dirVec(astart), dirVec(aend), 
fract);
+       }
+
+    };
+
 }
 }
Index: libvob/include/vob/vobs/Fillet.hxx
diff -u libvob/include/vob/vobs/Fillet.hxx:1.17 
libvob/include/vob/vobs/Fillet.hxx:1.18
--- libvob/include/vob/vobs/Fillet.hxx:1.17     Tue Jun 24 07:18:34 2003
+++ libvob/include/vob/vobs/Fillet.hxx  Tue Jun 24 07:51:10 2003
@@ -363,7 +363,7 @@
                        << ab<<" "<<fract<<" "<<va1<<" "<<va2<<
                            "\n";
                if (overlap1) 
-                   renderSpan(CircularNodeSpan(node, a1-w1, a1+w1), 0);
+                   renderSpan(CircularSliceSpan(node, a1-w1, a1+w1), 0);
                else
                    renderSpan(
                               makeLerpFilletSpan(
@@ -373,7 +373,7 @@
                               );
 
                if (overlap2) 
-                   renderSpan(CircularNodeSpan(node, a2-w2, a2+w2), 0);
+                   renderSpan(CircularSliceSpan(node, a2-w2, a2+w2), 0);
                else
                    renderSpan(
                               makeLerpFilletSpan(
@@ -489,18 +489,18 @@
        
        if(f1.overlaps(f2)) {
            if (overlap1) 
-               renderSpan(CircularNodeSpan(node, a1-w1, a1+w1), 0);
+               renderSpan(CircularSliceSpan(node, a1-w1, a1+w1), 0);
            else
                renderSpan(makeFilletBlend(f1, f2), 1);
 
            if (overlap2) 
-               renderSpan(CircularNodeSpan(node, a2-w2, a2+w2), 0);
+               renderSpan(CircularSliceSpan(node, a2-w2, a2+w2), 0);
            else
                renderSpan(makeFilletBlend(f2, f1), -1);
            
        } else {
            if (overlap1) 
-               renderSpan(CircularNodeSpan(node, a1-w1, a1+w1), 0);
+               renderSpan(CircularSliceSpan(node, a1-w1, a1+w1), 0);
            else
                renderSpan(f1, 1);
            float ta1 = f1.dirTang.atan();
@@ -508,7 +508,7 @@
            if(ta2 < ta1) ta2 += 2*M_PI;
            renderSpan(CircularNodeSpan(node, ta1, ta2), 1);
            if (overlap2) 
-               renderSpan(CircularNodeSpan(node, a2-w2, a2+w2), 0);
+               renderSpan(CircularSliceSpan(node, a2-w2, a2+w2), 0);
            else
                renderSpan(f2, -1);
        }




reply via email to

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