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

8.8 KiB
Raw Permalink Blame History

outline
2
3

RuptureEventManager

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

接口:RuptureEvent

  • 作用:破裂事件数据接口

字段

字段名 类型 必填 作用
position { x: number; y: number; z: number } 位置数据。
time number 用于保存 time 对应的数据。
energy number 用于保存 energy 对应的数据。

接口:RuptureEventConfig

  • 作用:破裂事件配置接口

字段

字段名 类型 必填 作用
minRadius number 用于保存 minRadius 对应的数据。
maxRadius number 用于保存 maxRadius 对应的数据。
minEnergy number 用于保存 minEnergy 对应的数据。
maxEnergy number 用于保存 maxEnergy 对应的数据。
mappingType 'linear' | 'logarithmic' 用于保存 mappingType 对应的数据。
crackModelUrls string[] 用于保存 crackModelUrls 的集合数据。
crackBaseScale number 用于保存 crackBaseScale 对应的数据。

类:RuptureEventManager

  • 作用:破裂事件管理类 通过球体可视化破裂事件,球体大小表示能量,颜色表示时间序列

构造函数

new RuptureEventManager(viewer: Viewer, config?: RuptureEventConfig)

  • 作用:构造函数

  • 入参:

参数名 类型 必填 说明
viewer Viewer Viewer实例
config RuptureEventConfig 配置选项
  • 出参:RuptureEventManager
  • 返回说明:返回当前类实例。

属性

属性名 可见性 类型 作用
viewer public Viewer 用于保存 viewer 对应的数据。
scene public THREE.Scene 用于保存 scene 对应的数据。
events public Map<number, { event: RuptureEvent; mesh: THREE.Mesh; crackModel?: THREE.Group }> 用于保存 events 的映射关系。
config public Required<RuptureEventConfig> 用于保存 config 对应的数据。
minTime public number 用于保存 minTime 对应的数据。
maxTime public number 用于保存 maxTime 对应的数据。
crackModels public THREE.Group[] 用于保存 crackModels 的集合数据。
isLoadingModels public boolean 用于标记 isLoadingModels 的启用状态。

方法

loadCrackModels(): Promise<void>

  • 作用:预加载裂缝模型

  • 入参:无

  • 出参:Promise<void>

  • 返回说明:返回 Promise解析结果类型为 void

createCrackModel(event: RuptureEvent, radius: number): THREE.Group<THREE.Object3DEventMap> | undefined

  • 作用:为破裂球创建裂缝模型

  • 入参:

参数名 类型 必填 说明
event RuptureEvent 破裂事件数据
radius number 球体半径
  • 出参:THREE.Group<THREE.Object3DEventMap> \| undefined
  • 返回说明:裂缝模型实例

addEvent(event: RuptureEvent): THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>

  • 作用:添加单个破裂事件

  • 入参:

参数名 类型 必填 说明
event RuptureEvent 破裂事件数据
  • 出参:THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> \| THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>
  • 返回说明:创建的球体网格

addEvents(events: RuptureEvent[]): THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>[]

  • 作用:批量添加破裂事件

  • 入参:

参数名 类型 必填 说明
events RuptureEvent[] 破裂事件数组
  • 出参:THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> \| THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>[]
  • 返回说明:创建的球体网格数组

removeEvent(time: number): boolean

  • 作用:删除破裂事件

  • 入参:

参数名 类型 必填 说明
time number 事件时间戳
  • 出参:boolean
  • 返回说明:是否删除成功

clearEvents(): void

  • 作用:清空所有破裂事件

  • 入参:无

  • 出参:void

  • 返回说明:无返回值。

applyFilter(recentMinutes: number | null, energyThreshold: number | null): void

  • 作用:根据时间窗口和能量阈值过滤事件

  • 入参:

参数名 类型 必填 说明
recentMinutes number | null 最近N分钟null表示不过滤
energyThreshold number | null 能量阈值null表示不过滤
  • 出参:void
  • 返回说明:无返回值。

cancelFilter(): void

  • 作用:取消过滤,显示所有事件

  • 入参:无

  • 出参:void

  • 返回说明:无返回值。

getEvent(time: number): { event: RuptureEvent; mesh: THREE.Mesh; crackModel?: THREE.Group; } | undefined

  • 作用:获取事件

  • 入参:

参数名 类型 必填 说明
time number 事件时间戳
  • 出参:{ event: RuptureEvent; mesh: THREE.Mesh; crackModel?: THREE.Group; } \| undefined
  • 返回说明:事件数据、网格和裂缝模型

getAllEvents(): Map<number, { event: RuptureEvent; mesh: THREE.Mesh; crackModel?: THREE.Group; }>

  • 作用:获取所有事件

  • 入参:无

  • 出参:Map<number, { event: RuptureEvent; mesh: THREE.Mesh; crackModel?: THREE.Group; }>

  • 返回说明所有事件的Map

getVisibleEventCount(): number

  • 作用:获取当前显示的事件数量

  • 入参:无

  • 出参:number

  • 返回说明:可见事件数量

getTotalEventCount(): number

  • 作用:获取总事件数量

  • 入参:无

  • 出参:number

  • 返回说明:总事件数量

updateConfig(config: Partial<RuptureEventConfig>): void

  • 作用:更新配置

  • 入参:

参数名 类型 必填 说明
config Partial<RuptureEventConfig> 新配置
  • 出参:void
  • 返回说明:无返回值。

createEventSphere(event: RuptureEvent): THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>

  • 作用:创建事件球体

  • 入参:

参数名 类型 必填 说明
event RuptureEvent 破裂事件数据
  • 出参:THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> \| THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>
  • 返回说明:球体网格

mapEnergyToRadius(energy: number): number

  • 作用:将能量映射到半径

  • 入参:

参数名 类型 必填 说明
energy number 能量值
  • 出参:number
  • 返回说明:半径值

mapTimeToColor(time: number): THREE.Color

  • 作用:将时间映射到颜色(蓝 → 黄 → 红)

  • 入参:

参数名 类型 必填 说明
time number 时间戳
  • 出参:THREE.Color
  • 返回说明:颜色

updateTimeRange(time: number): void

  • 作用:更新时间范围

  • 入参:

参数名 类型 必填 说明
time number 时间戳
  • 出参:void
  • 返回说明:无返回值。

recalculateTimeRange(): void

  • 作用:重新计算时间范围

  • 入参:无

  • 出参:void

  • 返回说明:无返回值。

updateAllColors(): void

  • 作用:更新所有事件的颜色

  • 入参:无

  • 出参:void

  • 返回说明:无返回值。

构造示例

  • 当前 Demo 中没有直接展示 RuptureEventManager 的构造调用。

函数示例

  • 当前 Demo 中没有直接展示 RuptureEventManager 的公开方法调用。

Demo 参考

RuptureEvent

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

  • packages/demo/src/disasterFormationPanel/TunnelScene/RuptureEventPanel.vue