From c0fc061834a5ae675cdd56f2cbaf132a58bc4131 Mon Sep 17 00:00:00 2001 From: Godzil Date: Tue, 17 Mar 2020 00:28:56 +0000 Subject: [PATCH] Don't set the focal/aperture on the constructor and use a dedicated method for that. --- source/camera.cpp | 4 ++-- source/include/camera.h | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/source/camera.cpp b/source/camera.cpp index 7c93765..7657404 100644 --- a/source/camera.cpp +++ b/source/camera.cpp @@ -15,8 +15,8 @@ #include #include -Camera::Camera(uint32_t hsize, uint32_t vsize, double fov, double focal, double aperture, uint32_t rayCount) : verticalSize(vsize), - horizontalSize(hsize), fieldOfView(fov), focalDistance(focal), apertureSize(aperture), rayCount(rayCount) +Camera::Camera(uint32_t hsize, uint32_t vsize, double fov) : verticalSize(vsize), + horizontalSize(hsize), fieldOfView(fov), focalDistance(1), apertureSize(0), rayCount(1) { double aspectRatio = (double)hsize / (double)vsize; double halfView = tan(fov / 2.0) * this->focalDistance; diff --git a/source/include/camera.h b/source/include/camera.h index 5415e99..9f441cc 100644 --- a/source/include/camera.h +++ b/source/include/camera.h @@ -33,7 +33,8 @@ public: Matrix inverseTransform; public: - Camera(uint32_t hsize, uint32_t vsize, double fov, double focal = 1, double aperture = 0, uint32_t rayCount = 1); + Camera(uint32_t hsize, uint32_t vsize, double fov); + setFocal(double focal, double aperture, uint32_t rayCount); void setTransform(Matrix transform); Ray rayForPixel(uint32_t pixelX, uint32_t pixelY, double horzOffset = 0, double vertOffset = 0); Canvas render(World w, uint32_t depth = 5);