diff options
| author | Ray <[email protected]> | 2023-03-12 19:40:43 +0100 |
|---|---|---|
| committer | Ray <[email protected]> | 2023-03-12 19:40:43 +0100 |
| commit | 8ca32127013be61110b72eddc19dda16520ac704 (patch) | |
| tree | c439271e50cf8a22b4280911f142a64b81d2506c /src/rcamera.h | |
| parent | f9c4cc2040aa014292b02fcf10918ca930341e3b (diff) | |
| download | raylib-8ca32127013be61110b72eddc19dda16520ac704.tar.gz raylib-8ca32127013be61110b72eddc19dda16520ac704.zip | |
REVIEWED: `UpdateCameraPro()` to use `Vector3`
Diffstat (limited to 'src/rcamera.h')
| -rw-r--r-- | src/rcamera.h | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/src/rcamera.h b/src/rcamera.h index 17223758..8b37ff7b 100644 --- a/src/rcamera.h +++ b/src/rcamera.h @@ -471,25 +471,34 @@ void UpdateCamera(Camera *camera, int mode) #endif // !CAMERA_STANDALONE // Update camera movement, movement/rotation values should be provided by user -void UpdateCameraPro(Camera *camera, float moveForward, float moveRightLeft, float moveUpDown, float moveToTarget, float yaw, float pitch, float roll) +void UpdateCameraPro(Camera *camera, Vector3 movement, Vector3 rotation, float zoom) { + // Required values + // movement.x - Move forward/backward + // movement.y - Move right/left + // movement.z - Move up/down + // rotation.x - yaw + // rotation.y - pitch + // rotation.z - roll + // zoom - Move towards target + bool lockView = true; bool rotateAroundTarget = false; bool rotateUp = false; bool moveInWorldPlane = true; // Camera rotation - CameraPitch(camera, -pitch*DEG2RAD, lockView, rotateAroundTarget, rotateUp); - CameraYaw(camera, -yaw*DEG2RAD, rotateAroundTarget); - CameraRoll(camera, roll*DEG2RAD); + CameraPitch(camera, -rotation.y*DEG2RAD, lockView, rotateAroundTarget, rotateUp); + CameraYaw(camera, -rotation.x*DEG2RAD, rotateAroundTarget); + CameraRoll(camera, rotation.z*DEG2RAD); // Camera movement - CameraMoveForward(camera, moveForward, moveInWorldPlane); - CameraMoveRight(camera, moveRightLeft, moveInWorldPlane); - CameraMoveUp(camera, moveUpDown); + CameraMoveForward(camera, movement.x, moveInWorldPlane); + CameraMoveRight(camera, movement.y, moveInWorldPlane); + CameraMoveUp(camera, movement.z); // Zoom target distance - CameraMoveToTarget(camera, moveToTarget); + CameraMoveToTarget(camera, zoom); } #endif // CAMERA_IMPLEMENTATION |
