Browse Source

Don't set the focal/aperture on the constructor and use a dedicated method for that.

Godzil 4 years ago
parent
commit
c0fc061834
2 changed files with 4 additions and 3 deletions
  1. 2 2
      source/camera.cpp
  2. 2 1
      source/include/camera.h

+ 2 - 2
source/camera.cpp

@@ -15,8 +15,8 @@
 #include <stdio.h>
 #include <renderstat.h>
 
-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;

+ 2 - 1
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);