From 0cc651b784afef1200b34af1f6248c7f4ac75b44 Mon Sep 17 00:00:00 2001 From: sotech117 Date: Wed, 13 Dec 2023 14:53:30 -0500 Subject: add way to modify camera based on settings slider --- src/raytracer/raytracer.cpp | 6 ++++-- src/raytracer/raytracescene.cpp | 2 +- src/raytracer/raytracescene.h | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) (limited to 'src/raytracer') diff --git a/src/raytracer/raytracer.cpp b/src/raytracer/raytracer.cpp index 71a1c7f..b5e8986 100644 --- a/src/raytracer/raytracer.cpp +++ b/src/raytracer/raytracer.cpp @@ -54,9 +54,10 @@ void RayTracer::render(RGBA *imageData, const RayTraceScene &scene) { settings.currentTime++; // settings.w++; - // update physics + // update physics for moving objects Physics::updateShapePositions(m_metaData.shapes); Physics::handleCollisions(m_metaData.shapes); + } else { // done rendering // assemble the video saveFFMPEGVideo(settings.bulkOutputFolderPath); @@ -173,7 +174,8 @@ void RayTracer::sceneChanged(QLabel* imageLabel) { m_imageData = reinterpret_cast(image.bits()); RayTraceScene rtScene{ m_width, m_height, m_metaData, m_depth }; - + // update the camera position + rtScene.m_camera.updateViewMatrix(m_metaData.cameraData); this->render(m_imageData, rtScene); QImage flippedImage = image.mirrored(false, false); diff --git a/src/raytracer/raytracescene.cpp b/src/raytracer/raytracescene.cpp index 77541e3..a81d535 100644 --- a/src/raytracer/raytracescene.cpp +++ b/src/raytracer/raytracescene.cpp @@ -57,7 +57,7 @@ const std::vector RayTraceScene::getLights() const { return m_lights; } -const Camera& RayTraceScene::getCamera() const { +const Camera RayTraceScene::getCamera() const { // Optional TODO: implement the getter or make your own design return m_camera; } diff --git a/src/raytracer/raytracescene.h b/src/raytracer/raytracescene.h index 35e4fb4..b608918 100644 --- a/src/raytracer/raytracescene.h +++ b/src/raytracer/raytracescene.h @@ -28,18 +28,18 @@ public: const std::vector getLights() const; // The getter of the shared pointer to the camera instance of the scene - const Camera& getCamera() const; + const Camera getCamera() const; KdTree *m_kdTree; bvh *m_bvh; const int &depth() const; + Camera& m_camera; private: int m_width; int m_height; SceneGlobalData m_sceneGlobalData; - Camera& m_camera; std::vectorm_shapes; std::vectorm_lights; int m_depth; -- cgit v1.2.3-70-g09d2