diff options
author | sotech117 <michael_foiani@brown.edu> | 2023-12-07 16:23:20 -0500 |
---|---|---|
committer | sotech117 <michael_foiani@brown.edu> | 2023-12-07 16:23:20 -0500 |
commit | caa765bff49d54217b75aaf0e7acf4e5392a11e4 (patch) | |
tree | 9b92914dfb88b99599e8e60e4512e9e9ea9a25db /src/raytracer/raytracescene.cpp | |
parent | a9274459443f1d560d7580a162deb581549980cb (diff) |
upload base code
Diffstat (limited to 'src/raytracer/raytracescene.cpp')
-rw-r--r-- | src/raytracer/raytracescene.cpp | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/src/raytracer/raytracescene.cpp b/src/raytracer/raytracescene.cpp new file mode 100644 index 0000000..f70aa83 --- /dev/null +++ b/src/raytracer/raytracescene.cpp @@ -0,0 +1,56 @@ +#include <stdexcept> +#include "raytracescene.h" +#include "utils/sceneparser.h" +#include "raytracer.h" +#include <iostream> + +RayTraceScene::RayTraceScene(int width, int height, const RenderData &metaData) : + m_camera(* new Camera(metaData.cameraData)) +{ + // Optional TODO: implement this. Store whatever you feel is necessary. + m_width = width; + m_height = height; + m_sceneGlobalData = metaData.globalData; + m_shapes = metaData.shapes; + m_lights = metaData.lights; + + // populate the kd tree + m_kdTree = nullptr; + std::vector<KdShape> shapes; + for (const auto& shape : metaData.shapes) { + KdShape s{ + shape, + KdTree::transformBoundingRegion(OBJECT_BOUNDS, shape.ctm) + }; + shapes.push_back(s); + } + m_bvh = new bvh(shapes, 0); +} + +const int& RayTraceScene::width() const { + // Optional TODO: implement the getter or make your own design + return m_width; +} + +const int& RayTraceScene::height() const { + // Optional TODO: implement the getter or make your own design + return m_height; +} + +const SceneGlobalData& RayTraceScene::getGlobalData() const { + // Optional TODO: implement the getter or make your own design + return m_sceneGlobalData; +} + +const std::vector<RenderShapeData> RayTraceScene::getShapes() const { + return m_shapes; +} + +const std::vector<SceneLightData> RayTraceScene::getLights() const { + return m_lights; +} + +const Camera& RayTraceScene::getCamera() const { + // Optional TODO: implement the getter or make your own design + return m_camera; +} |