From e3c6850a1e8dea16e6d8c805be443fb49f2a2eb4 Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Sat, 19 Aug 2023 22:53:18 -0500 Subject: [PATCH] Use LatLongToScreenCoordinate from maplibre utility in DrawItem --- scwx-qt/source/scwx/qt/gl/draw/draw_item.cpp | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/scwx-qt/source/scwx/qt/gl/draw/draw_item.cpp b/scwx-qt/source/scwx/qt/gl/draw/draw_item.cpp index bbbe155b..583c7929 100644 --- a/scwx-qt/source/scwx/qt/gl/draw/draw_item.cpp +++ b/scwx-qt/source/scwx/qt/gl/draw/draw_item.cpp @@ -1,4 +1,5 @@ #include +#include #include @@ -82,23 +83,6 @@ void DrawItem::UseRotationProjection( uMVPMatrixLocation, 1, GL_FALSE, glm::value_ptr(projection)); } -// TODO: Refactor to utility class -static glm::vec2 -LatLongToScreenCoordinate(const QMapLibreGL::Coordinate& coordinate) -{ - static constexpr double RAD2DEG_D = 180.0 / M_PI; - - double latitude = std::clamp( - coordinate.first, -mbgl::util::LATITUDE_MAX, mbgl::util::LATITUDE_MAX); - glm::vec2 screen { - mbgl::util::LONGITUDE_MAX + coordinate.second, - -(mbgl::util::LONGITUDE_MAX - - RAD2DEG_D * - std::log(std::tan(M_PI / 4.0 + - latitude * M_PI / mbgl::util::DEGREES_MAX)))}; - return screen; -} - void DrawItem::UseMapProjection( const QMapLibreGL::CustomLayerRenderParameters& params, GLint uMVPMatrixLocation, @@ -120,7 +104,7 @@ void DrawItem::UseMapProjection( gl.glUniform2fv(uMapScreenCoordLocation, 1, - glm::value_ptr(LatLongToScreenCoordinate( + glm::value_ptr(util::maplibre::LatLongToScreenCoordinate( {params.latitude, params.longitude}))); gl.glUniformMatrix4fv(