#ifndef LINALG_SCENE_HPP
#define LINALG_SCENE_HPP

#include "mesh.hpp"
#include "camera.hpp"
#include <vector>

namespace visual_engine {

class scene final {
    std::vector<mesh> objects_;
    detail::camera    cam_;

public:
    scene(int cols, int rows);

    void add_mesh(mesh msh) {
        objects_.push_back(msh);
    }

    void console_dump() const {
        cam_.console_dump();
        for (auto &&elem : objects_)
            elem.console_dump();
    }

    void render();
};

} // namespace visual_engine

#endif // LINALG_SCENE_HPP
