diff options
author | r.kuznetsov <r.kuznetsov@corp.mail.ru> | 2016-06-30 15:02:54 +0300 |
---|---|---|
committer | r.kuznetsov <r.kuznetsov@corp.mail.ru> | 2016-07-01 09:46:40 +0300 |
commit | cd6792e04d95b30d9f4669f59f08aa99794d4b11 (patch) | |
tree | cce644dfec69dc7be9b336ed1a921a6ad874a665 /drape_frontend | |
parent | 517c506328c3e2c5504178cd59a65ddfc320b9cd (diff) |
Added displaying of hotel info if any hotel is selected
Diffstat (limited to 'drape_frontend')
-rw-r--r-- | drape_frontend/apply_feature_functors.cpp | 7 | ||||
-rw-r--r-- | drape_frontend/circle_shape.cpp | 7 | ||||
-rw-r--r-- | drape_frontend/poi_symbol_shape.cpp | 16 | ||||
-rw-r--r-- | drape_frontend/poi_symbol_shape.hpp | 6 |
4 files changed, 23 insertions, 13 deletions
diff --git a/drape_frontend/apply_feature_functors.cpp b/drape_frontend/apply_feature_functors.cpp index 43d4f8f1f4..575fdb7bd7 100644 --- a/drape_frontend/apply_feature_functors.cpp +++ b/drape_frontend/apply_feature_functors.cpp @@ -384,7 +384,12 @@ void ApplyPointFeature::Finish() params.m_hasArea = m_hasArea; params.m_createdByEditor = m_createdByEditor; params.m_obsoleteInEditor = m_obsoleteInEditor; - m_insertShape(make_unique_dp<PoiSymbolShape>(m_centerPoint, params)); + + m_insertShape(make_unique_dp<PoiSymbolShape>(m_centerPoint, params, + m_hotelData.m_isHotel ? dp::displacement::kDefaultMode : + dp::displacement::kAllModes)); + if (m_hotelData.m_isHotel) + m_insertShape(make_unique_dp<PoiSymbolShape>(m_centerPoint, params, dp::displacement::kHotelMode)); } } diff --git a/drape_frontend/circle_shape.cpp b/drape_frontend/circle_shape.cpp index 38603d0935..3fd8fba4aa 100644 --- a/drape_frontend/circle_shape.cpp +++ b/drape_frontend/circle_shape.cpp @@ -50,12 +50,11 @@ void CircleShape::Draw(ref_ptr<dp::Batcher> batcher, ref_ptr<dp::TextureManager> dp::GLState state(gpu::TEXTURING_PROGRAM, dp::GLState::OverlayLayer); state.SetColorTexture(region.GetTexture()); - double handleSize = 2 * m_params.m_radius; + double const handleSize = 2 * m_params.m_radius; - drape_ptr<dp::OverlayHandle> overlay = make_unique_dp<dp::SquareHandle>(m_params.m_id, - dp::Center, m_pt, + drape_ptr<dp::OverlayHandle> overlay = make_unique_dp<dp::SquareHandle>(m_params.m_id, dp::Center, m_pt, m2::PointD(handleSize, handleSize), - GetOverlayPriority(), ""); + GetOverlayPriority(), false /* isBound */, ""); dp::AttributeProvider provider(1, TriangleCount + 2); provider.InitStream(0, gpu::SolidTexturingVertex::GetBindingInfo(), make_ref(vertexes.data())); diff --git a/drape_frontend/poi_symbol_shape.cpp b/drape_frontend/poi_symbol_shape.cpp index 4e796950bb..5b20fe1226 100644 --- a/drape_frontend/poi_symbol_shape.cpp +++ b/drape_frontend/poi_symbol_shape.cpp @@ -95,10 +95,9 @@ void Batch<MV>(ref_ptr<dp::Batcher> batcher, drape_ptr<dp::OverlayHandle> && han namespace df { - -PoiSymbolShape::PoiSymbolShape(m2::PointF const & mercatorPt, PoiSymbolViewParams const & params) - : m_pt(mercatorPt) - , m_params(params) +PoiSymbolShape::PoiSymbolShape(m2::PointF const & mercatorPt, PoiSymbolViewParams const & params, + int displacementMode) + : m_pt(mercatorPt), m_params(params), m_displacementMode(displacementMode) {} void PoiSymbolShape::Draw(ref_ptr<dp::Batcher> batcher, ref_ptr<dp::TextureManager> textures) const @@ -108,12 +107,14 @@ void PoiSymbolShape::Draw(ref_ptr<dp::Batcher> batcher, ref_ptr<dp::TextureManag glsl::vec4 const position = glsl::vec4(glsl::ToVec2(m_pt), m_params.m_depth, -m_params.m_posZ); m2::PointU const pixelSize = region.GetPixelSize(); + drape_ptr<dp::OverlayHandle> handle = make_unique_dp<dp::SquareHandle>(m_params.m_id, dp::Center, m_pt, pixelSize, GetOverlayPriority(), + true /* isBound */, m_params.m_symbolName, - true); + true /* isBillboard */); handle->SetPivotZ(m_params.m_posZ); handle->SetExtendingSize(m_params.m_extendingSize); @@ -131,8 +132,9 @@ void PoiSymbolShape::Draw(ref_ptr<dp::Batcher> batcher, ref_ptr<dp::TextureManag uint64_t PoiSymbolShape::GetOverlayPriority() const { - // Set up maximum priority for shapes which created by user in the editor. - if (m_params.m_createdByEditor) + // Set up maximum priority for shapes which created by user in the editor + // and in case of a special displacement mode. + if (m_params.m_createdByEditor || (m_displacementMode & dp::displacement::kDefaultMode) == 0) return dp::kPriorityMaskAll; // Set up minimal priority for shapes which belong to areas. diff --git a/drape_frontend/poi_symbol_shape.hpp b/drape_frontend/poi_symbol_shape.hpp index 57230ca8e6..503055c712 100644 --- a/drape_frontend/poi_symbol_shape.hpp +++ b/drape_frontend/poi_symbol_shape.hpp @@ -3,13 +3,16 @@ #include "drape_frontend/map_shape.hpp" #include "drape_frontend/shape_view_params.hpp" +#include "drape/constants.hpp" + namespace df { class PoiSymbolShape : public MapShape { public: - PoiSymbolShape(m2::PointF const & mercatorPt, PoiSymbolViewParams const & params); + PoiSymbolShape(m2::PointF const & mercatorPt, PoiSymbolViewParams const & params, + int displacementMode = dp::displacement::kAllModes); void Draw(ref_ptr<dp::Batcher> batcher, ref_ptr<dp::TextureManager> textures) const override; MapShapeType GetType() const override { return MapShapeType::OverlayType; } @@ -19,6 +22,7 @@ private: m2::PointF const m_pt; PoiSymbolViewParams const m_params; + int const m_displacementMode; }; } // namespace df |