2023-02-11 16:26:47 -05:00
|
|
|
/*
|
|
|
|
* Created by Brett on 11/02/23.
|
|
|
|
* Licensed under GNU General Public License V3.0
|
|
|
|
* See LICENSE file for license detail
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef FINALPROJECT_CAMERA_H
|
|
|
|
#define FINALPROJECT_CAMERA_H
|
|
|
|
|
|
|
|
#include <render/window.h>
|
|
|
|
|
|
|
|
namespace fp::camera {
|
|
|
|
void update();
|
2023-03-16 22:37:03 -04:00
|
|
|
|
2023-03-05 15:21:35 -05:00
|
|
|
const blt::vec3& getPosition();
|
2023-03-16 22:37:03 -04:00
|
|
|
|
2023-03-05 15:21:35 -05:00
|
|
|
const blt::vec3& getRotation();
|
2023-03-16 22:37:03 -04:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Locks the current CPU sided view matrix, while allowing the camera to move
|
|
|
|
* Mostly useful for testing frustum culling implementations as the view matrix will remain the same as the
|
|
|
|
* last matrix before this function is called while allowing you to move around the scene
|
|
|
|
*/
|
|
|
|
void freeze();
|
|
|
|
|
|
|
|
void unfreeze();
|
|
|
|
|
|
|
|
bool isFrozen();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @return the last non-frozen view matrix
|
|
|
|
*/
|
|
|
|
const blt::mat4x4& getViewMatrix();
|
|
|
|
/**
|
|
|
|
* @return the last non-frozen projection * view matrix
|
|
|
|
*/
|
|
|
|
const blt::mat4x4& getPVM();
|
2023-02-11 16:26:47 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
#endif //FINALPROJECT_CAMERA_H
|