From c20ccfe274f94d29dcf1a1f84048a57d56dedce6 Mon Sep 17 00:00:00 2001 From: raysan5 Date: Sun, 29 Dec 2019 13:55:15 +0100 Subject: [PATCH] Review PR #1040 naming and formating --- src/camera.h | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/camera.h b/src/camera.h index ae389c93b..6ce6b65fa 100644 --- a/src/camera.h +++ b/src/camera.h @@ -428,16 +428,14 @@ void UpdateCamera(Camera *camera) if (cameraAngle.y > CAMERA_FIRST_PERSON_MIN_CLAMP*DEG2RAD) cameraAngle.y = CAMERA_FIRST_PERSON_MIN_CLAMP*DEG2RAD; else if (cameraAngle.y < CAMERA_FIRST_PERSON_MAX_CLAMP*DEG2RAD) cameraAngle.y = CAMERA_FIRST_PERSON_MAX_CLAMP*DEG2RAD; - // Camera is always looking at player - //camera->target.x = camera->position.x - sinf(cameraAngle.x)*CAMERA_FIRST_PERSON_FOCUS_DISTANCE; - //camera->target.y = camera->position.y + sinf(cameraAngle.y)*CAMERA_FIRST_PERSON_FOCUS_DISTANCE; - //camera->target.z = camera->position.z - cosf(cameraAngle.x)*CAMERA_FIRST_PERSON_FOCUS_DISTANCE; - Matrix t = MatrixTranslate(0,0,(cameraTargetDistance/CAMERA_FREE_PANNING_DIVIDER)); - Matrix r = MatrixRotateXYZ((Vector3){PI*2-cameraAngle.y,PI*2-cameraAngle.x,0}); - r = MatrixMultiply(t,r); - camera->target.x = camera->position.x - r.m12; - camera->target.y = camera->position.y - r.m13; - camera->target.z = camera->position.z - r.m14; + // Recalculate camera target considering translation and rotation + Matrix translation = MatrixTranslate(0, 0, (cameraTargetDistance/CAMERA_FREE_PANNING_DIVIDER)); + Matrix rotation = MatrixRotateXYZ((Vector3){ PI*2 - cameraAngle.y, PI*2 - cameraAngle.x, 0 }); + Matrix transform = MatrixMultiply(translation, rotation); + + camera->target.x = camera->position.x - transform.m12; + camera->target.y = camera->position.y - transform.m13; + camera->target.z = camera->position.z - transform.m14; if (isMoving) swingCounter++;