8.8 KiB
8.8 KiB
| outline | ||
|---|---|---|
|
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