feat: 新增全景图节点与工具链支持

- 新增CanvasNodeMetadata的panoramaConfig配置字段
- 新增全景图工具栏分组与操作上下文方法
- 新增全景图配置弹窗、全景查看节点与环视功能
- 新增四向视图导出、全屏环视等交互功能
- 更新画布工具栏与页面逻辑接入全景图工具
This commit is contained in:
bensharp
2026-09-10 19:57:21 +08:00
committed by ddCat
parent af342e8c24
commit aee082fbf7
11 changed files with 993 additions and 52 deletions

View File

@@ -1617,3 +1617,14 @@ v2(用户反馈首版难看后重做):菜单改用 antd Dropdown(placeme
- [ ] 多个绘图节点连接到生成节点后,参考栏显示各自最新缩略图;编辑并保存绘图后重新打开面板,缩略图随 revision 更新。
- [ ] 用拖动手柄或聚焦后按左右方向键调整参考顺序,标签编号和提示词中的 `@图片N` 同步更新;刷新画布后顺序保持,配置节点承接引用时同样有效。
- [ ] 明暗主题下拖动手柄、缩略图预览、删除按钮和横向滚动无错位;拖动引用不触发画布节点拖拽。
## 全景图工具与查看器增强(2026-09-10)
图片节点工具栏「全景图」先打开配置弹窗再创建节点:弹窗含素材管理(参考图多选/图生模式单选、素材选择器搜索)、提示词合成(内置等距柱状投影约束模板,可展开查看最终提示词并复制)、生成方式(AI 生成/图生全景)、投影方式(720° 球体/360° 环绕)、智能比例兜底说明;配置写入节点 `metadata.panoramaConfig`,参考图节点一并连线。全景查看器新增:顶部工具栏(全屏环视、截图当前视角、导出四向视图、重置视角、退出)、方向键旋转、three.js 按需加载 spinner、投影方式标签;截图走 `preserveDrawingBuffer` 同步重渲染,四宫格临时切方形画幅并带方向标注;全屏为 portal 覆盖层(滚轮调视场角),展开时节点体退回静态预览保证同一时刻只有一个 WebGL 上下文。截图经 `addPanoramaCaptureNode` 上传并在源节点右侧按列错开创建派生图片节点。tsc 零错误,需浏览器验收:
- [ ] 图片节点工具栏点「全景图」:弹出配置弹窗,左侧可加/删参考图(图生模式仅单选),中间提示词与「查看最终提示词」联动,右侧模式切换与说明文案正确。
- [ ] 确认后在源图右侧创建全景节点并连线,选中且弹出对话节点;图生模式无连线时节点直接显示 `directImageUrl` 源图。
- [ ] 全景节点点「进入环视」:加载中出现 spinner;拖拽环视、方向键旋转、重置视角正常;节点内滚轮仍归画布缩放。
- [ ] 工具栏「截图当前视角」与「导出四向视图」:源节点右侧出现派生图片节点(四向视图为 2×2 带方向标注),多次导出按列错开不重叠;导出后视角自动还原。
- [ ] 「全屏环视」:覆盖层展开,滚轮缩放视场角生效;退出全屏回到节点内环视且视角保留;展开期间节点体显示静态预览。
- [ ] 分享只读页(未提供导出动作)不显示截图/四宫格按钮,仅保留环视、重置与全屏;明暗主题与性能模式(仅预览)行为不变。