new Fluid(options){Object}
engineExtensions/simulation/fluid/Fluid.js, line 26
流体模拟对象
| Name | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
实例化流体模拟对象所需的参数
|
Returns:
| Type | Description |
|---|---|
| Object | 返回根据参数实例化的流体模拟对象 |
Examples
// 流体模拟色表是一个简单JavaScript对象,通过对象属性的key和value值表示不同深度的过渡颜色值
// 其中key表示流体深度(单位米),value表示在此深度下的流体颜色,如:
const singleColorTable = {
0: new Cesium.Color.BLUE,
}
// 上述色表描述的是深度在小于0,等于0,大于0时流体的颜色为蓝色,即将流体的所有颜色一致设置为蓝色
// 除此之外还可以给不同高度区间设置颜色过渡效果,如:
const multipleColorTable = {
0: new Cesium.Color.RED,
5: new Cesium.Color.GREEN,
10: new Cesium.Color.BLUE,
}
// 上述色表的解读如下:
// 1. 深度小于0时,显示红色;
// 2. 深度处于0到5之间时,根据值的大小,显示在红色和绿色之间的插值颜色;
// 3. 深度处于5到10之间时,根据值的大小,显示在绿色和蓝色之间的插值颜色;
// 4. 深度大于10时,显示蓝色;
// ES5引入方式
const { Fluid } = zondy
// ES6引入方式
import { Fluid } from "@mapgis/webclient-cesium-plugin"
// 创建流体模拟对象
const fluid = new Fluid({
show: true,
samplePrecision: 10,
})
Members
-
colorObject
-
流体模拟渲染的色表(使用方法详见上方示例)
-
flowParticleFlowParticle
-
流体模拟的粒子对象
-
fluidSourcesFluidSourceCollection
-
流体模拟的源集合对象
-
foamFluidFoam
-
白浪特效对象
-
objectsToExcludeArray
-
不参与流体模拟的对象
-
readyBoolean
-
流体模拟对象是否创建准备就绪
-
readyPromisePromise
-
流体模拟对象是否创建准备就绪的回调方法
-
rectangleCesium.Rectangle
-
流体模拟的范围
-
reflectionFluidReflection
-
流体反射特效对象
-
samplePrecisionNumber
-
流体模拟的采样精度
-
shadowFluidShadow
-
阴影特效对象
-
showBoolean
-
是否显示流体模拟结果
-
specularFluidSpecular
-
高光特效对象
-
speedNumber
-
流体模拟流动速度
-
underwaterUnderwater
-
水下特效对象
Methods
-
addObjects(options)
engineExtensions/simulation/fluid/Fluid.js, line 1562 -
添加刚体到流体模拟中
Name Type Description optionsObject 添加流体模拟刚体的参数
Name Type Description objectsArray 可选 需要添加到流体模拟的刚体对象数组
heightMapUpdateCallbackfunction 可选 添加刚体成功后的回调
Example
// 创建刚体对象,如创建一个Entity Box const blueBox = new Cesium.Entity({ name: "Blue box", position: Cesium.Cartesian3.fromDegrees(-114.0, 40.0, 300000.0), box: { dimensions: new Cesium.Cartesian3(400000.0, 300000.0, 500000.0), material: Cesium.Color.BLUE, } }) // 创建上述刚体对象的透明形式,由于刚体添加到流体模拟中有延迟,因此可以创建一个透明刚体 // 用于展示添加刚体的位置,可以在添加刚体成功的回调方法中将其移除,其目的是优化可视化效果 const blueBoxTransparent = new Cesium.Entity({ name: "Blue box", position: Cesium.Cartesian3.fromDegrees(-114.0, 40.0, 300000.0), box: { dimensions: new Cesium.Cartesian3(400000.0, 300000.0, 500000.0), material: Cesium.Color.BLUE.withAlpha(0.5), } }) // 将透明刚体添加到场景中 viewer.entities.add(blueBoxTransparent) // 将刚体添加到流体模拟对象中 fluid.addObjects({ objects: [blueBox], // 添加刚体到流体模拟中 heightMapUpdateCallback: () => { // 将刚体添加到场景中 viewer.entities.add(blueBox); // 移除场景中用于优化可视化效果的透明刚体 viewer.entities.remove(blueBoxTransparent); }, }); -
destroy()
engineExtensions/simulation/fluid/Fluid.js, line 1629 -
销毁流体模拟对象
Example
fluid.destroy() -
pause()
engineExtensions/simulation/fluid/Fluid.js, line 1618 -
暂停流体模拟
Example
fluid.pause() -
removeObjects(options)
engineExtensions/simulation/fluid/Fluid.js, line 1588 -
从流体模拟中移除刚体
Name Type Description optionsObject 移除流体模拟刚体的参数
Name Type Description objectsArray 可选 需要从流体模拟中删除的刚体对象数组
heightMapUpdateCallbackfunction 可选 移除刚体成功后的回调
Example
// 将刚体从流体模拟中移除 fluid.removeObjects({ objects: [blueBox], heightMapUpdateCallback: () => { // 将刚体从场景中移除 viewer.entities.remove(blueBox); }, }); -
start()
engineExtensions/simulation/fluid/Fluid.js, line 1608 -
开始流体模拟
Example
fluid.start() -
update(options)
engineExtensions/simulation/fluid/Fluid.js, line 1508 -
触发更新高度图的接口,当场景有变化需要做同步时需要调用
Name Type Description optionsObject 更新流体模拟的参数
Name Type Description heightMapUpdateCallbackfunction 可选 添加流体模拟成功后的回调