예제 #1
0
    /// <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);
    }
예제 #2
0
    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());
    }