public Map Generate() { TriangleNet.Mesh mesh = createMesh(); Map map = new Map(); foreach (TriangleNet.Geometry.Vertex triVertex in mesh.Vertices) { Vertex v = map.AddVertex((float)triVertex.x, (float)triVertex.y); vertexIDMap.Add(triVertex.GetHashCode(), v.ID); } foreach (TriangleNet.Geometry.Edge Edge in mesh.Edges) { map.AddEdge(vertexIDMap[Edge.P0], vertexIDMap[Edge.P1]); } Prims prims = new Prims(map); prims.AssignMSTEdges(); Roads roads = new Roads(map, roadDensity); roads.AssignRoadEdges(); return(map); }