// Copyright 2011 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CC_INPUT_PAGE_SCALE_ANIMATION_H_ #define CC_INPUT_PAGE_SCALE_ANIMATION_H_ #include <memory> #include "base/time/time.h" #include "cc/cc_export.h" #include "ui/gfx/geometry/cubic_bezier.h" #include "ui/gfx/geometry/point.h" #include "ui/gfx/geometry/point_f.h" #include "ui/gfx/geometry/size_f.h" #include "ui/gfx/geometry/vector2d_f.h" namespace cc { // Used in the CC to pass around a scale animation that hasn't yet been // initialized. struct PendingPageScaleAnimation { … }; // A small helper class that does the math for zoom animations, primarily for // double-tap zoom. Initialize it with starting and ending scroll/page scale // positions and an animation length time, then call ...AtTime() at every frame // to obtain the current interpolated position. The supplied timing function // is used to ease the animation. // // All sizes and vectors in this class's public methods are in the root scroll // layer's coordinate space. class CC_EXPORT PageScaleAnimation { … }; } // namespace cc #endif // CC_INPUT_PAGE_SCALE_ANIMATION_H_