예제 #1
0
파일: bool3d.cs 프로젝트: thild/sawdust
        private static void FixSegmentDirection(seg3d s1, Face f1, Face f2, bool reverse)
        {
            xyz n1 = f1.UnitNormal();
            xyz n2 = f2.UnitNormal();
            xyz k  = xyz.cross(n2, n1).normalize_in_place();

            if (reverse)
            {
                k.negate_in_place();
            }

            xyz vab = (s1.b - s1.a).normalize_in_place();

            if (!fp.eq_unitvec(vab, k))
            {
                xyz t = s1.a;
                s1.a = s1.b;
                s1.b = t;
            }
        }