#pragma once #include #include #include #include class SceneHierarchyPanel : public sophia::Panel { public: SceneHierarchyPanel() : Panel{{.name = "Scene Hierarchy"}} {} void onUpdate(const sophia::FrameInfo& frameInfo) override; private: struct Node { std::string name; std::vector children; }; void drawNode(const Node& node); std::vector nodes = { {"Main Camera", {}}, {"Directional Light", {}}, {"Ground", {}}, {"Player", {}}, {"Enemies", {{"Enemy_01", {}}, {"Enemy_02", {}}, {"Enemy_03", {}}}}, {"Props", {{"Crate_01", {}}, {"Crate_02", {}}}}, }; std::string selected; };