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,30 @@
## ADDED Requirements
### Requirement: Independent camera per viewport tile
Each viewport tile SHALL own an independent `ViewportCamera` instance. Camera operations (orbit, pan, dolly, zoom, frame) in one tile SHALL NOT affect any other tile's camera.
#### Scenario: Orbit in one tile, other tiles unchanged
- **WHEN** the user Alt+LMB drags to orbit in tile A
- **THEN** tile A's camera rotates, while tiles B, C, D remain at their previous camera positions
#### Scenario: Frame selection in one tile
- **WHEN** the user presses F in a tile
- **THEN** that tile's camera frames the current selection, other tiles are unaffected
### Requirement: Per-tile camera selector dropdown
Each tile SHALL have a compact camera selector (icon + dropdown) showing "Free Camera" and all USD camera prims on the stage. Selecting a USD camera in one tile SHALL NOT affect other tiles.
#### Scenario: Tile A uses Free Camera, Tile B uses a USD camera prim
- **WHEN** the user selects a USD camera prim in tile B's camera dropdown
- **THEN** tile B switches to USD camera mode and renders from that camera's view, while tile A continues in free camera mode
#### Scenario: Both tiles use the same USD camera
- **WHEN** the user selects the same USD camera prim in both tile A and tile B
- **THEN** both tiles render from that camera's view but can navigate independently when one tile goes into free camera mode
### Requirement: Camera list refreshes on dropdown open
Each tile SHALL refresh its camera prim list from the stage whenever its camera dropdown is opened.
#### Scenario: New camera added, then dropdown opened
- **WHEN** the user adds a new UsdGeomCamera prim to the stage and opens a tile's camera dropdown
- **THEN** the dropdown includes the newly added camera prim