diff --git a/src/Scene.cc b/src/Scene.cc index d463cdc..5bec7c5 100644 --- a/src/Scene.cc +++ b/src/Scene.cc @@ -1,18 +1,17 @@ #include "Scene.h" -Scene::Scene(const nlohmann::json &output) { - for (auto i = output.begin(); i != output.end(); ++i) { - if (i->contains("filename")) { - this->name = (*i)["filename"].get(); - } - - if (i->contains("size")) { - this->width = (*i)["size"].at(0).get(); - this->height = (*i)["size"].at(1).get(); - } - } +void Scene::setRaysPerPixel(const Eigen::VectorXi &raysPerPixel) { + this->raysPerPixel = raysPerPixel; } -string Scene::getName() { return this->name; } -int Scene::getWidth() { return this->width; } -int Scene::getHeight() { return this->height; } +void Scene::setAntialiasing(bool antialiasing) { + this->antialiasing = antialiasing; +} + +void Scene::setTwoSideRender(bool twoSideRender) { + this->twoSideRender = twoSideRender; +} + +void Scene::setGlobalIllum(bool globalIllum) { + this->globalIllum = globalIllum; +} diff --git a/src/Scene.h b/src/Scene.h index 85012f6..0411791 100644 --- a/src/Scene.h +++ b/src/Scene.h @@ -1,23 +1,41 @@ #ifndef SCENE_H_ #define SCENE_H_ -#include "../external/json.hpp" - +#include #include +using Eigen::Vector3f; using std::string; class Scene { public: - Scene(const nlohmann::json &); - string getName(); - int getWidth(); - int getHeight(); + Scene(string name, int width, int height, float fov, const Vector3f ¢er, + const Vector3f &up, const Vector3f &lookAt, const Vector3f &ai, + const Vector3f &bgc) + : name(name), width(width), height(height), fov(fov), center(center), + up(up), lookAt(lookAt), ai(ai), backgroundColor(bgc) {} private: string name; int width; int height; + float fov; + Vector3f center; + Vector3f up; + Vector3f lookAt; + Vector3f ai; // ambient intensity + Vector3f backgroundColor; + + Eigen::VectorXi raysPerPixel; + bool antialiasing = false; + bool twoSideRender = false; + bool globalIllum = false; + +public: + void setRaysPerPixel(const Eigen::VectorXi &); + void setAntialiasing(bool); + void setTwoSideRender(bool); + void setGlobalIllum(bool); }; #endif // !SCENE_H_