32 lines
1.2 KiB
Markdown
32 lines
1.2 KiB
Markdown
# Decisions
|
||
|
||
记录架构决策和重要选择。
|
||
|
||
---
|
||
|
||
## [2026-01-27] 实施决策
|
||
|
||
### 执行方式
|
||
- **Task 1-3**: Orchestrator 直接实现(代码简单,遵循既有模式)
|
||
- **原因**: 子代理调用失败(JSON Parse error),且任务为标准代码添加,无复杂逻辑
|
||
|
||
### 代码模式复用
|
||
- Engine 方法封装:复用测量功能模式(`src/components/engine/index.ts:217-401`)
|
||
- Manager 代理:复用测量方法代理模式(`src/managers/engine-manager.ts:126-163`)
|
||
- DialogManager 回调:复用 MeasureDialogManager 模式
|
||
|
||
### 生命周期设计
|
||
- **打开弹窗**: `onDialogCreated()` 中自动激活 X 轴
|
||
- **切换轴向**: `onAxisChange` 回调中调用 `activateSectionAxis()`
|
||
- **关闭弹窗**: `onBeforeDestroy()` 中调用 `deactivateSectionAxis()`
|
||
- **关键点**: 使用 `clipping.disActive()` 停用所有剖切,而非单个 plane 的 `disActive()`
|
||
|
||
### 幂等性保证
|
||
- 重复激活同一轴向时,`activateSectionAxis()` 静默返回
|
||
- 避免不必要的引擎 API 调用
|
||
|
||
### 注释策略
|
||
- 公共 API 方法:保留 JSDoc(IntelliSense 需要)
|
||
- 业务逻辑限制:保留注释("第三方引擎无 API")
|
||
- 生命周期步骤:保留注释(理解执行时机)
|