// // Created by Zoe Roux on 2021-05-14. // #pragma once #include #include #include "Entity/Entity.hpp" namespace WAL { //! @brief Represent a single scene that contains entities. class Scene { private: //! @brief The list of registered entities std::vector _entities = {}; public: //! @brief Get the list of entities. std::vector &getEntities(); //! @brief Add a new entity to the scene, you can use this method with the same arguments as the entity's constructor. //! @return The current scene is returned to allow you to chain call. template Entity &addEntity(Params &&...params) { return this->_entities.emplace_back(std::forward(params)...); } //! @brief A default constructor Scene() = default; //! @brief A scene is copy constructable Scene(const Scene &) = default; //! @brief A default destructor ~Scene() = default; //! @brief A scene is assignable Scene &operator=(const Scene &) = default; Scene(Scene &&) = default; }; } // namespace WAL