/// <summary> /// Create a deep copy of this MeshData. /// </summary> public XMeshAdapter Clone() { var mesh = new XMeshAdapter(); mesh.vertices = (Vector3[])vertices.Clone(); mesh.triangles = (int[])triangles.Clone(); mesh.uv = (Vector2[])uv.Clone(); return(mesh); }
private Mesh createWallMesh(OIGrid grid, IXHeightMap floorHeighMap, IXHeightMap ceilHeightMap) { int[,] map = grid.asMatrix(); Vector3 center = new Vector3(-map.GetLength(1) / 2f + 0.5f, 0, -map.GetLength(0) / 2f + 0.5f); int squareSize = 1; List <Vector3[]> outlines = XOutlineGenerator.Generate(grid, center, squareSize); XMeshAdapter meshAdapter = new XMeshAdapter(); meshAdapter.vertices = XWallBuilder.GetVertices(outlines, floorHeighMap, ceilHeightMap); meshAdapter.uv = XWallBuilder.GetUVs(outlines, meshAdapter.vertices); meshAdapter.triangles = XWallBuilder.GetTriangles(outlines); return(meshAdapter.asMesh()); }