Files
REVOXELSEG_DICOM/工程分析/实现方案-2026-05-08-03-35-22.md

51 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 实现方案:右侧实体切面预览
时间戳2026-05-08-03-35-22
## 修改目标
`Mask 展示` 区域新增真实 STL 切割实体预览组件,替代旧的二维示意 Mask并删除底部导出进度栏。
## 涉及路径
- `WebSite/src/components/ReverseWorkspace.tsx`
- `工程分析/经验记录.md`
## 技术路线
1. 新增 `CutSectionPreview` 组件。
2. 组件使用 Three.js 渲染 STL preview 顶点数据。
3. 使用 DICOM `physicalSize.depth``total``displayStart/displayEnd` 映射到 Z 方向两张 clipping plane。
4. 当“模型切分”启用时,对 STL 材质应用两张 clipping plane保留中间实体区域未启用时展示完整实体模型。
5. 复用构件颜色、显示隐藏、模型位姿和高质量实体请求上限。
6. 删除旧 `mappings` 假 Mask 形状、`MaskMapping` 类型引用、`exportMessage` 和底部导出进度栏。
## 数据流或交互流程
- DICOM 范围条更新 `displayStart/displayEnd`
- `FusionThreeView``CutSectionPreview` 都接收相同范围。
- `CutSectionPreview` 请求 STL preview居中、缩放并应用当前模型位姿。
- 启用模型切分后,右侧实体预览显示裁切后的 STL 中间段。
## 兼容性与回滚方案
- 若实体预览性能不满足要求,可降低 `detailLimit` 或回滚到旧 Mask 展示区域。
- 本次不改 API 和数据文件,回滚只涉及前端组件。
## 风险控制
- 使用 `npm run lint` 验证类型。
- 使用 `npm run build` 验证构建。
- 使用 `rg` 确认旧 `导出进度``mappings`、假 Mask 结构已移除。
- 重启服务并验证 4000 端口。
## 预计文件变更
- 修改 `ReverseWorkspace.tsx`
- 新增本次需求、实现、测试文档。
- 追加经验记录。
## 人工审核状态
用户已在项目工作流历史中确认后续直接执行,本次不等待二次人工审核。