#ifndef SCENE_H #define SCENE_H #include "app/elements.h" #include "bindings/ruby.h" #include "utils.h" #include "window/window.h" namespace app { struct Scene { std::vector element_ids; Ruby::Block update; ~Scene(); void add_element(uint64_t element_id); void delete_element(uint64_t element_id); void update_scene(mrb_value dt_val); void click(Vec2 position); void render(uint64_t abs_time); std::vector elements_at(Vec2 position); Vec2 world_to_local(Vec2 p, Element *e); }; inline Pool scene_pool; } // namespace app #endif