Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(267)

Side by Side Diff: cc/page_scale_animation.cc

Issue 11293193: ui: Add non-member Vector2dScale() and Vector3dScale() methods to create scaled vectors (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: use it in cc/ Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "config.h" 5 #include "config.h"
6 6
7 #include "cc/page_scale_animation.h" 7 #include "cc/page_scale_animation.h"
8 8
9 #include "cc/geometry.h" 9 #include "cc/geometry.h"
10 #include "ui/gfx/rect_f.h" 10 #include "ui/gfx/rect_f.h"
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 m_scrollEnd = finalScroll; 68 m_scrollEnd = finalScroll;
69 m_pageScaleEnd = finalPageScale; 69 m_pageScaleEnd = finalPageScale;
70 m_duration = duration; 70 m_duration = duration;
71 m_anchorMode = false; 71 m_anchorMode = false;
72 } 72 }
73 } 73 }
74 74
75 void PageScaleAnimation::zoomWithAnchor(gfx::Vector2d anchor, float finalPageSca le, double duration) 75 void PageScaleAnimation::zoomWithAnchor(gfx::Vector2d anchor, float finalPageSca le, double duration)
76 { 76 {
77 m_scrollEnd = m_scrollStart + anchor; 77 m_scrollEnd = m_scrollStart + anchor;
78 m_scrollEnd = gfx::ToFlooredVector2d(cc::ScaleVector2d(m_scrollEnd, finalPag eScale / m_pageScaleStart)); 78 m_scrollEnd = gfx::ToFlooredVector2d(gfx::ScaleVector2d(m_scrollEnd, finalPa geScale / m_pageScaleStart));
79 m_scrollEnd -= anchor; 79 m_scrollEnd -= anchor;
80 80
81 m_scrollEnd = ClampFromBelow(m_scrollEnd, gfx::Vector2d()); 81 m_scrollEnd = ClampFromBelow(m_scrollEnd, gfx::Vector2d());
82 gfx::SizeF scaledContentSize = gfx::ScaleSize(m_contentSize, finalPageScale / m_pageScaleStart); 82 gfx::SizeF scaledContentSize = gfx::ScaleSize(m_contentSize, finalPageScale / m_pageScaleStart);
83 gfx::Vector2d maxScrollOffset = gfx::ToRoundedVector2d(BottomRight(gfx::Rect F(scaledContentSize)) - BottomRight(gfx::Rect(m_windowSize))); 83 gfx::Vector2d maxScrollOffset = gfx::ToRoundedVector2d(BottomRight(gfx::Rect F(scaledContentSize)) - BottomRight(gfx::Rect(m_windowSize)));
84 m_scrollEnd = m_scrollEnd; 84 m_scrollEnd = m_scrollEnd;
85 m_scrollEnd = ClampFromAbove(m_scrollEnd, maxScrollOffset); 85 m_scrollEnd = ClampFromAbove(m_scrollEnd, maxScrollOffset);
86 86
87 m_anchor = anchor; 87 m_anchor = anchor;
88 m_pageScaleEnd = finalPageScale; 88 m_pageScaleEnd = finalPageScale;
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 // example, if we zoom from 0.5 to 4.0 in 3 seconds, then we should 155 // example, if we zoom from 0.5 to 4.0 in 3 seconds, then we should
156 // be zooming by 2x every second. 156 // be zooming by 2x every second.
157 float diff = m_pageScaleEnd / m_pageScaleStart; 157 float diff = m_pageScaleEnd / m_pageScaleStart;
158 float logDiff = log(diff); 158 float logDiff = log(diff);
159 logDiff *= ratio; 159 logDiff *= ratio;
160 diff = exp(logDiff); 160 diff = exp(logDiff);
161 return m_pageScaleStart * diff; 161 return m_pageScaleStart * diff;
162 } 162 }
163 163
164 } // namespace cc 164 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layer_tree_host_impl_unittest.cc ('k') | ui/gfx/vector2d_f.h » ('j') | ui/gfx/vector2d_f.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698