## 1. Wire SceneHierarchyPanel into Application - [x] 1.1 Add SceneHierarchyPanel member variable to Application class - [x] 1.2 Create SceneHierarchyPanel instance in Application::Initialize() - [x] 1.3 Set PropertyManager on SceneHierarchyPanel instance - [x] 1.4 Replace placeholder Scene Hierarchy panel code with call to m_sceneHierarchyPanel->Render() - [x] 1.5 Ensure SceneHierarchyPanel is properly cleaned up in Application::Shutdown() ## 2. Enhance SceneHierarchyPanel with Visual Indicators - [x] 2.1 Modify RenderPrimNode to display prim type icons before the display name - [x] 2.2 Add visibility state indicators (eye/open vs eye/slash) based on prim.GetVisibility() - [x] 2.3 Add active state indicators (circle/filled circle) based on prim.GetActive() - [x] 2.4 Ensure proper indentation and spacing with the added indicators - [x] 2.5 Update tooltip to include visibility and active state information ## 3. Add Context Menu Support - [x] 3.1 Add context menu popup on right-click of prim tree nodes - [x] 3.2 Add "Toggle Visibility" menu item that calls prim.SetVisibility() with toggled value - [x] 3.3 Add "Toggle Active" menu item that calls prim.SetActive() with toggled value - [x] 3.4 Add "Show/Hide Children" menu item to collapse/expand tree nodes - [x] 3.5 Ensure context menu only appears for valid prim nodes and handles USD errors gracefully ## 4. Verify Selection and Integration - [x] 4.1 Verify prim selection highlighting works correctly in enhanced tree view - [x] 4.2 Confirm tooltip shows all relevant information (type, path, visibility, active) - [x] 4.3 Test that selection callback is properly invoked when prim is clicked - [x] 4.4 Ensure panel updates correctly when stage changes (new/loaded/closed) - [x] 4.5 Verify panel integrates properly with docking system (can be undocked, floated, etc.)