Extends
Methods
-
add(data, fn)
-
添加一个或多个光滑粒子流体动力学仿真对象
Parameters:
Name Type Description dataobject | array 光滑粒子流体动力学仿真对象,可以是Object类型或者Array类型,对于每一个SmoothedParticleHydrodynamics对象,支持以下属性:
-
id (string) 光滑粒子流体动力学仿真对象的唯一标识符ID
-
groupId (string) 可选,Group分组
-
userData (string) 可选,用户自定义数据
-
origin (array) 仿真模型对象的原点,默认值:[0, 0, 0],如果bin文件内坐标是相对坐标则此参数相当于offset
-
rotation (array) 可选,模型旋转,世界坐标系旋转:[Pitch,Yaw,Roll],数组元素类型:(number),取值范围:[任意数值],默认值:[0,0,0]
-
style (number) 光滑粒子流体动力学仿真对象样式,取值范围:[0,1,2,3,4],取值描述:0热力样式 1~4四种水材质样式,默认值:0
-
duration (number) 仿真的持续时间,单位:秒,默认值:30s
-
loop (boolean) 是否循环播放,默认值:false
-
play (boolean) 添加后是否开始播放,默认值:false
-
files (array) 按时序排列的二进制bin文件路径的二维数组,结构示例:["D:\Time1.bin","D:\Time2.bin"...],bin文件格式描述:x,y,z,value,四个字段分别对应四个8字节的double字段,按小端字节顺序(ByteOrder.LITTLE_ENDIAN)写入二进制bin文件
-
particleNumSides (number) 可选,粒子多边形的边的数量,控制粒子几何形状的复杂度,默认值:2
-
particle (object) 光滑粒子样式属性如下:
thickness (number) 每个粒子的基础水深,默认值:0.02米
radius (number) 每个粒子的默认半径,默认值:15米
-
colors (object) 热力样式下的自定义调色板对象,包含颜色渐变控制、无效像素颜色和调色板区间数组
gradient (boolean) 是否渐变
invalidColor (Color) 无效值对应的默认颜色,默认白色
colorStops (array) 调色板对象数组,每一个对象包含热力值和对应颜色值,结构示例:[{"value":0, "color":[0,0,1,1]}],每一个调色板对象支持以下属性:
color (Color) 热力值对应的调色板颜色
value (number) 热力值
fnfunction 可选的回调函数,请参考二次开发:异步接口调用方式
Example
生成bin文件和读取bin文件的Java代码示例: public static void writeBinFile(){ //二进制文件生成路径 String binPath = "C:\\bin\\"; //8个坐标点+业务对应value double[][] sphParticleData = { { 6557.337744, 5574.320115, 3238.832747, 48.890203 }, { 6473.064509, 5089.487075, 3168.192248, 43.51641 }, { 6707.48572, 4800.570737, 3048.399799, 46.022058 }, { 6894.066684, 4529.364945, 3002.244533, 38.003331 }, { 6886.204313, 4158.774802, 2936.036547, 26.771536 }, { 6890.049974, 3893.091258, 2888.343784, 32.719713 }, { 6890.719789, 3574.600717, 2857.614734, 32.38045 }, { 6991.981246, 3355.456008, 2832.723574, 18.700644 } }; //把数据写入二进制bin文件 for (int i = 0; i < sphParticleData.length; i++) { String path = binPath + "point" + i + ".bin"; OutputStream fos = new BufferedOutputStream(Files.newOutputStream(Paths.get(path))); byte[] bytes = ByteBuffer.allocate(8 + 8 + 8 + 8).order(ByteOrder.LITTLE_ENDIAN).putDouble(sphParticleData[i][0]).putDouble(sphParticleData[i][1]).putDouble(sphParticleData[i][2]).putDouble(sphParticleData[i][3]).array(); fos.write(bytes); fos.close(); } } public static void readBinFile(){ String binFilePath = "F:\\test.bin"; byte[] bytes = new byte[8 + 8 + 8 + 8]; FileInputStream fis = new FileInputStream(binFilePath); while (fis.read(bytes, 0, bytes.length) != -1) { Double x = ByteBuffer.wrap(Arrays.copyOfRange(bytes, 0, 8)).order(ByteOrder.LITTLE_ENDIAN).getDouble(); Double y = ByteBuffer.wrap(Arrays.copyOfRange(bytes, 8, 16)).order(ByteOrder.LITTLE_ENDIAN).getDouble(); Double z = ByteBuffer.wrap(Arrays.copyOfRange(bytes, 16, 24)).order(ByteOrder.LITTLE_ENDIAN).getDouble(); Double value = ByteBuffer.wrap(Arrays.copyOfRange(bytes, 24, 32)).order(ByteOrder.LITTLE_ENDIAN).getDouble(); //输出字段值 System.out.println("x y z value : ["+ x + ","+ y + "," + z + "," + value +"]"); } } -
-
clear(fn)
-
清空场景中所有的光滑粒子流体动力学仿真对象
Parameters:
Name Type Description fnfunction 可选的回调函数,请参考二次开发:异步接口调用方式
-
delete(ids, fn)
-
删除一个或多个光滑粒子流体动力学仿真对象
Parameters:
Name Type Description idsstring | array 要删除的光滑粒子流体动力学仿真对象ID或者ID数组(可以删除一个或者多个)
fnfunction 可选的回调函数,请参考二次开发:异步接口调用方式
-
focus(ids, distance, flyTime, rotation, fn)
-
自动定位到合适的观察距离
Parameters:
Name Type Description idsstring | array 光滑粒子流体动力学仿真对象的ID或者ID数组
distancenumber 可选参数,观察点距离目标点(被拍摄物体)的距离,取值范围:[0.01~任意正数],如果设置为0或者不设置,系统自动计算
flyTimenumber 可选参数,相机飞行的时间,取值范围:[0~任意正数],单位:秒,默认值2秒
rotationarray 可选参数,相机旋转的欧拉角:[Pitch,Yaw,Roll],数组元素类型:(number),取值范围:Pitch[-90~90] Yaw[-180~180] Roll[0]
fnfunction 可选的回调函数,请参考二次开发:异步接口调用方式
-
get(ids, fn)
-
根据光滑粒子流体动力学仿真对象ID获取光滑粒子流体动力学仿真对象的详细信息
Parameters:
Name Type Description idsstring | array 要获取的光滑粒子流体动力学仿真对象ID或者ID数组(可以获取一个或者多个)
fnfunction 可选的回调函数,请参考二次开发:异步接口调用方式
Returns:
-
hide(ids, fn)
-
隐藏光滑粒子流体动力学仿真对象
Parameters:
Name Type Description idsstring | array 光滑粒子流体动力学仿真对象的ID或者ID数组
fnfunction 可选的回调函数,请参考二次开发:异步接口调用方式
-
show(ids, fn)
-
显示光滑粒子流体动力学仿真对象
Parameters:
Name Type Description idsstring | array 光滑粒子流体动力学仿真对象的ID或者ID数组
fnfunction 可选的回调函数,请参考二次开发:异步接口调用方式
-
update(data, fn)
-
修改一个或多个光滑粒子流体动力学仿真对象,支持更新以下属性:
Parameters:
Name Type Description datadata | array 光滑粒子流体动力学仿真对象或对象数组,支持更新以下属性:
-
id (string) 根据SmoothedParticleHydrodynamics对象ID更新以下属性
-
play (boolean) 可选,是否开始播放,默认值:false
-
particle (object) 可选,光滑粒子样式属性如下:
thickness (number) 每个粒子的基础水深,默认值:0.02米
radius (number) 每个粒子的默认半径,默认值:15米
-
colors (object) 可选,热力样式下的自定义调色板对象,包含颜色渐变控制、无效像素颜色和调色板区间数组
gradient (boolean) 是否渐变
invalidColor (Color) 无效值对应的默认颜色,默认白色
colorStops (array) 调色板对象数组,每一个对象包含热力值和对应颜色值,结构示例:[{"value":0, "color":[0,0,1,1]}],每一个调色板对象支持以下属性:
color (Color) 热力值对应的调色板颜色
value (number) 热力值
fnfunction 可选的回调函数,请参考二次开发:异步接口调用方式
-
-
updateBegin()
-
用于批量多次修改对象的属性
在开始修改之前调用updateBegin,然后可以多次调用setXXX方法,最后调用updateEnd提交修改更新数据
注意:
updateBegin不是异步调用,不需要await,也没有回调函数参数- Inherited From:
- Overrides:
Example
fdapi.xxx.updateBegin(); for (let i = 0; i < 1000; i++) { fdapi.xxx.setColor(i, Color.Yellow); } fdapi.xxx.updateEnd(function () { log('update finished!'); }); -
updateEnd(fn)
-
用于批量多次修改对象的属性,与updateBegin配套使用
注意:
updateEnd是异步调用,可以用回调函数也可以awaitParameters:
Name Type Description fnfunction 可选的回调函数,请参考二次开发:异步接口调用方式
- Inherited From:
- Overrides: