Beispiel #1
0
        public Triangle GetWinding(Vector3 normal)
        {
            var d0    = (p1.vertex - p0.vertex).normalized;
            var d1    = (p2.vertex - p0.vertex).normalized;
            var cross = Vector3.Cross(d0, d1);

            if (Vector3.Dot(normal, cross) < 0f)
            {
                var pp1 = p1;
                var pp2 = p2;
                MUtils.Swap(ref pp1, ref pp2);
                return(new Triangle(p0, pp1, pp2));
            }
            return(new Triangle(p0, p1, p2));
        }