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/drape
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 /drape
parent12be223279b3e84da9d58e0143793f854d5761e3 (diff)
Positioning in visible viewport.
Diffstat (limited to 'drape')
-rw-r--r--drape/overlay_tree.cpp17
-rw-r--r--drape/overlay_tree.hpp1
2 files changed, 18 insertions, 0 deletions
diff --git a/drape/overlay_tree.cpp b/drape/overlay_tree.cpp
index 9daf1e229a..275df08525 100644
--- a/drape/overlay_tree.cpp
+++ b/drape/overlay_tree.cpp
@@ -367,6 +367,23 @@ void OverlayTree::DeleteHandle(ref_ptr<OverlayHandle> const & handle)
Erase(handle);
}
+bool OverlayTree::GetSelectedFeatureRect(ScreenBase const & screen, m2::RectD & featureRect)
+{
+ if (!m_selectedFeatureID.IsValid())
+ return false;
+
+ featureRect.MakeEmpty();
+ for (auto const & handle : m_handlesCache)
+ {
+ if (handle->IsVisible() && handle->GetFeatureID() == m_selectedFeatureID)
+ {
+ m2::RectD rect = handle->GetPixelRect(screen, screen.isPerspective());
+ featureRect.Add(rect);
+ }
+ }
+ return true;
+}
+
void OverlayTree::Select(m2::PointD const & glbPoint, TOverlayContainer & result) const
{
ScreenBase const & screen = m_traits.m_modelView;
diff --git a/drape/overlay_tree.hpp b/drape/overlay_tree.hpp
index 8a65e18afb..ef669d1a7b 100644
--- a/drape/overlay_tree.hpp
+++ b/drape/overlay_tree.hpp
@@ -66,6 +66,7 @@ public:
void SetDisplacementMode(int displacementMode);
void SetSelectedFeature(FeatureID const & featureID);
+ bool GetSelectedFeatureRect(ScreenBase const & screen, m2::RectD & featureRect);
#ifdef COLLECT_DISPLACEMENT_INFO
struct DisplacementData