internal TessellatedSolid(List<PolygonalFace> facesList, Vertex[] subSolidVertices, Vertex[][] newEdgeVertices, double[] normal, Boolean[] loopIsPositive) { Faces = facesList.ToArray(); Vertices = subSolidVertices; var numloops = newEdgeVertices.GetLength(0); var points2D = new Point[numloops][]; for (int i = 0; i < numloops; i++) points2D[i] = MinimumEnclosure.Get2DProjectionPoints(newEdgeVertices[i], normal); List<PolygonalFace> patchFaces = TriangulatePolygon.Run(points2D.ToList<Point[]>(), loopIsPositive); //todo: //1. make faces from list of points //2. connect to existing. MakeEdges(); CreateConvexHull(); DefineBoundingBoxAndCenter(); for (int i = 0; i < Faces.Length; i++) { var face = Faces[i]; var centerX = face.Vertices.Average(v => v.X); var centerY = face.Vertices.Average(v => v.Y); var centerZ = face.Vertices.Average(v => v.Z); face.Center = new[] { centerX, centerY, centerZ }; } ConnectConvexHullToObjects(); DefineVolumeAndAreas(); DefineFaceCurvature(); DefineVertexCurvature(); }