public class Mesh
extends com.supermap.data.InternalHandleDisposable
该类主要用来返回或设置网格面对应的材质、顶点数组、纹理坐标数组、顶点索引数组、颜色集合、向量集合。
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); }
限定符和类型 | 方法和说明 |
---|---|
void |
dispose()
释放该对象所占用的资源。
|
Color[] |
getColors()
返回网格面颜色集合。
|
int[] |
getIndexes()
返回网格面顶点索引数组。
|
Material |
getMaterial()
返回网格面对应的材质。
|
double[] |
getNormals()
返回网格面顶点的向量集合。
|
double[] |
getTextureCoords()
返回网格面纹理坐标数组。
|
double[] |
getVertices()
返回网格面顶点数组。
|
void |
setColors(Color[] colors)
设置网格面颜色集合。
|
void |
setIndexes(int[] indexes)
设置网格面顶点索引数组。
|
void |
setMaterial(Material material)
设置网格面对应的材质。
|
void |
setNormals(double[] normals)
设置网格面顶点的向量集合。
|
void |
setTextureCoords(double[] textureCoords)
设置网格面纹理坐标数组。
|
void |
setVertices(double[] vertices)
设置网格面顶点数组。
|
public Mesh()
public Mesh(Mesh mesh)
mesh
- 指定的 Mesh 对象。public void dispose()
public Color[] getColors()
public void setColors(Color[] colors)
value
- 网格面颜色集合。public int[] getIndexes()
public void setIndexes(int[] indexes)
参与构成网格面的每个顶点都有一个索引值,通过查找顶点索引值,然后构面可以节省存储空间。
value
- 网格面顶点索引数组。public Material getMaterial()
public void setMaterial(Material material)
material
- 网格面对应的材质。public double[] getNormals()
public void setNormals(double[] normals)
value
- 网格面顶点的向量集合。public double[] getTextureCoords()
public void setTextureCoords(double[] textureCoords)
value
- 网格面纹理坐标数组。public double[] getVertices()
public void setVertices(double[] vertices)
value
- 网格面顶点数组。Copyright © 2021–2024 SuperMap. All rights reserved.