deep-engine-demo/packages/docs/api/effect/SeismicWave.md
2026-04-19 18:46:28 +08:00

7.8 KiB
Raw Permalink Blame History

outline
2
3

SeismicWave

  • 源文件:packages/sdk/src/effect/SeismicWave.ts
  • 文档位置:packages/docs/api/effect/SeismicWave.md

接口:SeismicWaveOptions

  • 作用SeismicWaveOptions 的结构定义。

字段

字段名 类型 必填 作用
emitterPositions THREE.Vector3[] 用于保存 emitterPositions 的集合数据。
minRadius number 用于保存 minRadius 对应的数据。
maxRadius number 用于保存 maxRadius 对应的数据。
waveDuration number 用于保存 waveDuration 对应的数据。
spawnInterval number 用于保存 spawnInterval 对应的数据。
opacity number 控制对象或材质的透明度。
color THREE.Color 颜色配置。
autoStart boolean 用于标记 autoStart 的启用状态。
startDelay number 用于保存 startDelay 对应的数据。
shape 'sphere' | 'hemisphere' 用于保存 shape 对应的数据。
useRangeCulling boolean 用于标记 useRangeCulling 的启用状态。

类:SeismicWave

  • 作用SeismicWave 类。

构造函数

new SeismicWave(options?: SeismicWaveOptions)

  • 作用:创建 SeismicWave 实例。

  • 入参:

参数名 类型 必填 说明
options SeismicWaveOptions 当前功能对应的配置项。
  • 出参:SeismicWave
  • 返回说明:返回当前类实例。

new SeismicWave(position: THREE.Vector3, startDelay?: number)

  • 作用:创建 SeismicWave 实例。

  • 入参:

参数名 类型 必填 说明
position THREE.Vector3 位置参数。
startDelay number 参数 startDelay,类型为 number
  • 出参:SeismicWave
  • 返回说明:返回当前类实例。

new SeismicWave(positions: THREE.Vector3[], startDelay?: number)

  • 作用:创建 SeismicWave 实例。

  • 入参:

参数名 类型 必填 说明
positions THREE.Vector3[] 参数 positions,类型为 THREE.Vector3[]
startDelay number 参数 startDelay,类型为 number
  • 出参:SeismicWave
  • 返回说明:返回当前类实例。

new SeismicWave(optionsOrPosition?: SeismicWaveOptions | THREE.Vector3 | THREE.Vector3[], startDelay?: number)

  • 作用:创建 SeismicWave 实例。

  • 入参:

参数名 类型 必填 说明
optionsOrPosition SeismicWaveOptions | THREE.Vector3 | THREE.Vector3[] 参数 optionsOrPosition,类型为 SeismicWaveOptions | THREE.Vector3 | THREE.Vector3[]
startDelay number 参数 startDelay,类型为 number
  • 出参:SeismicWave
  • 返回说明:返回当前类实例。

属性

属性名 可见性 类型 作用
options public Required<SeismicWaveOptions> 用于保存 options 对应的数据。
emitters public SeismicEmitter[] 用于保存 emitters 的集合数据。
waves public SeismicWaveInstance[] 用于保存 waves 的集合数据。
geometry public THREE.SphereGeometry | null 用于保存 geometry 对应的数据。
active public boolean 用于标记 active 的启用状态。
startTime public number | null 用于保存 startTime 对应的数据。
delayTimer public number | null 用于保存 delayTimer 对应的数据。
boundingBox public ParametricBox | null 用于保存 boundingBox 对应的数据。

方法

init(): void

  • 作用:执行 init 初始化逻辑。

  • 入参:无

  • 出参:void

  • 返回说明:无返回值。

start(): void

  • 作用:执行 start 相关逻辑。

  • 入参:无

  • 出参:void

  • 返回说明:无返回值。

startWithDelay(delay: number): void

  • 作用:执行 start With Delay 相关逻辑。

  • 入参:

参数名 类型 必填 说明
delay number 参数 delay,类型为 number
  • 出参:void
  • 返回说明:无返回值。

stop(): void

  • 作用:执行 stop 相关逻辑。

  • 入参:无

  • 出参:void

  • 返回说明:无返回值。

clearWaves(): void

  • 作用:清理 Waves。

  • 入参:无

  • 出参:void

  • 返回说明:无返回值。

spawnWave(position: THREE.Vector3): void

  • 作用:执行 spawn Wave 相关逻辑。

  • 入参:

参数名 类型 必填 说明
position THREE.Vector3 位置参数。
  • 出参:void
  • 返回说明:无返回值。

update(data: RenderEventData): void

  • 作用:更新 update。

  • 入参:

参数名 类型 必填 说明
data RenderEventData 输入数据。
  • 出参:void
  • 返回说明:无返回值。

removeFromScene(scene: THREE.Scene): void

  • 作用:移除 From Scene。

  • 入参:

参数名 类型 必填 说明
scene THREE.Scene 目标场景实例。
  • 出参:void
  • 返回说明:无返回值。

setOpacity(opacity: number): void

  • 作用:设置 Opacity。

  • 入参:

参数名 类型 必填 说明
opacity number 参数 opacity,类型为 number
  • 出参:void
  • 返回说明:无返回值。

setColor(color: number): void

  • 作用:设置 Color。

  • 入参:

参数名 类型 必填 说明
color number 颜色参数。
  • 出参:void
  • 返回说明:无返回值。

updateEmitterPositions(positions: THREE.Vector3[]): void

  • 作用:更新 Emitter Positions。

  • 入参:

参数名 类型 必填 说明
positions THREE.Vector3[] 参数 positions,类型为 THREE.Vector3[]
  • 出参:void
  • 返回说明:无返回值。

dispose(): void

  • 作用:释放资源并销毁当前实例。

  • 入参:无

  • 出参:void

  • 返回说明:无返回值。

createDefaultEmitters(): THREE.Vector3[]

  • 作用:创建 Default Emitters。

  • 入参:无

  • 出参:THREE.Vector3[]

  • 返回说明:返回数组结果,元素类型为 THREE.Vector3

构造示例

  • 来源:packages/demo/src/disasterFormationPanel/GoldMineScene/MineSeismicPanel.vue
  const section = bus.getSection();
  faultSlip = new FaultSlip(section, {autoStart: true});
  faultSlipSeismicWave = new SeismicWave({
    emitterPositions: [new THREE.Vector3(0, 0, 0)],
    shape: 'sphere',
    autoStart: true
  });
  hasFaultSlip.value = true;
};
  • 来源:packages/demo/src/disasterFormationPanel/GoldMineScene/MineSeismicPanel.vue
const createRockBurst = () => {
  rockBurstSeismicWave = new SeismicWave({
    emitterPositions: [new THREE.Vector3(1.5, 1.5, 1.5)],
    shape: 'sphere',
    autoStart: true
  });
  hasRockBurst.value = true;
};

函数示例

SeismicWave.dispose

  • 来源:packages/demo/src/disasterFormationPanel/GoldMineScene/MineSeismicPanel.vue
  if (faultSlipSeismicWave) {
    faultSlipSeismicWave.dispose();
    faultSlipSeismicWave = null;
  }
  hasFaultSlip.value = false;
};

Demo 参考

SeismicWave

以下示例文件中可以看到该 API 的实际调用方式:

  • packages/demo/src/disasterFormationPanel/GoldMineScene/MineSeismicPanel.vue
  • packages/demo/src/disasterFormationPanel/OilGasScene/OilGasMineSeismicPanel.vue
  • packages/demo/src/panels/TunnelScene/DisturbanceLoadingPanel.vue