diff options
author | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2019-02-27 19:58:20 +0200 |
---|---|---|
committer | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2019-03-04 14:45:32 +0200 |
commit | 491fce68790e05cd0a876815751dc5cb72a2761e (patch) | |
tree | b735688c802407f38fe6fdbc5c32a8bd6c5ca93e | |
parent | 02f2b9c75c4031c084c177a582f18d3e888596fa (diff) | |
download | qtlocation-mapboxgl-491fce68790e05cd0a876815751dc5cb72a2761e.tar.gz |
[core] Added Map::pitchBy()
-rw-r--r-- | include/mbgl/map/map.hpp | 3 | ||||
-rw-r--r-- | platform/glfw/glfw_view.cpp | 2 | ||||
-rw-r--r-- | platform/qt/app/mapwindow.cpp | 2 | ||||
-rw-r--r-- | platform/qt/include/qmapboxgl.hpp | 1 | ||||
-rw-r--r-- | platform/qt/src/qmapboxgl.cpp | 5 | ||||
-rw-r--r-- | src/mbgl/map/map.cpp | 6 |
6 files changed, 17 insertions, 2 deletions
diff --git a/include/mbgl/map/map.hpp b/include/mbgl/map/map.hpp index 35821457fa..06772f2cd2 100644 --- a/include/mbgl/map/map.hpp +++ b/include/mbgl/map/map.hpp @@ -90,6 +90,9 @@ public: void setLatLngZoom(const LatLng&, double zoom, const EdgeInsets&, const AnimationOptions& = {}); void resetZoom(); + // Pitch + void pitchBy(double pitch, const AnimationOptions& animation = {}); + // Bounds void setLatLngBounds(optional<LatLngBounds>); optional<LatLngBounds> getLatLngBounds() const; diff --git a/platform/glfw/glfw_view.cpp b/platform/glfw/glfw_view.cpp index 2a1afdfe1e..78239bb97b 100644 --- a/platform/glfw/glfw_view.cpp +++ b/platform/glfw/glfw_view.cpp @@ -553,7 +553,7 @@ void GLFWView::onMouseMove(GLFWwindow *window, double x, double y) { } else if (view->pitching) { const double dy = y - view->lastY; if (dy) { - view->map->setPitch(view->map->getPitch() - dy / 2); + view->map->pitchBy(dy / 2); } } view->lastX = x; diff --git a/platform/qt/app/mapwindow.cpp b/platform/qt/app/mapwindow.cpp index 47dc1c8190..6171c8bf35 100644 --- a/platform/qt/app/mapwindow.cpp +++ b/platform/qt/app/mapwindow.cpp @@ -437,7 +437,7 @@ void MapWindow::mouseMoveEvent(QMouseEvent *ev) if (!delta.isNull()) { if (ev->buttons() == Qt::LeftButton && ev->modifiers() & Qt::ShiftModifier) { - m_map->setPitch(m_map->pitch() - delta.y()); + m_map->pitchBy(delta.y()); } else if (ev->buttons() == Qt::LeftButton) { m_map->moveBy(delta); } else if (ev->buttons() == Qt::RightButton) { diff --git a/platform/qt/include/qmapboxgl.hpp b/platform/qt/include/qmapboxgl.hpp index d29c9fc2c6..5309c58494 100644 --- a/platform/qt/include/qmapboxgl.hpp +++ b/platform/qt/include/qmapboxgl.hpp @@ -182,6 +182,7 @@ public: double pitch() const; void setPitch(double pitch); + void pitchBy(double pitch); NorthOrientation northOrientation() const; void setNorthOrientation(NorthOrientation); diff --git a/platform/qt/src/qmapboxgl.cpp b/platform/qt/src/qmapboxgl.cpp index e512b23901..cc4028b64d 100644 --- a/platform/qt/src/qmapboxgl.cpp +++ b/platform/qt/src/qmapboxgl.cpp @@ -885,6 +885,11 @@ void QMapboxGL::setPitch(double pitch_) d_ptr->mapObj->setPitch(pitch_); } +void QMapboxGL::pitchBy(double pitch_) +{ + d_ptr->mapObj->pitchBy(pitch_); +} + /*! Returns the north orientation mode. */ diff --git a/src/mbgl/map/map.cpp b/src/mbgl/map/map.cpp index 25c4b5398d..ab4ccb2007 100644 --- a/src/mbgl/map/map.cpp +++ b/src/mbgl/map/map.cpp @@ -317,6 +317,12 @@ void Map::resetZoom() { setZoom(0); } +#pragma mark - Pitch + +void Map::pitchBy(double pitch, const AnimationOptions& animation) { + easeTo(CameraOptions().withPitch((impl->transform.getPitch() * util::RAD2DEG) - pitch), animation); +} + #pragma mark - Bounds optional<LatLngBounds> Map::getLatLngBounds() const { |