From 184f7b71518d26bd4f948d6ef070d8863b430a78 Mon Sep 17 00:00:00 2001 From: hnOsmium0001 Date: Sun, 8 May 2022 00:55:04 -0700 Subject: Fix performing translation in multiple places - Camera: project matrix shouldn't need to handle eye position - SimpleGeometryObject: mesh coordinates should be local --- source/Camera.cpp | 6 +----- source/SceneThings.cpp | 13 ++++++------- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/source/Camera.cpp b/source/Camera.cpp index c634ded..4c1f881 100644 --- a/source/Camera.cpp +++ b/source/Camera.cpp @@ -40,10 +40,6 @@ glm::mat4 Camera::CalcProjectionMatrix() const { } else { float widthMeters = AppConfig::mainWindowWidth / pixelsPerMeter; float heightMeters = AppConfig::mainWindowHeight / pixelsPerMeter; - return glm::ortho( - eye.x - widthMeters / 2, - eye.x + widthMeters / 2, - eye.y - heightMeters / 2, - eye.y + heightMeters / 2); + return glm::ortho(-widthMeters / 2, +widthMeters / 2, -heightMeters / 2, +heightMeters / 2); } } diff --git a/source/SceneThings.cpp b/source/SceneThings.cpp index ca5f60d..3fa0436 100644 --- a/source/SceneThings.cpp +++ b/source/SceneThings.cpp @@ -47,7 +47,6 @@ std::span SimpleGeometryObject::GetRenderObjects() const { Vertex_PTC vertices[4 /*vertices per face*/ * 6 /*faces*/]; uint16_t indices[3 /*indices per triangle*/ * 2 /*triangles per face*/ * 6 /*faces*/]; - auto pos = GetPos(); auto extents = mSize / 2.0f; int faceGenVerticesIdx = 0; @@ -89,16 +88,16 @@ std::span SimpleGeometryObject::GetRenderObjects() const { indices[faceGenIndicesIdx++] = startVertIdx + kBottomRight; }; for (int xDir : { -1, 1 }) { - float x = pos.x + xDir * extents.x; - GenerateFace(glm::vec3(x, pos.y, pos.z), glm::vec3(0, 0, extents.z), glm::vec3(0, extents.y, 0), mXFaceColor); + float x = xDir * extents.x; + GenerateFace(glm::vec3(x, 0, 0), glm::vec3(0, 0, extents.z), glm::vec3(0, extents.y, 0), mXFaceColor); } for (int yDir : { -1, 1 }) { - float y = pos.y + yDir * extents.y; - GenerateFace(glm::vec3(pos.x, y, pos.z), glm::vec3(extents.x, 0, 0), glm::vec3(0, 0, extents.z), mYFaceColor); + float y = yDir * extents.y; + GenerateFace(glm::vec3(0, y, 0), glm::vec3(extents.x, 0, 0), glm::vec3(0, 0, extents.z), mYFaceColor); } for (int zDir : { -1, 1 }) { - float z = pos.z + zDir * extents.z; - GenerateFace(glm::vec3(pos.x, pos.y, z), glm::vec3(extents.x, 0, 0), glm::vec3(0, extents.y, 0), mZFaceColor); + float z = zDir * extents.z; + GenerateFace(glm::vec3(0, 0, z), glm::vec3(extents.x, 0, 0), glm::vec3(0, extents.y, 0), mZFaceColor); } for (auto& vert : vertices) { -- cgit v1.2.3-70-g09d2