Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/map
diff options
context:
space:
mode:
authorDaria Volvenkova <d.volvenkova@corp.mail.ru>2016-09-05 13:17:07 +0300
committerDaria Volvenkova <d.volvenkova@corp.mail.ru>2016-09-26 17:26:00 +0300
commit24834ce40c571ef6021991350bc0863279f71497 (patch)
tree96d0d4c8f9b8f36aa50f76442eef29a2cae4813c /map
parent12be223279b3e84da9d58e0143793f854d5761e3 (diff)
Positioning in visible viewport.
Diffstat (limited to 'map')
-rw-r--r--map/framework.cpp15
-rw-r--r--map/framework.hpp3
2 files changed, 17 insertions, 1 deletions
diff --git a/map/framework.cpp b/map/framework.cpp
index 665f39ac8f..e4686e70af 100644
--- a/map/framework.cpp
+++ b/map/framework.cpp
@@ -948,6 +948,11 @@ m2::PointD Framework::GetPixelCenter() const
: m_currentModelView.PixelRect().Center();
}
+m2::PointD Framework::GetVisiblePixelCenter() const
+{
+ return m_visibleViewport.Center();
+}
+
m2::PointD const & Framework::GetViewportCenter() const
{
return m_currentModelView.GetOrg();
@@ -968,6 +973,14 @@ m2::RectD Framework::GetCurrentViewport() const
return m_currentModelView.ClipRect();
}
+void Framework::SetVisibleViewport(m2::RectD const & rect)
+{
+ if (m_drapeEngine == nullptr)
+ return;
+ m_visibleViewport = rect;
+ m_drapeEngine->SetVisibleViewport(rect);
+}
+
void Framework::ShowRect(m2::RectD const & rect, int maxScale)
{
CallDrapeFunction(bind(&df::DrapeEngine::SetModelViewRect, _1, rect, true, maxScale, true));
@@ -1016,7 +1029,7 @@ void Framework::Scale(Framework::EScaleMode mode, m2::PointD const & pxPoint, bo
void Framework::Scale(double factor, bool isAnim)
{
- Scale(factor, GetPixelCenter(), isAnim);
+ Scale(factor, GetVisiblePixelCenter(), isAnim);
}
void Framework::Scale(double factor, m2::PointD const & pxPoint, bool isAnim)
diff --git a/map/framework.hpp b/map/framework.hpp
index 7d0e78fc19..7c5e46a9c6 100644
--- a/map/framework.hpp
+++ b/map/framework.hpp
@@ -134,6 +134,7 @@ protected:
search::QuerySaver m_searchQuerySaver;
ScreenBase m_currentModelView;
+ m2::RectD m_visibleViewport;
using TViewportChanged = df::DrapeEngine::TModelViewListenerFn;
TViewportChanged m_viewportChanged;
@@ -531,12 +532,14 @@ public:
void ShowAll();
m2::PointD GetPixelCenter() const;
+ m2::PointD GetVisiblePixelCenter() const;
m2::PointD const & GetViewportCenter() const;
void SetViewportCenter(m2::PointD const & pt);
void SetViewportCenter(m2::PointD const & pt, int zoomLevel);
m2::RectD GetCurrentViewport() const;
+ void SetVisibleViewport(m2::RectD const & rect);
/// - Check minimal visible scale according to downloaded countries.
void ShowRect(m2::RectD const & rect, int maxScale = -1);