light/modules/mirror/public/layers/editor_layer.hpp

59 lines
1.1 KiB
C++
Raw Normal View History

#pragma once
#include <app/layer.hpp>
#include <imgui.h>
#include <math/vec2.hpp>
2025-07-20 04:46:15 +03:30
#include <mirror/panels/asset_browser.hpp>
#include <mirror/panels/properties.hpp>
#include <mirror/panels/scene_hierarchy.hpp>
#include <renderer/texture.hpp>
2025-07-11 00:05:48 +03:30
namespace lt {
2025-07-11 01:16:52 +03:30
class Scene;
2022-03-04 22:40:20 +03:30
class EditorLayer: public Layer
{
public:
EditorLayer(const std::string &name);
2025-07-06 15:10:34 +03:30
~EditorLayer() override;
2025-07-06 15:10:34 +03:30
EditorLayer(EditorLayer &&) = delete;
EditorLayer(const EditorLayer &) = delete;
auto operator=(EditorLayer &&) const -> EditorLayer & = delete;
auto operator=(const EditorLayer &) const -> EditorLayer & = delete;
void on_update(float delta_time) override;
void on_render() override;
void on_user_interface_update() override;
2022-03-04 22:40:20 +03:30
private:
std::string m_scene_dir;
math::vec2 m_direction;
float m_speed = 1000.0f;
Ref<Scene> m_scene;
Ref<SceneHierarchyPanel> m_sceneHierarchyPanel;
Ref<PropertiesPanel> m_properties_panel;
Ref<AssetBrowserPanel> m_content_browser_panel;
Ref<Framebuffer> m_framebuffer;
Entity m_camera_entity;
ImVec2 m_available_content_region_prev;
2022-03-04 22:40:20 +03:30
};
2025-07-11 00:05:48 +03:30
} // namespace lt