diff options
Diffstat (limited to 'cc/CCPageScaleAnimation.h')
-rw-r--r-- | cc/CCPageScaleAnimation.h | 74 |
1 files changed, 3 insertions, 71 deletions
diff --git a/cc/CCPageScaleAnimation.h b/cc/CCPageScaleAnimation.h index f597026..1c59d7d 100644 --- a/cc/CCPageScaleAnimation.h +++ b/cc/CCPageScaleAnimation.h @@ -1,74 +1,6 @@ -// Copyright 2011 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CCPageScaleAnimation_h -#define CCPageScaleAnimation_h - -#include "IntSize.h" -#include <wtf/PassOwnPtr.h> - -namespace cc { - -// 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. -class CCPageScaleAnimation { -public: - // Construct with the starting page scale and scroll offset (which is in - // pageScaleStart space). The window size is the user-viewable area - // in pixels. - static PassOwnPtr<CCPageScaleAnimation> create(const IntSize& scrollStart, float pageScaleStart, const IntSize& windowSize, const IntSize& contentSize, double startTime); - - // The following methods initialize the animation. Call one of them - // immediately after construction to set the final scroll and page scale. - - // Zoom while explicitly specifying the top-left scroll position. The - // scroll offset is in finalPageScale coordinates. - void zoomTo(const IntSize& finalScroll, float finalPageScale, double duration); - - // Zoom based on a specified onscreen anchor, which will remain at the same - // position on the screen throughout the animation. The anchor is in local - // space relative to scrollStart. - void zoomWithAnchor(const IntSize& anchor, float finalPageScale, double duration); - - // Call these functions while the animation is in progress to output the - // current state. - IntSize scrollOffsetAtTime(double time) const; - float pageScaleAtTime(double time) const; - bool isAnimationCompleteAtTime(double time) const; - - // The following methods return state which is invariant throughout the - // course of the animation. - double startTime() const { return m_startTime; } - double duration() const { return m_duration; } - double endTime() const { return m_startTime + m_duration; } - const IntSize& finalScrollOffset() const { return m_scrollEnd; } - float finalPageScale() const { return m_pageScaleEnd; } - -protected: - CCPageScaleAnimation(const IntSize& scrollStart, float pageScaleStart, const IntSize& windowSize, const IntSize& contentSize, double startTime); - -private: - float progressRatioForTime(double time) const; - IntSize scrollOffsetAtRatio(float ratio) const; - float pageScaleAtRatio(float ratio) const; - - IntSize m_scrollStart; - float m_pageScaleStart; - IntSize m_windowSize; - IntSize m_contentSize; - - bool m_anchorMode; - IntSize m_anchor; - IntSize m_scrollEnd; - float m_pageScaleEnd; - - double m_startTime; - double m_duration; -}; - -} // namespace cc - -#endif +// Temporary forwarding header +#include "cc/page_scale_animation.h" |