58 lines
1.1 KiB
C++
58 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#include <app/layer.hpp>
|
|
#include <imgui.h>
|
|
#include <math/vec2.hpp>
|
|
#include <mirror/panels/asset_browser.hpp>
|
|
#include <mirror/panels/properties.hpp>
|
|
#include <mirror/panels/scene_hierarchy.hpp>
|
|
#include <renderer/texture.hpp>
|
|
|
|
namespace lt {
|
|
|
|
class Scene;
|
|
|
|
class EditorLayer: public Layer
|
|
{
|
|
public:
|
|
EditorLayer(const std::string &name);
|
|
|
|
~EditorLayer() override;
|
|
|
|
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;
|
|
|
|
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;
|
|
};
|
|
|
|
} // namespace lt
|