feat: 新增底部Dock测量面板与回调联动
This commit is contained in:
@@ -162,6 +162,101 @@ registry.engine3d?.getEngineComponent()?.activateXx();
|
||||
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
## H. 设置系统对接
|
||||
|
||||
设置系统通过 `SettingDialogManager` 和 `Engine` 组件协作实现。
|
||||
|
||||
### H.1 架构
|
||||
|
||||
```text
|
||||
SettingDialogManager (src/managers/setting-dialog-manager.ts)
|
||||
├── UI 管理: 设置面板生命周期、预设列表展示
|
||||
├── 预设管理: setPresetList() / applyPresetById()
|
||||
└── 设置应用: 调用 engineComponent.setSettings()
|
||||
|
||||
Engine 组件 (src/components/engine/index.ts)
|
||||
├── getSettings(): 获取当前完整设置
|
||||
├── setSettings(patch): 应用设置补丁
|
||||
└── 各类单项设置方法 (setRenderMode, setHDRBackgroundId, etc.)
|
||||
```
|
||||
|
||||
### H.2 第三方注入预设
|
||||
|
||||
```typescript
|
||||
// 初始化设置管理器
|
||||
bimEngine.initSetting();
|
||||
|
||||
// 注入第三方预设
|
||||
bimEngine.setting?.setPresetList([
|
||||
{
|
||||
id: 'vendor-preset',
|
||||
presetName: '供应商预设',
|
||||
isDefault: false,
|
||||
source: 'external',
|
||||
settings: {
|
||||
render: { mode: 'advanced', contrast: 60, ... },
|
||||
display: { showEdge: true, ... },
|
||||
environment: { type: 'hdr', hdrId: 'hdr-01', ... }
|
||||
}
|
||||
}
|
||||
]);
|
||||
```
|
||||
|
||||
### H.3 设置 API 调用链
|
||||
|
||||
```text
|
||||
// 用户点击设置按钮
|
||||
Toolbar Setting Button
|
||||
-> registry.setting.toggle()
|
||||
-> SettingDialogManager.show()
|
||||
-> createContent() 创建面板 UI
|
||||
-> 用户修改设置
|
||||
-> this.engineComponent?.setSettings(patch)
|
||||
-> Engine.setSettings()
|
||||
-> 调用底层引擎 setting 模块
|
||||
|
||||
// 用户切换预设
|
||||
Preset Select Change
|
||||
-> SettingDialogManager.applyPresetById(id)
|
||||
-> 找到对应 preset
|
||||
-> this.engineComponent?.setSettings(preset.settings)
|
||||
-> emit('setting:preset-changed', { preset, timestamp })
|
||||
|
||||
// 用户保存预设
|
||||
Save Preset Button
|
||||
-> 弹出命名输入框
|
||||
-> SettingDialogManager.saveAsPresetWithName(name)
|
||||
-> 组装 EngineSettingPreset
|
||||
-> emit('setting:preset-saved', { preset, currentSettings, timestamp })
|
||||
```
|
||||
|
||||
### H.4 设置相关事件
|
||||
|
||||
```typescript
|
||||
// 预设保存
|
||||
bimEngine.on('setting:preset-saved', ({ preset, currentSettings, timestamp }) => {
|
||||
// 可持久化到 localStorage 或后端
|
||||
});
|
||||
|
||||
// 预设切换
|
||||
bimEngine.on('setting:preset-changed', ({ preset, timestamp }) => {
|
||||
// 可埋点上报
|
||||
});
|
||||
|
||||
// 预设删除
|
||||
bimEngine.on('setting:preset-deleted', (preset) => {
|
||||
// 清理存储
|
||||
});
|
||||
```
|
||||
|
||||
### H.5 详细文档
|
||||
|
||||
- [设置系统模块文档](MODULES/设置系统.md) - 完整 API 和接入指南
|
||||
|
||||
---
|
||||
|
||||
## G. 验收清单
|
||||
|
||||
重构或新增功能后,至少检查:
|
||||
|
||||
Reference in New Issue
Block a user