4.0 KiB
4.0 KiB
Managers 模块文档
模块概述
src/managers/ 负责业务编排与生命周期管理,不直接承载底层 3D 细节。
2026-03 更新后,管理器层的核心变化:
EngineManager从“全量透传”改为“对外公共 API + 初始化编排”BaseManager新增engineComponentgetter,内部管理器直接调用Engine组件- Manager 层统一收敛为“编排者”,而不是“透传中间层”
代码地图
src/managers/
├── engine-manager.ts
├── toolbar-manager.ts
├── radial-toolbar-manager.ts
├── dialog-manager.ts
├── button-group-manager.ts
├── right-key-manager.ts
├── component-detail-manager.ts
├── construct-tree-manager-btn.ts
├── walk-control-manager.ts
├── measure-dialog-manager.ts
├── section-plane-dialog-manager.ts
├── section-axis-dialog-manager.ts
├── section-box-dialog-manager.ts
├── map-dialog-manager.ts
├── walk-path-dialog-manager.ts
├── walk-plan-view-dialog-manager.ts
├── setting-dialog-manager.ts
├── engine-info-dialog-manager.ts
└── ai-chat-manager.ts
继承关系
BaseManager
├── EngineManager
├── ToolbarManager
├── **RadialToolbarManager**
├── DialogManager
├── ButtonGroupManager
├── RightKeyManager
├── ComponentDetailManager
├── ConstructTreeManagerBtn
├── WalkControlManager
├── SettingDialogManager
├── EngineInfoDialogManager
└── AiChatManager
BaseDialogManager (extends BaseManager)
├── MeasureDialogManager
├── SectionPlaneDialogManager
├── SectionAxisDialogManager
├── SectionBoxDialogManager
├── MapDialogManager
├── WalkPathDialogManager
└── WalkPlanViewDialogManager
BaseManager 统一能力
文件:src/core/base-manager.ts
protected get engineComponent(): Engine | null;
用途:
- 内部 manager 直接调用
Engine组件能力 - 替代历史写法
this.registry.engine3d?.xxx()
示例:
this.engineComponent?.activeSection('box');
this.engineComponent?.setWalkSpeed(speed);
EngineManager(最新职责)
文件:src/managers/engine-manager.ts
职责
- 创建/销毁
Engine组件 - 创建/销毁
RightKeyManager - 组装右键菜单逻辑
- 暴露外部公共 API
公共 API
class EngineManager extends BaseManager {
rightKey: RightKeyManager | null;
getEngineComponent(): Engine | null;
initialize(options?: Omit<EngineOptions, 'container'>): boolean;
isInitialized(): boolean;
loadModel(urls: string[], options?: ModelLoadOptions): void;
pauseRendering(): void;
resumeRendering(): void;
destroy(): void;
}
说明:
- 不再提供
activateMeasure()/activeSection()/setWalkSpeed()等透传 API - 这些能力由内部 manager 直接调用
engineComponent
各管理器职责分层
| 类别 | 代表 Manager | 主要职责 |
|---|---|---|
| 核心入口 | EngineManager |
引擎生命周期与外部 API |
| UI 容器 | RadialToolbarManager, ToolbarManager, DialogManager, ButtonGroupManager |
UI 容器与通用交互 |
| 业务编排 | MeasureDialogManager, Section*DialogManager, WalkControlManager, SettingDialogManager |
对话框/面板回调与引擎能力编排 |
| 数据/交互 | ConstructTreeManagerBtn, ComponentDetailManager, RightKeyManager |
构件树、属性、右键菜单 |
推荐调用方式
Manager 内部
// 推荐
this.engineComponent?.setSectionBoxRange(range);
// 不推荐
this.registry.engine3d?.setSectionBoxRange(range);
非 Manager 组件
registry.engine3d?.getEngineComponent()?.toggleMiniMap();
迁移约束(团队规范)
新增功能时遵循:
- 先在
Engine组件实现能力 - 内部 manager 通过
engineComponent访问 - 仅当确有外部 SDK 需求时,才新增
EngineManager公共方法 - 不新增大规模透传方法