Parent epic: #482
Depends on: Slice A
Goal
User can add point / spot / directional lights from the GUI, see them in the scene outliner, rename them, duplicate them, and delete them — all undoable.
Scope
- Toolbar/menu entries: "Add Light → Directional / Point / Spot". Default position: origin (with a small offset so they don't stack). Default direction for directional/spot: scene root forward.
- Scene outliner (existing scene tree in the QML inspector at
qml/SceneTreeNode.qml) shows lights as nodes with a light icon next to the name; clicking selects via SelectionSet.
- Right-click context menu on a light: Rename, Duplicate, Delete.
- Keyboard:
Delete removes the selected light(s); Ctrl+D duplicates.
- Undo commands:
CreateLightCommand, DeleteLightCommand, RenameLightCommand — all in src/commands/LightCommands.{h,cpp}.
- "Add Light at viewport center" alternative — uses the focused viewport's camera to position the light a sensible distance in front of the camera (useful for portrait-style key-light placement). Behind a separate menu entry.
- Multi-select delete works.
Acceptance Criteria
Effort
~4 days.
Parent epic: #482
Depends on: Slice A
Goal
User can add point / spot / directional lights from the GUI, see them in the scene outliner, rename them, duplicate them, and delete them — all undoable.
Scope
qml/SceneTreeNode.qml) shows lights as nodes with a light icon next to the name; clicking selects viaSelectionSet.Deleteremoves the selected light(s);Ctrl+Dduplicates.CreateLightCommand,DeleteLightCommand,RenameLightCommand— all insrc/commands/LightCommands.{h,cpp}.Acceptance Criteria
Ctrl+Zbrings the light back with identical properties.scene.light.create,scene.light.duplicate,scene.light.delete,scene.light.rename.Effort
~4 days.