aboutsummaryrefslogtreecommitdiff
path: root/src/raytracer
diff options
context:
space:
mode:
Diffstat (limited to 'src/raytracer')
-rw-r--r--src/raytracer/raytracer.cpp6
-rw-r--r--src/raytracer/raytracescene.cpp2
-rw-r--r--src/raytracer/raytracescene.h4
3 files changed, 7 insertions, 5 deletions
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<RGBA *>(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<SceneLightData> 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<SceneLightData> 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::vector<RenderShapeData>m_shapes;
std::vector<SceneLightData>m_lights;
int m_depth;