Abstract Class to represent a perspective camera. Stores aspect ratio and field of view.  
 More...
|  | 
|  | PerspectiveCamera (GLfloat aspectRatio=1.0f, GLfloat fovy=45.0f, GLfloat nearClipPlane=0.001f, GLfloat farClipPlane=1000.0f) | 
|  | initializes the Perspective Camera 
 | 
|  | 
|  | ~PerspectiveCamera () override=default | 
|  | properly destroy concrete children 
 | 
|  | 
| virtual void | setAspectRatio (GLfloat aspectRatio) final | 
|  | updates the camera's aspect ratio 
 | 
|  | 
| virtual void | setVerticalFOV (GLfloat fovy) final | 
|  | updates the camera's vertical field of view 
 | 
|  | 
| virtual void | setNearClipPlane (GLfloat near) final | 
|  | updates the camera's near clip plane 
 | 
|  | 
| virtual void | setFarClipPlane (GLfloat far) final | 
|  | updates the camera's far clip plane 
 | 
|  | 
| virtual | ~Camera ()=default | 
|  | properly destroy concrete children 
 | 
|  | 
| virtual void | recomputeOrientation ()=0 | 
|  | Uses theta, phi, & radius to update the camera's view matrix parameters. The camera orientation is controlled via spherical coordinates and this method would orient and/or position the camera in cartesian coordinates. 
 | 
|  | 
| virtual void | moveForward (GLfloat movementFactor)=0 | 
|  | steps forward along the camera's view 
 | 
|  | 
| virtual void | moveBackward (GLfloat movementFactor)=0 | 
|  | steps backward along the camera's view 
 | 
|  | 
| virtual void | rotate (GLfloat dTheta, GLfloat dPhi) | 
|  | rotates the camera's POV by adding to theta & phi then ensuring phi stays within the (0, pi) range and finally calls through to recomputeOrientation() to update the view parameters after the rotation 
 | 
|  | 
| virtual void | computeViewMatrix () final | 
|  | creates the View Matrix based on the position, lookAt point, and up vector 
 | 
|  | 
| virtual glm::mat4 | getProjectionMatrix () const final | 
|  | returns the current projection matrix for the associated camera 
 | 
|  | 
| virtual glm::mat4 | getViewMatrix () const final | 
|  | returns the current view matrix for the associated camera 
 | 
|  | 
| virtual glm::vec3 | getPosition () const final | 
|  | returns the current camera position in world space 
 | 
|  | 
| virtual glm::vec3 | getLookAtPoint () const final | 
|  | returns the current lookAt point in world space 
 | 
|  | 
| virtual glm::vec3 | getUpVector () const final | 
|  | returns the current up vector in world space 
 | 
|  | 
| virtual GLfloat | getTheta () const final | 
|  | returns the current theta value in radians 
 | 
|  | 
| virtual GLfloat | getPhi () const final | 
|  | returns the current phi value in radians 
 | 
|  | 
| virtual GLfloat | getRadius () const final | 
|  | returns the current radius in world space 
 | 
|  | 
| virtual void | setPosition (const glm::vec3 pos) final | 
|  | sets the camera's position in world space 
 | 
|  | 
| virtual void | setLookAtPoint (const glm::vec3 lookAt) final | 
|  | sets the camera's lookAt point in world space 
 | 
|  | 
| virtual void | setUpVector (const glm::vec3 up) final | 
|  | sets the camera's up vector in world space 
 | 
|  | 
| virtual void | setTheta (const GLfloat t) final | 
|  | sets the camera's theta angle in radians 
 | 
|  | 
| virtual void | setPhi (const GLfloat p) final | 
|  | sets the camera's phi angle in radians 
 | 
|  | 
| virtual void | setRadius (const GLfloat r) final | 
|  | sets the camera's radius in world space 
 | 
|  | 
|  | 
| void | mUpdateProjectionMatrix () | 
|  | computes the perspective projection matrix for the camera 
 | 
|  | 
|  | PerspectiveCamera (const PerspectiveCamera &)=default | 
|  | construct a copy an existing camera 
 | 
|  | 
| PerspectiveCamera & | operator= (const PerspectiveCamera &)=default | 
|  | assign a copy of an existing camera 
 | 
|  | 
|  | PerspectiveCamera (PerspectiveCamera &&)=default | 
|  | construct a camera by moving ane existing camera object 
 | 
|  | 
| PerspectiveCamera & | operator= (PerspectiveCamera &&)=default | 
|  | reassign an existing camera to ourselves 
 | 
|  | 
|  | Camera () | 
|  | create a default camera at the origin, looking down the negative Z axis oriented with the world coordinate system 
 | 
|  | 
|  | Camera (const Camera &)=default | 
|  | construct a copy an existing camera 
 | 
|  | 
| Camera & | operator= (const Camera &)=default | 
|  | assign a copy of an existing camera 
 | 
|  | 
|  | Camera (Camera &&)=default | 
|  | construct a camera by moving ane existing camera object 
 | 
|  | 
| Camera & | operator= (Camera &&)=default | 
|  | reassign an existing camera to ourselves 
 | 
|  | 
Abstract Class to represent a perspective camera. Stores aspect ratio and field of view.