com.supermap.data

类 Mesh

  • java.lang.Object
    • com.supermap.data.InternalHandle
      • com.supermap.data.InternalHandleDisposable
        • com.supermap.data.Mesh
  • 所有已实现的接口:
    IDisposable


    public class Mesh
    extends com.supermap.data.InternalHandleDisposable
    网格面类。

    该类主要用来返回或设置网格面对应的材质、顶点数组、纹理坐标数组、顶点索引数组、颜色集合、向量集合。

    示范代码:
    以下代码示范了如何初始化 Mesh。
     public void TestMesh() {
                    //构造 Mesh 对象 mesh
                    Mesh mesh = new Mesh();
                    double[] vertexes = new double[12];
                    double[] normals = new double[12];
                    int[] indexes =new int[8];
                    double[] textureCoords = new double[8];
                    Colors colors = new Colors();
                    colors.set(1, Color.RED);
                    colors.set(2, Color.GREEN);
                    colors.set(3, Color.BLACK);
                    colors.set(4, Color.BLUE);
                    //设置顶点坐标,每三个一组,对应坐标系的X、Y、Z数值
                    vertexes[0] = 0.0; vertexes[1] = 0.0; vertexes[2] = 0.0;
                    vertexes[3] = 36000.0; vertexes[4] = -48000.0; vertexes[5] = 0.0;
                    vertexes[6] = 100000.0; vertexes[7] = 0.0; vertexes[8] = 0.0;
                    vertexes[9] = 64000.0; vertexes[10] = 0.0; vertexes[11] = 48000.0;
                    
                    //设置顶点索引,用于绘制图形时应用
                    indexes[0] = 0; indexes[1] = 1; indexes[2] = 2;
                    indexes[3] = 0; indexes[4] = 2; indexes[5] = 3;
                    
                    //设置顶点的法向量方向,设置法向量可以突出Mesh的阴影效果,更加逼真。
                    normals[0] = 0.0; normals[1] = 0.0; normals[2] = 1.0;
                    for (int i = 3; i < 7; i++)
                    {
                    normals[i] = normals[0]; normals[i + 1] = normals[1]; normals[i + 2] = normals[2];
                    }
                    normals[9] = 0.0; normals[10] = -1.0; normals[11] = 0.0;
                    
                    
                    //设置纹理坐标,用于设置贴图的显示效果
                    for (int i = 0; i < 8;i += 2 )
                    {
                    textureCoords[i] = 0.0 + 0.125 * i;
                    textureCoords[i + 1] = textureCoords[i];
                    
                    }
                    
                    mesh.setVertices(vertexes);
                    mesh.setIndexes(indexes);
                    mesh.setNormals(normals);
                    mesh.setColors(colors);
                    mesh.setTextureCoords(textureCoords);
                    Material material = new Material();
                    material.setTextureFile("C:/green.jpg");
                    mesh.setMaterial(material);
            }
    • 构造器详细资料

      • Mesh

        public Mesh()
        构造一个新的 Mesh 对象。
      • Mesh

        public Mesh(Mesh mesh)
        根据给定的 Mesh 对象构造一个与其完全相同的新对象。
        参数:
        mesh - 指定的 Mesh 对象。
    • 方法详细资料

      • dispose

        public void dispose()
        释放该对象所占用的资源。当调用该方法之后,此对象不再可用。
      • getColors

        public Color[] getColors()
        返回网格面颜色集合。
        返回:
        网格面颜色集合。
      • setColors

        public void setColors(Color[] colors)
        设置网格面颜色集合。
        参数:
        value - 网格面颜色集合。
      • getIndexes

        public int[] getIndexes()
        返回网格面顶点索引数组。
        返回:
        网格面顶点索引数组。
      • setIndexes

        public void setIndexes(int[] indexes)
        设置网格面顶点索引数组。

        参与构成网格面的每个顶点都有一个索引值,通过查找顶点索引值,然后构面可以节省存储空间。

        参数:
        value - 网格面顶点索引数组。
      • getMaterial

        public Material getMaterial()
        返回网格面对应的材质。
        返回:
        网格面对应的材质。
      • setMaterial

        public void setMaterial(Material material)
        设置网格面对应的材质。
        参数:
        material - 网格面对应的材质。
      • getNormals

        public double[] getNormals()
        返回网格面顶点的向量集合。
        返回:
        网格面顶点的向量集合。
      • setNormals

        public void setNormals(double[] normals)
        设置网格面顶点的向量集合。
        参数:
        value - 网格面顶点的向量集合。
      • getTextureCoords

        public double[] getTextureCoords()
        返回网格面纹理坐标数组。
        返回:
        网格面纹理坐标数组。
      • setTextureCoords

        public void setTextureCoords(double[] textureCoords)
        设置网格面纹理坐标数组。
        参数:
        value - 网格面纹理坐标数组。
      • getVertices

        public double[] getVertices()
        返回网格面顶点数组。
        返回:
        网格面顶点数组。
      • setVertices

        public void setVertices(double[] vertices)
        设置网格面顶点数组。
        参数:
        value - 网格面顶点数组。

Copyright © 2021–2024 SuperMap. All rights reserved.