summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksandar Stojiljkovic <aleksandar.stojiljkovic@mapbox.com>2019-04-25 10:28:42 +0300
committerAleksandar Stojiljkovic <aleksandar.stojiljkovic@mapbox.com>2019-04-25 10:28:42 +0300
commitaeac68c66eaf86e892757a667bcfdb10baeb235d (patch)
treee09fb535b47d0a6aa49fceadc6d4fcff4acd4388
parentf5773adcce7f1395fd422f74754ed8d2b1ef90d4 (diff)
downloadqtlocation-mapboxgl-upstream/astojilj-split-from-edge-insets.tar.gz
Refactor: coordinatePointMatrix skip recomputationupstream/astojilj-split-from-edge-insets
coordinatePointMatrix is always used with getZoom(): Projection::worldSize(scale) / std::pow(2, z) is computed as scale * util::tileSize / std::pow(2, z) scale is equal to std::pow(2, z). ____________________________________=> Projection::worldSize(scale) / std::pow(2, z) => util::tileSize.
-rw-r--r--src/mbgl/map/transform_state.cpp10
-rw-r--r--src/mbgl/map/transform_state.hpp2
2 files changed, 6 insertions, 6 deletions
diff --git a/src/mbgl/map/transform_state.cpp b/src/mbgl/map/transform_state.cpp
index 45bee7ac7f..596ed05195 100644
--- a/src/mbgl/map/transform_state.cpp
+++ b/src/mbgl/map/transform_state.cpp
@@ -278,7 +278,7 @@ ScreenCoordinate TransformState::latLngToScreenCoordinate(const LatLng& latLng)
return {};
}
- mat4 mat = coordinatePointMatrix(getZoom());
+ mat4 mat = coordinatePointMatrix();
vec4 p;
Point<double> pt = Projection::project(latLng, scale) / util::tileSize;
vec4 c = {{ pt.x, pt.y, 0, 1 }};
@@ -292,7 +292,7 @@ LatLng TransformState::screenCoordinateToLatLng(const ScreenCoordinate& point, L
}
float targetZ = 0;
- mat4 mat = coordinatePointMatrix(getZoom());
+ mat4 mat = coordinatePointMatrix();
mat4 inverted;
bool err = matrix::invert(inverted, mat);
@@ -325,10 +325,10 @@ LatLng TransformState::screenCoordinateToLatLng(const ScreenCoordinate& point, L
return Projection::unproject(util::interpolate(p0, p1, t), scale / util::tileSize, wrapMode);
}
-mat4 TransformState::coordinatePointMatrix(double z) const {
+mat4 TransformState::coordinatePointMatrix() const {
mat4 proj;
getProjMatrix(proj);
- float s = Projection::worldSize(scale) / std::pow(2, z);
+ float s = util::tileSize;
matrix::scale(proj, proj, s, s, 1);
matrix::multiply(proj, getPixelMatrix(), proj);
return proj;
@@ -426,7 +426,7 @@ float TransformState::maxPitchScaleFactor() const {
return {};
}
auto latLng = screenCoordinateToLatLng({ 0, static_cast<float>(getSize().height) });
- mat4 mat = coordinatePointMatrix(getZoom());
+ mat4 mat = coordinatePointMatrix();
Point<double> pt = Projection::project(latLng, scale) / util::tileSize;
vec4 p = {{ pt.x, pt.y, 0, 1 }};
vec4 topPoint;
diff --git a/src/mbgl/map/transform_state.hpp b/src/mbgl/map/transform_state.hpp
index 811fa253af..f51660912c 100644
--- a/src/mbgl/map/transform_state.hpp
+++ b/src/mbgl/map/transform_state.hpp
@@ -104,7 +104,7 @@ private:
// logical dimensions
Size size;
- mat4 coordinatePointMatrix(double z) const;
+ mat4 coordinatePointMatrix() const;
mat4 getPixelMatrix() const;
/** Recenter the map so that the given coordinate is located at the given