update setTriangles function in Model class

This commit is contained in:
wyq 2024-12-24 16:37:20 +08:00
parent 563d7c8e2e
commit a712e49201
3 changed files with 56 additions and 5 deletions

View File

@ -203,4 +203,52 @@ public class Model extends TriMeshGraphic {
logger.info("Set triangles finished!");
}
/**
* Set triangles
* @param faceIndices The triangle face indices
* @param x X coordinate array
* @param y Y coordinate array
* @param z Z coordinate array
* @param normal Normal array
*/
public void setTriangles(Array faceIndices, Array x, Array y, Array z, Array normal) {
logger.info("Start set triangles...");
x = x.copyIfView();
y = y.copyIfView();
z = z.copyIfView();
faceIndices = faceIndices.copyIfView();
this.vertexIndices = (int[]) faceIndices.getStorage();
this.vertexNormal = (float[]) normal.getStorage();
float xMin = ArrayMath.min(x).floatValue();
float xMax = ArrayMath.max(x).floatValue();
float yMin = ArrayMath.min(y).floatValue();
float yMax = ArrayMath.max(y).floatValue();
float zMin = ArrayMath.min(z).floatValue();
float zMax = ArrayMath.max(z).floatValue();
float range = Math.max(xMax - xMin, yMax - yMin);
range = (zMax - zMin) > range ? (zMax - zMin) : range;
float min = -range / 2;
float max = range / 2;
Transform transform = new Transform();
transform.setExtent(min, max, min, max, min, max);
int n = x.getShape()[0];
this.vertexPosition = new float[n * 3];
int idx = 0;
for (int i = 0; i < n; i++) {
vertexPosition[idx] = transform.transform_x(x.getFloat(i));
vertexPosition[idx + 1] = transform.transform_y(y.getFloat(i));
vertexPosition[idx + 2] = transform.transform_z(z.getFloat(i));
idx += 3;
}
this.normalLoaded = true;
updateExtent();
logger.info("Set triangles finished!");
}
}

View File

@ -340,6 +340,7 @@ public class TriMeshGraphic extends GraphicCollection3D {
* @param x X coordinate array
* @param y Y coordinate array
* @param z Z coordinate array
* @param normal Normal array
*/
public void setTriangles(Array faceIndices, Array x, Array y, Array z, Array normal) {
logger.info("Start set triangles...");

View File

@ -1,30 +1,32 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<MeteoInfo File="milconfig.xml" Type="configurefile">
<Path OpenPath="D:\Working\MIScript\Jython\mis\io\radar">
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io\hdf"/>
<Path OpenPath="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\model">
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\satellite"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io\netcdf"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io\micaps"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io\burf"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io\radar\cinrad"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\isosurface"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\model"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\plot"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io\radar"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\gui"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\model"/>
</Path>
<File>
<OpenedFiles>
<OpenedFile File="D:\Working\MIScript\Jython\mis\io\burf\bufr_gfs_1.py"/>
<OpenedFile File="D:\Working\MIScript\Jython\mis\io\radar\radar_x_phase_2.py"/>
<OpenedFile File="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\model\obj_airplane_test.py"/>
</OpenedFiles>
<RecentFiles>
<RecentFile File="D:\Working\MIScript\Jython\mis\io\burf\bufr_gfs_1.py"/>
<RecentFile File="D:\Working\MIScript\Jython\mis\io\radar\radar_x_phase_2.py"/>
<RecentFile File="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\model\obj_airplane_test.py"/>
</RecentFiles>
</File>
<Font>