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); }
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); }