gedeng/include/Gedeng/Camera.h
karl c3796e7b55 Add basic Particle setup
Compiles, but doesn't work
2021-05-08 00:13:27 +02:00

31 lines
710 B
C++

#pragma once
#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtx/dual_quaternion.hpp>
#include "Spatial.h"
namespace Gedeng {
class Camera : public Spatial {
public:
/// Create a camera with a field of view (in degrees), width and height (in any unit) and near
/// and far distances
Camera(float fov, float width, float height, float near, float far)
: projection(glm::perspective(glm::radians(fov), width / height, near, far)) {
}
glm::mat4 get_projection() const {
return projection;
}
glm::mat4 get_view() const {
return glm::inverse(get_matrix());
}
private:
glm::mat4 projection;
};
} // namespace Gedeng