diff --git a/src/RayTracer.cc b/src/RayTracer.cc index 56abe87..5aa16d1 100644 --- a/src/RayTracer.cc +++ b/src/RayTracer.cc @@ -1,5 +1,33 @@ #include "RayTracer.h" +#include "../external/simpleppm.h" -RayTracer::RayTracer(nlohmann::json scene) {} +#include +#include +#include -void RayTracer::run() {} +RayTracer::RayTracer(nlohmann::json scene) : scene(scene) {} + +void RayTracer::run() { + std::string filename; + int sizeX = -1, sizeY = -1; + for (auto itr = scene["output"].begin(); itr != scene["output"].end(); + ++itr) { + + if (itr->contains("filename")) { + filename = (*itr)["filename"].get(); + + std::cout << filename << std::endl; + } + + if (itr->contains("size")) { + sizeX = (*itr)["size"].begin()->get(); + sizeY = ((*itr)["size"].begin() + 1)->get(); + + std::cout << sizeX << " " << sizeY << std::endl; + } + } + + std::vector buffer(3 * sizeX * sizeY); + + save_ppm(filename, buffer, sizeX, sizeY); +} diff --git a/src/RayTracer.h b/src/RayTracer.h index 915e6b6..643e6b8 100644 --- a/src/RayTracer.h +++ b/src/RayTracer.h @@ -7,6 +7,9 @@ class RayTracer { public: RayTracer(nlohmann::json); void run(); + +private: + nlohmann::json scene; }; #endif // !RAY_TRACER_H_