* @brief Gets the current projection of the camera
* @return The current projection matrix
*/
constglm::mat4&getProjection()const;
/**
* @brief Set the Projection matrix
*
* @param projection The projection matrix (4x4)
* @brief Sets the projection matrix of the camera to @p projection
* @param[in] projection The projection matrix
*/
voidsetProjection(constglm::mat4projection);
/**
* @brief Gets the near and far bounds of the view frustum of the camera.
* @param[out] near The near bound of the view frustum
* @param[out] far The far bound of the view frustum
*/
voidgetNearFar(float&near,float&far)const;
voidsetUp(constglm::vec3&Up);
/**
* @brief Sets the up vector of the camera to @p up
* @param[in] up The new up vector of the camera
*/
voidsetUp(constglm::vec3&up);
/**
* @brief Get the Field of view in radians
*
* @return Field of view in radians
* @brief Gets the current field of view of the camera in radians
* @return[in] The current field of view in radians
*/
floatgetFov()const;
/**
* @brief Set the Field of view in radians
*
* @param fov Field of view in radians
* @brief Sets the field of view of the camera to @p fov in radians
* @param[in] fov The new field of view in radians
*/
voidsetFov(floatfov);
/**
* @brief Changes the Field of view with offset in degrees
*
* @param offset in degrees
* @brief Changes the field of view of the camera with an @p offset in degrees
* @param[in] offset in degrees
*/
voidchangeFov(doubleoffset);
/**
* @brief Updates the aspect ratio of the camera with @p ratio and, thus, changes the projection matrix
* @param[in] ratio The new aspect ratio of the camera
*/
voidupdateRatio(floatratio);
/**
* @brief Get the Ratio
*
* @return float aspect ratio
* @brief Gets the current aspect ratio of the camera
* @return The current aspect ratio of the camera
*/
floatgetRatio()const;
/**
* @brief Sets @p near and @p far as new values for the view frustum of the camera. This leads to changes in the projection matrix according to these two values.
* @param[in] near The new near bound of the view frustum
* @param[in] far The new far bound of the view frustum
*/
voidsetNearFar(floatnear,floatfar);
/**
* @brief Gets the current front vector of the camera in world space
* @return The current front vector of the camera
*/
glm::vec3getFront()const;
/**
* @brief Gets the current position of the camera in world space
* @return The current position of the camera in world space
*/
glm::vec3getPosition()const;
/**
* @brief Sets the position of the camera to @p position
* @param[in] position The new position of the camera
*/
voidsetPosition(glm::vec3position);
/**
* @brief Gets the pitch value of the camera in degrees
* @return The pitch value in degrees
*/
floatgetPitch()const;
/**
* @brief Sets the pitch value of the camera to @p pitch in degrees
* @param[in] pitch The new pitch value in degrees
*/
voidsetPitch(floatpitch);
/**
* @brief Gets the yaw value of the camera in degrees
* @return The yaw value in degrees
*/
floatgetYaw()const;
/**
* @brief Sets the yaw value of the camera to @p yaw
* @param[in] yaw The new yaw value in degrees
*/
voidsetYaw(floatyaw);
/**
* @brief Pans the view of the camera according to the pitch and yaw values and additional offsets @p xOffset and @p yOffset (e.g. taken from mouse movement)
* @param[in] xOffset The offset added to the yaw value
* @param[in] yOffset The offset added to the pitch value
*/
voidpanView(doublexOffset,doubleyOffset);
voidupdatePosition(doubledeltatime);
/**
* @brief Updates the position of the camera with respect to @p deltaTime
* @param[in] deltaTime The time that has passed since last update
*/
voidupdatePosition(doubledeltaTime);
/**
* @brief Indicates forward movement of the camera depending on the performed @p action
* @param[in] action The performed action
*/
voidmoveForward(intaction);
/**
* @brief Indicates backward movement of the camera depending on the performed @p action
* @param[in] action The performed action
*/
voidmoveBackward(intaction);
/**
* @brief Indicates left movement of the camera depending on the performed @p action
* @param[in] action The performed action
*/
voidmoveLeft(intaction);
/**
* @brief Indicates right movement of the camera depending on the performed @p action