34 class EditorLayer :
public Layer,
public CommandManager
41 CreateWidget<HierarchyPanel>();
42 CreateWidget<ScenePanel>();
43 CreateWidget<AnalyserPanel>();
44 CreateWidget<AssetBrowserPanel>();
45 CreateWidget<StatisticsPanel>();
48 CreateWidget<WwiseBrowserWidget>();
52 virtual void OnAttach()
override;
54 virtual void OnUpdate()
override;
55 virtual void OnRender()
override;
56 virtual void OnImGuiRender()
override;
57 virtual void OnEvent(
Event& event)
override;
59 EditorCamera* GetCamera();
60 inline std::weak_ptr<Scene> GetScene() {
return m_EditorScene; }
61 inline std::weak_ptr<GameObject> GetSelectedObject() {
return m_SelectedObject; }
62 void SelectObject(std::shared_ptr<GameObject> newSelection);
64 inline static EditorLayer& Get() {
return *s_Instance; }
67 inline static void CreateWidget()
69 bool isValid = std::is_base_of_v<EditorWidget, T>;
70 EE_ASSERT(isValid,
"An attemp to add a non widget element to the widget stack was detected.");
71 Get().m_widgets.push_back(std::make_unique<T>());
74 std::vector<std::unique_ptr<EditorWidget>> m_widgets;
75 std::shared_ptr<Texture> m_playTexture;
76 std::shared_ptr<Texture> m_pauseTexture;
77 std::shared_ptr<Texture> m_stopTexture;
78 std::shared_ptr<Texture> m_coloredStopTexture;
80 std::shared_ptr<GameObject> m_CameraObject;
82 std::weak_ptr<GameObject> m_SelectedObject;
85 std::shared_ptr<Scene> m_EditorScene;
88 std::shared_ptr<Shader> m_GridShader;
89 std::shared_ptr<GameObject> m_GridObject;
91 static EditorLayer* s_Instance;