private static bool IsCounterPartCoedge(CoEdge first, CoEdge second)
        {
            if (first == second)
            {
                return(false);
            }
            var isCounterPart = first.Start == second.End && first.End == second.Start || first.End == second.Start && first.Start == second.End;

            return(isCounterPart);
        }
        private static Edge CreateEdge(CoEdge coedge, Dictionary <CoEdge, CoEdge> counterPartDict)
        {
            var counterPart = counterPartDict.ContainsKey(coedge) ? counterPartDict[coedge] : coedge;;
            var edge        = new Edge()
            {
                First  = coedge,
                Second = counterPart
            };

            return(edge);
        }
Beispiel #3
0
        private static Triangle ConvertToTriangle(
            CreatorTriangle CreatorTriangle,
            Dictionary <Point3D, Vector3D> verticesAndNormals)
        {
            var p1 = new Vertex()
            {
                Point  = CreatorTriangle.P1.Point,
                Normal = verticesAndNormals[CreatorTriangle.P1.Point]
            };

            var p2 = new Vertex()
            {
                Point  = CreatorTriangle.P2.Point,
                Normal = verticesAndNormals[CreatorTriangle.P2.Point]
            };

            var p3 = new Vertex()
            {
                Point  = CreatorTriangle.P3.Point,
                Normal = verticesAndNormals[CreatorTriangle.P3.Point]
            };

            var coEdges = new CoEdge[3];

            coEdges[0] = new CoEdge {
                Start = p1.Point, End = p2.Point
            };
            coEdges[1] = new CoEdge {
                Start = p2.Point, End = p3.Point
            };
            coEdges[2] = new CoEdge {
                Start = p3.Point, End = p1.Point
            };

            var triangle = new Triangle
            {
                P1      = p1,
                P2      = p2,
                P3      = p3,
                Normal  = CreatorTriangle.Normal,
                CoEdges = coEdges
            };

            coEdges.ForEach(coedge => coedge.ParentTriangle = triangle);

            return(triangle);
        }