#pragma once #include "screen_operations.hpp" #include "animation/animation.hpp" namespace df { extern string const kPrettyMoveAnim; extern string const kPrettyFollowAnim; extern string const kParallelFollowAnim; extern string const kParallelLinearAnim; class SequenceAnimation; class MapLinearAnimation; class MapFollowAnimation; class MapScaleAnimation; drape_ptr GetPrettyMoveAnimation(ScreenBase const & startScreen, ScreenBase const & endScreen); drape_ptr GetPrettyMoveAnimation(ScreenBase const & screen, m2::AnyRectD const & startRect, m2::AnyRectD const & endRect); drape_ptr GetPrettyMoveAnimation(ScreenBase const & screen, double startScale, double endScale, m2::PointD const & startPt, m2::PointD const & endPt); drape_ptr GetPrettyFollowAnimation(ScreenBase const & startScreen, m2::PointD const & userPos, double targetScale, double targetAngle, m2::PointD const & endPixelPos); drape_ptr GetRectAnimation(ScreenBase const & startScreen, ScreenBase const & endScreen); drape_ptr GetSetRectAnimation(ScreenBase const & screen, m2::AnyRectD const & startRect, m2::AnyRectD const & endRect); drape_ptr GetFollowAnimation(ScreenBase const & startScreen, m2::PointD const & userPos, double targetScale, double targetAngle, m2::PointD const & endPixelPos, bool isAutoZoom); drape_ptr GetScaleAnimation(ScreenBase const & startScreen, m2::PointD pxScaleCenter, m2::PointD glbScaleCenter, double factor); } // namespace df