diff options
author | hnOsmium0001 <[email protected]> | 2022-05-08 00:55:04 -0700 |
---|---|---|
committer | hnOsmium0001 <[email protected]> | 2022-05-08 00:55:04 -0700 |
commit | 184f7b71518d26bd4f948d6ef070d8863b430a78 (patch) | |
tree | dcb151cba7192fc5825c88044204398203a94db1 | |
parent | 37baa006649c6ddac40207e3fdc1599407179a76 (diff) |
Fix performing translation in multiple places
- Camera: project matrix shouldn't need to handle eye position
- SimpleGeometryObject: mesh coordinates should be local
-rw-r--r-- | source/Camera.cpp | 6 | ||||
-rw-r--r-- | 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<const RenderObject> 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<const RenderObject> 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) { |