11#include <entt/entt.hpp>
20 class SceneSerializer;
40 template<
typename Func>
42 template<
typename Component,
typename Func>
44 template<
typename Component,
typename Func>
49 void drawRenderables();
52 f32 m_viewportWidth = 0.f;
53 f32 m_viewportHeight = 0.f;
54 entt::registry m_registry;
55 b2World* m_physics2dWorld =
nullptr;
62 template<
typename Func>
65 m_registry.each([&](entt::entity entityHandle) {
66 func({ entityHandle, *
this });
70 template<
typename Component,
typename Func>
73 m_registry.sort<Component>(func);
76 template<
typename Component,
typename Func>
79 auto view = m_registry.view<Component>();
80 for (
auto entity : view)
81 func({ entity, *
this });
Definition: entity.hpp:17
void onUpdate(f32 dt)
Definition: scene.cpp:197
~Scene()
Definition: scene.cpp:49
Entity createEntity(const std::string &name)
Definition: scene.cpp:72
Entity duplicateEntity(Entity other)
Definition: scene.cpp:92
void sort(Func func)
Definition: scene.hpp:71
void onDestroy()
Definition: scene.cpp:182
void onEvent(Event &event)
Definition: scene.cpp:238
void setViewportSize(f32 width, f32 height)
Definition: scene.hpp:47
void destroyEntity(Entity entity)
Definition: scene.cpp:101
void each(Func func)
Definition: scene.hpp:63
void onCreate(f32 gravity)
Definition: scene.cpp:106
static Ref< Scene > copy(const Ref< Scene > &other)
Definition: scene.cpp:54
friend class EditorLayer
Definition: scene.hpp:57
Definition: scene_serializer.hpp:19
float f32
Definition: base.hpp:47
std::shared_ptr< T > Ref
Definition: base.hpp:32