2.3 KiB
ADDED Requirements
Requirement: Prim creation is undoable
The system SHALL push a CreatePrimCommand to CommandHistory when a prim is created via the scene hierarchy context menu. Undo() SHALL remove the created prim from the stage. Redo() SHALL re-create the prim with the same path and type.
Scenario: Undo removes created prim
- WHEN the user creates a Sphere prim and then presses Ctrl+Z
- THEN the Sphere prim no longer appears in the scene hierarchy
Scenario: Redo re-creates the prim
- WHEN the user undoes a prim creation and then presses Ctrl+Y
- THEN the Sphere prim reappears at the same path with the same type
Requirement: Prim deletion is undoable
The system SHALL push a DeletePrimCommand to CommandHistory when a prim is deleted via the scene hierarchy confirm modal. Before deletion, the command SHALL serialize the prim spec (including all authored opinions on the edit-target layer) to an in-memory string. Undo() SHALL restore the serialized spec to the layer.
Scenario: Undo restores deleted prim
- WHEN the user deletes a prim and then presses Ctrl+Z
- THEN the prim reappears in the scene hierarchy with all its authored attributes intact
Scenario: Redo re-deletes the prim
- WHEN the user undoes a deletion and then presses Ctrl+Y
- THEN the prim is deleted again
Requirement: Add-reference is undoable
The system SHALL push an AddReferenceCommand to CommandHistory when an external USD file is added as a reference. Undo() SHALL remove the reference (and the wrapping Xform prim if it was created by the add-reference operation). Redo() SHALL re-add the reference.
Scenario: Undo removes added reference
- WHEN the user adds a reference to an external file and then presses Ctrl+Z
- THEN the reference prim is removed from the scene hierarchy
Requirement: Replace-reference is undoable
The system SHALL push a ReplaceReferenceCommand to CommandHistory when an existing reference is replaced via the scene hierarchy. Undo() SHALL restore the previous SdfReference. Redo() SHALL apply the replacement again.
Scenario: Undo restores previous reference path
- WHEN the user replaces a reference and then presses Ctrl+Z
- THEN the prim points back to the original reference file