From a4ccb12fb3062e446d5b6a1dfd6fa91ae1c2fa5f Mon Sep 17 00:00:00 2001 From: rtk0c Date: Sun, 8 May 2022 00:50:52 -0700 Subject: Changeset: 29 Redefine world coordinate to have units in meters --- source/Camera.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'source/Camera.cpp') diff --git a/source/Camera.cpp b/source/Camera.cpp index 9041d80..c634ded 100644 --- a/source/Camera.cpp +++ b/source/Camera.cpp @@ -6,8 +6,10 @@ Camera::Camera() : eye(0.0f, 0.0f, 0.0f) - , target(0.0, 0.0f, -1.0f) - , perspective{ false } { + , target(0.0, 0.0f, -2.0f) + , pixelsPerMeter{ 50.0f } // Basic default + , perspective{ false } // +{ } void Camera::SetEyePos(glm::vec3 pos) { @@ -36,10 +38,12 @@ glm::mat4 Camera::CalcProjectionMatrix() const { if (perspective) { return glm::perspective(90.0f, AppConfig::mainWindowAspectRatio, 0.1f, 1000.0f); } else { + float widthMeters = AppConfig::mainWindowWidth / pixelsPerMeter; + float heightMeters = AppConfig::mainWindowHeight / pixelsPerMeter; return glm::ortho( - eye.x - AppConfig::mainWidnowWidth / 2, - eye.x + AppConfig::mainWidnowWidth / 2, - eye.y - AppConfig::mainWindowHeight / 2, - eye.y + AppConfig::mainWindowHeight / 2); + eye.x - widthMeters / 2, + eye.x + widthMeters / 2, + eye.y - heightMeters / 2, + eye.y + heightMeters / 2); } } -- cgit v1.2.3-70-g09d2