Parent epic: #482
Depends on: Slice C
Goal
Lights are invisible by default in Ogre. Make them clickable, draggable, and visually meaningful in the viewport with type-specific gizmos that match what users expect from Blender/Unity/Unreal.
Scope
- Always-on billboard icons at each light's position (different sprite per type: sun glyph for directional, bulb for point, cone for spot). Rendered as
Ogre::BillboardSet per-light on a dedicated overlay layer so they sort correctly with the scene. Toggle: View → Show Light Icons (default ON).
- Pickable: clicking an icon selects the light (route through the existing ray-pick path in
TransformOperator).
- Type-specific helper gizmos (drawn with
ManualObject, like the existing translation gizmos):
- Directional: an arrow showing direction with a sun-rays glyph around the origin.
- Point: a sphere of radius =
range (wireframe, low segment count).
- Spot: a wireframe cone matching outer angle + range; an inner cone at inner angle.
- Colour-tinted gizmos: the helper geometry uses the light's diffuse colour at 50% alpha so the user can read the light's tint at a glance.
- Update on property change: gizmos update reactively when
LightManager::lightChanged fires.
- Selection highlight: the gizmo of the currently selected light(s) draws thicker / fully opaque.
- Optional:
View → Show Selected Light Gizmo Only to declutter scenes with many lights (default OFF).
Acceptance Criteria
Effort
~6 days.
Parent epic: #482
Depends on: Slice C
Goal
Lights are invisible by default in Ogre. Make them clickable, draggable, and visually meaningful in the viewport with type-specific gizmos that match what users expect from Blender/Unity/Unreal.
Scope
Ogre::BillboardSetper-light on a dedicated overlay layer so they sort correctly with the scene. Toggle:View → Show Light Icons(default ON).TransformOperator).ManualObject, like the existing translation gizmos):range(wireframe, low segment count).LightManager::lightChangedfires.View → Show Selected Light Gizmo Onlyto declutter scenes with many lights (default OFF).Acceptance Criteria
MeshInfoOverlay,ViewCube, transform gizmos).scene.light.gizmo_toggleon visibility changes.Effort
~6 days.