At this point idk what im doing

This commit is contained in:
Ben
2019-10-29 22:40:57 +00:00
parent efafd4e71e
commit 671ab913ab
5 changed files with 53 additions and 21 deletions

View File

@@ -8,7 +8,9 @@ Camera::Camera(int w, int h) {
pitch = 0.0f;
yaw = 0.0f;
eyeVector = {};
Position = {};
LookDirection = {};
viewMatrix = {};
}
@@ -28,10 +30,17 @@ void Camera::UpdateView() {
glm::mat4 rotate = matRoll * matPitch * matYaw;
glm::mat4 translate = glm::mat4(1.0f);
translate = glm::translate(translate, -eyeVector);
translate = glm::translate(translate, -Position);
viewMatrix = rotate * translate;
// Work out Look Vector
glm::mat4 inverseView = glm::inverse(viewMatrix);
LookDirection.x = inverseView[2][0];
LookDirection.y = inverseView[2][1];
LookDirection.z = inverseView[2][2];
}
glm::mat4 Camera::GetViewMatrix() {
@@ -52,12 +61,6 @@ void Camera::UpdateProjection(int width, int height) {
}
glm::vec3 Camera::GetPos() {
return eyeVector;
}
void Camera::HandleMouse(SDL_Event e) {
if (e.type != SDL_MOUSEMOTION)
@@ -118,9 +121,10 @@ void Camera::MoveCamera(Uint8* state) {
// forward vector must be negative to look forward.
// read :http://in2gpu.com/2015/05/17/view-matrix/
eyeVector.x += dx * CameraSpeed;
eyeVector.z += dz * CameraSpeed;
eyeVector.y += dy * CameraSpeed;
Position.x += dx * CameraSpeed;
Position.z += dz * CameraSpeed;
Position.y += dy * CameraSpeed;
// update the view matrix
UpdateView();