58 lines
3.0 KiB
Markdown
58 lines
3.0 KiB
Markdown
## ADDED Requirements
|
||
|
||
### Requirement: Cutout offers persistent gesture selection
|
||
|
||
Cutout SHALL 提供 Lasso 和 Polyline 手势,默认 Lasso,并保存到 Scene 的独立 Cutout 设置。
|
||
|
||
#### Scenario: User selects Polyline
|
||
- **WHEN** 用户将 Cutout Gesture 切换为 Polyline 并开始剪出
|
||
- **THEN** 工具以首次左键按下的位置为起点,随后通过点击添加顶点
|
||
|
||
#### Scenario: User returns to Cutout
|
||
- **WHEN** 用户选择 Polyline 后切换到其他工具再返回
|
||
- **THEN** Cutout 继续使用 Polyline,Mask Gesture 保持自己的设置
|
||
|
||
#### Scenario: Default Lasso interaction
|
||
- **WHEN** 新 Scene 中用户拖动 Cutout 并释放左键
|
||
- **THEN** 工具以 Lasso 收集轮廓并在有效选区完成后打开 Shape 饼菜单
|
||
|
||
### Requirement: Cutout reuses shared Polyline interaction
|
||
|
||
Cutout MUST 复用 Mask 所用的共用 Polyline 手势,提供轮廓预览、起点闭合提示、左键添加顶点、Backspace 删除末点、点击起点或双击或 Enter 完成,以及 RMB、Esc 和切换工具取消。
|
||
|
||
#### Scenario: User completes a polygon
|
||
- **WHEN** 至少三个顶点后,用户点击起点闭合范围内、双击或按 Enter / Numpad Enter
|
||
- **THEN** 工具提交已确认的闭合 SelectionPath 并打开 Shape 饼菜单,闭合点击和双击第二击不添加重复顶点
|
||
|
||
#### Scenario: Too few points
|
||
- **WHEN** 少于三个顶点时用户尝试完成
|
||
- **THEN** 工具继续收集顶点,不打开 Shape 菜单
|
||
|
||
#### Scenario: User edits or cancels a polygon
|
||
- **WHEN** 用户按 Backspace,或通过 RMB、Esc、切换工具取消
|
||
- **THEN** Backspace 删除末点并至少保留起点;取消清理预览且不创建结果对象
|
||
|
||
#### Scenario: Empty click preserves the source
|
||
- **WHEN** 用户在空白处启动 Cutout 手势
|
||
- **THEN** 工具保持现有源对象选择规则,不因空白点击清空源对象
|
||
|
||
### Requirement: Polyline initializes Depth Solid with Uniform mode
|
||
|
||
通过 Polyline 创建 Depth Solid 时,系统 MUST 将新对象的 `O Image Depth Cutout` 修改器 Mode 初始化为 Uniform。手势 MUST 使用本次提交快照。
|
||
|
||
#### Scenario: Polyline depth result completes asynchronously
|
||
- **WHEN** 用户提交 Polyline 并选择 Depth Solid,在生成结束前将 Cutout Gesture 改为 Lasso
|
||
- **THEN** 本次结果的 Mode 仍为 Uniform,用户可在创建后手动调整
|
||
|
||
#### Scenario: Lasso or another shape is used
|
||
- **WHEN** 用户通过 Lasso 创建 Depth Solid,或通过 Polyline 创建 Flat、Solid、Depth Balloon
|
||
- **THEN** 对象沿用该 Shape 的现有 Mode 初始化规则
|
||
|
||
### Requirement: Uniform thickness defaults to half a unit
|
||
|
||
`O Image Depth Cutout` 的 Uniform Thickness socket MUST 默认 0.5,保存资产中对应显示为 Thickness 的 socket 和新建修改器 MUST 使用该值。
|
||
|
||
#### Scenario: Node asset is built and loaded
|
||
- **WHEN** 完成节点资产构建并从资产加载节点组创建 Polyline Depth Solid
|
||
- **THEN** Mode 为 Uniform,Uniform 厚度值为 0.5,通用 Thickness 初始化不会覆盖该值
|