#pragma once #include "../interfaces/i_scene_script_service.hpp" #include "../interfaces/i_script_engine_service.hpp" #include "../interfaces/i_logger.hpp" #include struct lua_State; namespace sdl3cpp::services::impl { /** * @brief Script-facing scene service implementation. */ class SceneScriptService : public ISceneScriptService { public: SceneScriptService(std::shared_ptr engineService, std::shared_ptr logger); std::vector LoadSceneObjects() override; std::array ComputeModelMatrix(int functionRef, float time) override; ViewState GetViewState(float aspect) override; private: lua_State* GetLuaState() const; std::shared_ptr engineService_; std::shared_ptr logger_; }; } // namespace sdl3cpp::services::impl