From 74a12dfd78b3b3e335df667f8cf041fe97f46869 Mon Sep 17 00:00:00 2001 From: ExMix Date: Wed, 12 Aug 2015 21:38:20 +0300 Subject: [PATCH] [drape] when "MyPosition" was moving and not rotating, azimut was equal NaN. --- drape_frontend/my_position_controller.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drape_frontend/my_position_controller.cpp b/drape_frontend/my_position_controller.cpp index 9bec0d6577..0f5696bdf8 100644 --- a/drape_frontend/my_position_controller.cpp +++ b/drape_frontend/my_position_controller.cpp @@ -66,11 +66,15 @@ public: my::clamp(GetElapsedTime() / m_moveDuration, 0.0, 1.0)); } + bool IsMovingActive() const { return m_moveDuration > 0.0; } + double GetCurrentAzimut() const { return m_angleInterpolator.Interpolate(my::clamp(GetElapsedTime() / m_rotateDuration, 0.0, 1.0)); } + bool IsRotatingActive() const { return m_rotateDuration > 0.0; } + private: m2::PointD m_startPt; m2::PointD m_endPt; @@ -499,7 +503,7 @@ m2::PointD MyPositionController::GetCurrentPixelBinding() const m2::PointD MyPositionController::GetDrawablePosition() const { - if (m_anim) + if (m_anim && m_anim->IsMovingActive()) return m_anim->GetCurrentPosition(); return Position(); @@ -507,7 +511,7 @@ m2::PointD MyPositionController::GetDrawablePosition() const double MyPositionController::GetDrawableAzimut() const { - if (m_anim) + if (m_anim && m_anim->IsRotatingActive()) return m_anim->GetCurrentAzimut(); return m_drawDirection;