From 550bf180ba831e20671c3921242668188ad829b8 Mon Sep 17 00:00:00 2001 From: vonhyou Date: Thu, 1 Feb 2024 17:54:14 -0500 Subject: [PATCH] implement alpha 1 --- src/RayTracer.cc | 32 ++++++++++++++++++++++++++++++-- src/RayTracer.h | 3 +++ 2 files changed, 33 insertions(+), 2 deletions(-) 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_