UsdLayerManager/openspec/changes/implement-scene-hierarchy-p.../specs/scene-hierarchy-panel/spec.md

38 lines
2.3 KiB
Markdown

## ADDED Requirements
### Requirement: Scene hierarchy panel displays USD prim tree
The system SHALL display a hierarchical tree view of all prims in the currently loaded USD stage, allowing users to browse and select prims.
#### Scenario: Panel shows prim hierarchy when stage loaded
- **WHEN** a USD stage is successfully loaded and the Scene Hierarchy panel is visible
- **THEN** the panel displays a tree view containing all prims from the stage, organized by parent-child relationships
- **AND** each prim node displays its name, type, and visual indicators for visibility/active state
- **AND** the root prims (children of the pseudo-root) are displayed at the top level
#### Scenario: Panel shows empty state when no stage loaded
- **WHEN** no USD stage is loaded (or stage creation/opening failed) and the Scene Hierarchy panel is visible
- **THEN** the panel displays disabled text indicating no stage is loaded
- **AND** suggests opening a USD file to view scene hierarchy
#### Scenario: Prim selection highlights in tree
- **WHEN** a prim is selected in the scene hierarchy tree (via click)
- **THEN** that prim's node is highlighted as selected in the tree view
- **AND** the panel's selected prim path is updated to match the clicked prim's path
- **AND** the prim selection callback is invoked with the selected prim's path
#### Scenario: Prim type visible in tooltip
- **WHEN** the user hovers over a prim node in the scene hierarchy tree
- **THEN** a tooltip appears showing the prim's type name and full path
- **AND** the tooltip disappears when the cursor leaves the prim node
#### Scenario: Context menu available on prim nodes
- **WHEN** the user right-clicks on a prim node in the scene hierarchy tree
- **THEN** a context menu appears with options for common prim operations
- **AND** the context menu includes options to toggle visibility and toggle active state
- **AND** selecting a context menu option applies the corresponding operation to the prim
#### Scenario: Panel integrates with application docking system
- **WHEN** the Scene Hierarchy panel is created as part of the application UI
- **THEN** the panel appears as a dockable window titled "Scene Hierarchy"
- **AND** the panel can be undocked, floated, resized, and docked to other positions in the UI
- **AND** the panel respects the NoCollapse window flag (cannot be collapsed to title bar only)