Grindstone Game Engine v0.2.0
An open source game engine and toolkit.
Loading...
Searching...
No Matches
SceneHeirarchyPanel.hpp
1#pragma once
2
3#include "EngineCore/ECS/Entity.hpp"
4#include "EngineCore/CoreComponents/Tag/TagComponent.hpp"
5#include "EngineCore/CoreComponents/Parent/ParentComponent.hpp"
6
7namespace Grindstone {
8 namespace SceneManagement {
9 class Scene;
10 class SceneManager;
11 }
12
13 namespace Editor {
14 namespace ImguiEditor {
15 class ImguiEditor;
16
17
18 using EntityParentTagView = entt::basic_view<
19 entt::get_t<
20 entt::sigh_mixin<entt::basic_storage<entt::entity, entt::entity, std::allocator<entt::entity>, void>>,
21 entt::sigh_mixin<entt::basic_storage<Grindstone::TagComponent, entt::entity, std::allocator<Grindstone::TagComponent>, void>>,
22 entt::sigh_mixin<entt::basic_storage<Grindstone::ParentComponent, entt::entity, std::allocator<Grindstone::ParentComponent>, void>>
23 >,
24 entt::exclude_t<>,
25 void
26 >;
27
29 public:
31 void Render();
32 private:
33 void RenderScene(SceneManagement::Scene* scene);
34 void RenderEntity(
35 EntityParentTagView& view,
36 ECS::Entity entity,
37 TagComponent& tagComponent,
38 ParentComponent& parentComponent
39 );
40 private:
41 bool isShowingPanel = true;
43 ImguiEditor* editor;
44 ECS::Entity entityToRename;
45 std::string entityRenameNewName;
46 };
47 }
48 }
49}
Definition Entity.hpp:14
Definition SceneHeirarchyPanel.hpp:28
Definition Scene.hpp:21
Definition TagComponent.hpp:7
Definition ParentComponent.hpp:8