Init Repo

This commit is contained in:
2026-06-03 09:00:11 +08:00
commit 9be48d8b9e
155 changed files with 14827 additions and 0 deletions
@@ -0,0 +1,46 @@
## ADDED Requirements
### Requirement: Frame selected prim with F key
The viewport SHALL frame the camera on the bounding box of the currently selected prim when the user presses the F key while the viewport is focused.
#### Scenario: Frame a selected mesh prim
- **WHEN** the user has a mesh prim selected in the scene hierarchy and presses F while the viewport is focused
- **THEN** the camera repositions to frame the bounding box of that prim and all its descendants in world space
#### Scenario: Frame with no prim selected
- **WHEN** the user presses F with no prim selected
- **THEN** no camera movement occurs
#### Scenario: Frame in USD camera mode
- **WHEN** the viewport is in USD camera mode and the user presses F
- **THEN** the viewport switches to free camera mode and frames the selected prim
### Requirement: Frame all with A key
The viewport SHALL frame the camera on the bounding box of the entire USD stage when the user presses the A key while the viewport is focused.
#### Scenario: Frame all prims in the stage
- **WHEN** the user presses A while the viewport is focused and a stage is loaded
- **THEN** the camera repositions to frame the bounding box of the entire stage
#### Scenario: Frame all with no stage loaded
- **WHEN** the user presses A with no stage loaded
- **THEN** no camera movement occurs
### Requirement: Selected prim path sourced from SceneHierarchyPanel
The viewport SHALL obtain the currently selected prim path from the `SceneHierarchyPanel` via a callback wired by the `Application` class.
#### Scenario: Selection change triggers prim path update
- **WHEN** the user selects a different prim in the SceneHierarchyPanel
- **THEN** the viewport's stored selected prim path updates to reflect the new selection
- **AND** pressing F frames the newly selected prim
### Requirement: Bounding box computed via UsdGeomBBoxCache
The bounding box for framing a selected prim SHALL be computed using `UsdGeomBBoxCache` to correctly account for transforms, instancing, and purpose.
#### Scenario: Bounding box includes descendant geometry
- **WHEN** the user frames a prim that has mesh children
- **THEN** the bounding box encompasses the prim and all its descendants' geometry in world space