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
diff options
context:
space:
mode:
authorDaria Volvenkova <d.volvenkova@corp.mail.ru>2019-04-11 16:53:42 +0300
committerRoman Kuznetsov <r.kuznetsow@gmail.com>2019-04-12 18:57:43 +0300
commitb90ecbc241cf20b7896290570308d9c5b1e24b5b (patch)
tree21cc5c09787f68723ae2393cb22c092453edd1b2
parenta685936cae13b6a51028d1db0d023c5ab8ba09ca (diff)
Road warnings displacement.
-rw-r--r--drape_frontend/drape_engine.cpp1
-rw-r--r--drape_frontend/user_mark_shapes.cpp2
-rw-r--r--drape_frontend/user_mark_shapes.hpp1
-rw-r--r--drape_frontend/user_marks_provider.hpp1
-rw-r--r--map/framework.cpp11
-rw-r--r--map/routing_manager.cpp16
-rw-r--r--map/routing_manager.hpp2
-rw-r--r--map/routing_mark.cpp26
-rw-r--r--map/routing_mark.hpp13
-rw-r--r--map/user_mark.hpp4
10 files changed, 21 insertions, 56 deletions
diff --git a/drape_frontend/drape_engine.cpp b/drape_frontend/drape_engine.cpp
index 23c2a573fd..635d5b9308 100644
--- a/drape_frontend/drape_engine.cpp
+++ b/drape_frontend/drape_engine.cpp
@@ -862,7 +862,6 @@ drape_ptr<UserMarkRenderParams> DrapeEngine::GenerateMarkRenderInfo(UserPointMar
renderInfo->m_minZoom = mark->GetMinZoom();
renderInfo->m_minTitleZoom = mark->GetMinTitleZoom();
renderInfo->m_isVisible = mark->IsVisible();
- renderInfo->m_alwaysVisibleMinZoom = mark->GetAlwaysVisibleMinZoom();
renderInfo->m_pivot = mark->GetPivot();
renderInfo->m_pixelOffset = mark->GetPixelOffset();
renderInfo->m_titleDecl = mark->GetTitleDecl();
diff --git a/drape_frontend/user_mark_shapes.cpp b/drape_frontend/user_mark_shapes.cpp
index e45fff5d84..188e99ba00 100644
--- a/drape_frontend/user_mark_shapes.cpp
+++ b/drape_frontend/user_mark_shapes.cpp
@@ -362,7 +362,7 @@ void CacheUserMarks(ref_ptr<dp::GraphicsContext> context, TileKey const & tileKe
continue;
UserMarkRenderParams & renderInfo = *it->second;
- if (!renderInfo.m_isVisible && renderInfo.m_alwaysVisibleMinZoom > tileKey.m_zoomLevel)
+ if (!renderInfo.m_isVisible)
continue;
m2::PointD const tileCenter = tileKey.GetGlobalRect().Center();
diff --git a/drape_frontend/user_mark_shapes.hpp b/drape_frontend/user_mark_shapes.hpp
index fab562887b..37b2ed1287 100644
--- a/drape_frontend/user_mark_shapes.hpp
+++ b/drape_frontend/user_mark_shapes.hpp
@@ -39,7 +39,6 @@ struct UserMarkRenderParams
bool m_hasCreationAnimation = false;
bool m_justCreated = false;
bool m_isVisible = true;
- int m_alwaysVisibleMinZoom = std::numeric_limits<int>::max();
FeatureID m_featureId;
bool m_isMarkAboveText = false;
};
diff --git a/drape_frontend/user_marks_provider.hpp b/drape_frontend/user_marks_provider.hpp
index 5f6d729716..951f76cce7 100644
--- a/drape_frontend/user_marks_provider.hpp
+++ b/drape_frontend/user_marks_provider.hpp
@@ -65,7 +65,6 @@ public:
virtual float GetDepth() const = 0;
virtual DepthLayer GetDepthLayer() const = 0;
virtual bool IsVisible() const = 0;
- virtual int GetAlwaysVisibleMinZoom() const = 0;
virtual drape_ptr<TitlesInfo> GetTitleDecl() const = 0;
virtual drape_ptr<SymbolNameZoomInfo> GetSymbolNames() const = 0;
virtual drape_ptr<SymbolNameZoomInfo> GetBadgeNames() const = 0;
diff --git a/map/framework.cpp b/map/framework.cpp
index 802e24cb83..a1bd3b1e74 100644
--- a/map/framework.cpp
+++ b/map/framework.cpp
@@ -2303,8 +2303,6 @@ void Framework::ActivateMapSelection(bool needAnimation, df::SelectionShape::ESe
SetDisplacementMode(DisplacementModeManager::SLOT_MAP_SELECTION,
ftypes::IsHotelChecker::Instance()(info.GetTypes()) /* show */);
- m_routingManager.UpdateRouteMarksVisibility(info.IsRoadType() ? info.GetRoadType() : RoadWarningMarkType::Count);
-
if (m_activateMapSelectionFn)
m_activateMapSelectionFn(info);
else
@@ -2319,8 +2317,6 @@ void Framework::DeactivateMapSelection(bool notifyUI)
if (notifyUI && m_deactivateMapSelectionFn)
m_deactivateMapSelectionFn(!somethingWasAlreadySelected);
- m_routingManager.UpdateRouteMarksVisibility(RoadWarningMarkType::Count);
-
if (somethingWasAlreadySelected && m_drapeEngine != nullptr)
m_drapeEngine->DeselectObject();
@@ -2545,12 +2541,7 @@ UserMark const * Framework::FindUserMarkInTapPosition(df::TapInfo const & tapInf
return tapInfo.GetRoutingPointSearchRect(m_currentModelView);
return tapInfo.GetDefaultSearchRect(m_currentModelView);
},
- [this](UserMark::Type type)
- {
- if (type == UserMark::Type::ROAD_WARNING)
- return GetDrawScale() < RoadWarningMark::kAlwaysVisibleMinZoom;
- return false;
- });
+ [](UserMark::Type type) { return false; });
return mark;
}
diff --git a/map/routing_manager.cpp b/map/routing_manager.cpp
index cf6b33ae05..c64162471a 100644
--- a/map/routing_manager.cpp
+++ b/map/routing_manager.cpp
@@ -590,7 +590,6 @@ void RoutingManager::CreateRoadWarningMarks(RoadWarningsCollection && roadWarnin
auto const & routeInfo = typeInfo.second[i];
auto mark = es.CreateUserMark<RoadWarningMark>(routeInfo.m_startPoint);
mark->SetIndex(static_cast<uint32_t>(i));
- mark->SetIsVisible(i == 0);
mark->SetRoadWarningType(type);
mark->SetFeatureId(routeInfo.m_featureId);
std::string distanceStr;
@@ -1495,18 +1494,3 @@ bool RoutingManager::IsSpeedLimitExceeded() const
{
return m_routingSession.IsSpeedLimitExceeded();
}
-
-void RoutingManager::UpdateRouteMarksVisibility(RoadWarningMarkType selectedType)
-{
- auto const markIds = m_bmManager->GetUserMarkIds(UserMark::Type::ROAD_WARNING);
- if (markIds.empty())
- return;
-
- auto es = m_bmManager->GetEditSession();
- for (auto id : markIds)
- {
- auto mark = es.GetMarkForEdit<RoadWarningMark>(id);
- auto const isVisible = mark->GetIndex() == 0 || selectedType == mark->GetRoadWarningType();
- mark->SetIsVisible(isVisible);
- }
-}
diff --git a/map/routing_manager.hpp b/map/routing_manager.hpp
index 20c4f543cd..efa6870d79 100644
--- a/map/routing_manager.hpp
+++ b/map/routing_manager.hpp
@@ -286,8 +286,6 @@ public:
/// \brief It deletes file with saved route points if it exists.
void DeleteSavedRoutePoints();
- void UpdateRouteMarksVisibility(RoadWarningMarkType selectedType);
-
void UpdatePreviewMode();
void CancelPreviewMode();
diff --git a/map/routing_mark.cpp b/map/routing_mark.cpp
index f7f39841b5..9a94bb23ff 100644
--- a/map/routing_mark.cpp
+++ b/map/routing_mark.cpp
@@ -621,16 +621,25 @@ RoadWarningMark::RoadWarningMark(m2::PointD const & ptOrg)
: UserMark(ptOrg, Type::ROAD_WARNING)
{}
-void RoadWarningMark::SetIndex(uint32_t index)
+uint16_t RoadWarningMark::GetPriority() const
{
- SetDirty();
- m_index = index;
+ if (m_index == 0)
+ {
+ switch (m_type)
+ {
+ case RoadWarningMarkType::Toll: return static_cast<uint16_t>(Priority::RoadWarningFirstToll);
+ case RoadWarningMarkType::Ferry: return static_cast<uint16_t>(Priority::RoadWarningFirstFerry);
+ case RoadWarningMarkType::Dirty: return static_cast<uint16_t>(Priority::RoadWarningFirstDirty);
+ case RoadWarningMarkType::Count: CHECK(false, ()); break;
+ }
+ }
+ return static_cast<uint16_t>(Priority::RoadWarning);
}
-void RoadWarningMark::SetIsVisible(bool isVisible)
+void RoadWarningMark::SetIndex(uint32_t index)
{
SetDirty();
- m_isVisible = isVisible;
+ m_index = index;
}
void RoadWarningMark::SetRoadWarningType(RoadWarningMarkType type)
@@ -666,13 +675,6 @@ drape_ptr<df::UserPointMark::SymbolNameZoomInfo> RoadWarningMark::GetSymbolNames
return symbol;
}
-drape_ptr<df::UserPointMark::ColoredSymbolZoomInfo> RoadWarningMark::GetColoredSymbols() const
-{
- auto coloredSymbol = make_unique_dp<ColoredSymbolZoomInfo>();
- coloredSymbol->m_isSymbolStub = true;
- return coloredSymbol;
-}
-
// static
std::string RoadWarningMark::GetLocalizedRoadWarningType(RoadWarningMarkType type)
{
diff --git a/map/routing_mark.hpp b/map/routing_mark.hpp
index 8745e0e3b1..7899776bba 100644
--- a/map/routing_mark.hpp
+++ b/map/routing_mark.hpp
@@ -207,21 +207,17 @@ enum class RoadWarningMarkType : uint8_t
class RoadWarningMark : public UserMark
{
public:
- static int constexpr kAlwaysVisibleMinZoom = 13;
-
explicit RoadWarningMark(m2::PointD const & ptOrg);
+ bool SymbolIsPOI() const override { return true; }
dp::Anchor GetAnchor() const override { return dp::Anchor::Bottom; }
df::DepthLayer GetDepthLayer() const override { return df::DepthLayer::RoutingBottomMarkLayer; }
- uint16_t GetPriority() const override { return static_cast<uint16_t>(Priority::RoadWarning); }
+ uint16_t GetPriority() const override;
df::SpecialDisplacement GetDisplacement() const override { return df::SpecialDisplacement::SpecialModeUserMark; }
void SetIndex(uint32_t index);
uint32_t GetIndex() const override { return m_index; }
- void SetIsVisible(bool isVisible);
- bool IsVisible() const override { return m_isVisible; }
-
void SetRoadWarningType(RoadWarningMarkType type);
RoadWarningMarkType GetRoadWarningType() const { return m_type; }
@@ -233,10 +229,6 @@ public:
drape_ptr<SymbolNameZoomInfo> GetSymbolNames() const override;
- drape_ptr<ColoredSymbolZoomInfo> GetColoredSymbols() const override;
-
- int GetAlwaysVisibleMinZoom() const override { return kAlwaysVisibleMinZoom; }
-
static std::string GetLocalizedRoadWarningType(RoadWarningMarkType type);
private:
@@ -244,7 +236,6 @@ private:
FeatureID m_featureId;
uint32_t m_index = 0;
std::string m_distance;
- bool m_isVisible = true;
};
std::string DebugPrint(RoadWarningMarkType type);
diff --git a/map/user_mark.hpp b/map/user_mark.hpp
index 48149f7dca..0081e64f4f 100644
--- a/map/user_mark.hpp
+++ b/map/user_mark.hpp
@@ -31,6 +31,9 @@ public:
TransitKeyStop,
SpeedCamera,
RoadWarning,
+ RoadWarningFirstFerry,
+ RoadWarningFirstDirty,
+ RoadWarningFirstToll,
};
enum Type : uint32_t
@@ -62,7 +65,6 @@ public:
bool IsDirty() const override { return m_isDirty; }
void ResetChanges() const override { m_isDirty = false; }
bool IsVisible() const override { return true; }
- int GetAlwaysVisibleMinZoom() const override { return std::numeric_limits<int>::max(); }
m2::PointD const & GetPivot() const override;
m2::PointD GetPixelOffset() const override { return {}; }
dp::Anchor GetAnchor() const override { return dp::Center; }