Path Tracer
PerspectiveCamera.h
Go to the documentation of this file.
1 #ifndef DEF_PERSPECTIVECAMERA
2 #define DEF_PERSPECTIVECAMERA
3 
4 #include "Ray.h"
5 
77 private:
78  unsigned int numberPixelsX, numberPixelsY;
79  DoubleVec3D origin, focal;
80 
81  // See my TM's report for an explanation of these variables.
82  DoubleUnitVec3D baseX;
83  DoubleUnitVec3D baseY;
84  void computeBases();
85 
86 public:
88  PerspectiveCamera(unsigned int numberPixelsX, unsigned int numberPixelsY, DoubleVec3D origin = DoubleVec3D(0.0), DoubleVec3D focal = DoubleVec3D(0, 0, -0.75));
90 
91  unsigned int getNumberPixelsX() const;
92  unsigned int getNumberPixelsY() const;
93  DoubleVec3D getOrigin() const;
94  DoubleVec3D getFocal() const;
95  double getWorldWidth() const;
96  double getWorldHeight() const;
97 
98  void setNumberPixelsX(unsigned int numberPixelsX);
99  void setNumberPixelsY(unsigned int numberPixelsY);
100  void setOrigin(DoubleVec3D origin);
101  void setFocal(DoubleVec3D focal);
102 
103  Ray getRayGoingThrough(double pixelX, double pixelY) const;
104 };
105 
106 #endif
static PerspectiveCamera & camera
A reference to the camera from the scene.
Definition: Interface.h:60
Defines the Ray class.
A three-dimensional unit vector using doubles.
Definition: DoubleUnitVec3D.h:61
A three-dimensional vector using double values.
Definition: DoubleVec3D.h:190
Models a perspective camera.
Definition: PerspectiveCamera.h:76
void setOrigin(DoubleVec3D origin)
Setter for the camera origin.
Definition: PerspectiveCamera.cpp:28
DoubleVec3D getFocal() const
Getter for the camera focal.
Definition: PerspectiveCamera.cpp:20
void setNumberPixelsX(unsigned int numberPixelsX)
Setter for the number of pixels in x.
Definition: PerspectiveCamera.cpp:26
unsigned int getNumberPixelsY() const
Getter for the number of pixels in y.
Definition: PerspectiveCamera.cpp:18
Ray getRayGoingThrough(double pixelX, double pixelY) const
Returns a ray going through some pixels.
Definition: PerspectiveCamera.cpp:47
void setNumberPixelsY(unsigned int numberPixelsY)
Setter for the number of pixels in y.
Definition: PerspectiveCamera.cpp:27
double getWorldWidth() const
Getter for the camera world width.
Definition: PerspectiveCamera.cpp:21
void setFocal(DoubleVec3D focal)
Setter for the camera focal.
Definition: PerspectiveCamera.cpp:29
DoubleVec3D getOrigin() const
Getter for the camera origin.
Definition: PerspectiveCamera.cpp:19
unsigned int getNumberPixelsX() const
Getter for the number of pixels in x.
Definition: PerspectiveCamera.cpp:17
double getWorldHeight() const
Getter for the camera world height.
Definition: PerspectiveCamera.cpp:22
PerspectiveCamera()
Default constructor.
Definition: PerspectiveCamera.cpp:4
Combination of an origin and a direction.
Definition: Ray.h:44