COSC-3P98-Final-Project/include/render/camera.h

41 lines
974 B
C
Raw Normal View History

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