#pragma once #include #include #include "Vector.hpp" #include "Object.hpp" #include "Light.hpp" class Scene { public: // setting up options int width = 1280; int height = 960; double fov = 90; Vector3f backgroundColor = Vector3f(0.235294, 0.67451, 0.843137); int maxDepth = 5; float epsilon = 0.00001; Scene(int w, int h) : width(w), height(h) {} void Add(std::unique_ptr object) { objects.push_back(std::move(object)); } void Add(std::unique_ptr light) { lights.push_back(std::move(light)); } [[nodiscard]] const std::vector >& get_objects() const { return objects; } [[nodiscard]] const std::vector >& get_lights() const { return lights; } private: // creating the scene (adding objects and lights) std::vector > objects; std::vector > lights; };