diff options
author | rtk0c <[email protected]> | 2022-05-07 23:13:14 -0700 |
---|---|---|
committer | rtk0c <[email protected]> | 2022-05-07 23:13:14 -0700 |
commit | daca3ada37d885b197d6fa810b6b793f18f8068e (patch) | |
tree | 6b7bb160352fc86aa0822bd05e193bff72ebf7c7 /source/Camera.cpp | |
parent | 0816a885c85eebe70d8a3b72c5bf12d56d4b9bff (diff) |
Changeset: 28 Add more camera controls (3D mode, scroll scaling)
Diffstat (limited to 'source/Camera.cpp')
-rw-r--r-- | source/Camera.cpp | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/source/Camera.cpp b/source/Camera.cpp index 0508508..9041d80 100644 --- a/source/Camera.cpp +++ b/source/Camera.cpp @@ -5,23 +5,23 @@ #include <glm/gtc/matrix_transform.hpp> Camera::Camera() - : pos(10.0f, 10.0f, 5.0f) - , lookAt(0.0, 0.0f, 0.0f) + : eye(0.0f, 0.0f, 0.0f) + , target(0.0, 0.0f, -1.0f) , perspective{ false } { } -void Camera::Move(glm::vec3 pos) { - auto lookVector = this->lookAt - /*Old pos*/ this->pos; - this->pos = pos; - this->lookAt = pos + lookVector; +void Camera::SetEyePos(glm::vec3 pos) { + auto lookVector = this->target - /*Old pos*/ this->eye; + this->eye = pos; + this->target = pos + lookVector; } -void Camera::LookAtAngle(glm::vec3 lookVector) { - this->lookAt = this->pos + lookVector; +void Camera::SetTargetPos(glm::vec3 pos) { + this->target = pos; } -void Camera::LookAtPos(glm::vec3 pos) { - this->lookAt = pos; +void Camera::SetTargetDirection(glm::vec3 lookVector) { + this->target = this->eye + lookVector; } void Camera::SetHasPerspective(bool perspective) { @@ -29,7 +29,7 @@ void Camera::SetHasPerspective(bool perspective) { } glm::mat4 Camera::CalcViewMatrix() const { - return glm::lookAt(pos, lookAt, glm::vec3(0, 1, 0)); + return glm::lookAt(eye, target, glm::vec3(0, 1, 0)); } glm::mat4 Camera::CalcProjectionMatrix() const { @@ -37,9 +37,9 @@ glm::mat4 Camera::CalcProjectionMatrix() const { return glm::perspective(90.0f, AppConfig::mainWindowAspectRatio, 0.1f, 1000.0f); } else { return glm::ortho( - pos.x - AppConfig::mainWidnowWidth / 2, - pos.x + AppConfig::mainWidnowWidth / 2, - pos.y - AppConfig::mainWindowHeight / 2, - pos.y + AppConfig::mainWindowHeight / 2); + eye.x - AppConfig::mainWidnowWidth / 2, + eye.x + AppConfig::mainWidnowWidth / 2, + eye.y - AppConfig::mainWindowHeight / 2, + eye.y + AppConfig::mainWindowHeight / 2); } } |