diff options
author | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-07 17:23:14 +0000 |
---|---|---|
committer | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-07 17:23:14 +0000 |
commit | dbba0c455f8b3f139fbfd9634d0bfba268085a33 (patch) | |
tree | 91c42ac484be649b5ed537ff1e12fc7edbe9f7fa /app/animation.cc | |
parent | 4c1b6f0b5e1ce512780f5c83c245fd62dca3f3d1 (diff) | |
download | chromium_src-dbba0c455f8b3f139fbfd9634d0bfba268085a33.zip chromium_src-dbba0c455f8b3f139fbfd9634d0bfba268085a33.tar.gz chromium_src-dbba0c455f8b3f139fbfd9634d0bfba268085a33.tar.bz2 |
Adds Animation::CurrentValueBetween and gets rid of a bunch of
duplicate code.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/570055
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38330 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'app/animation.cc')
-rw-r--r-- | app/animation.cc | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/app/animation.cc b/app/animation.cc index 94c99c2..b341d2a 100644 --- a/app/animation.cc +++ b/app/animation.cc @@ -4,6 +4,7 @@ #include "app/animation.h" +#include "base/gfx/rect.h" #include "base/message_loop.h" #if defined(OS_WIN) @@ -47,6 +48,25 @@ double Animation::GetCurrentValue() const { return state_; } +double Animation::CurrentValueBetween(double start, double target) const { + return start + (target - start) * GetCurrentValue(); +} + +int Animation::CurrentValueBetween(int start, int target) const { + return static_cast<int>(CurrentValueBetween(static_cast<double>(start), + static_cast<double>(target))); +} + +gfx::Rect Animation::CurrentValueBetween(const gfx::Rect& start_bounds, + const gfx::Rect& target_bounds) const { + return gfx::Rect(CurrentValueBetween(start_bounds.x(), target_bounds.x()), + CurrentValueBetween(start_bounds.y(), target_bounds.y()), + CurrentValueBetween(start_bounds.width(), + target_bounds.width()), + CurrentValueBetween(start_bounds.height(), + target_bounds.height())); +} + void Animation::Start() { if (!animating_) { start_time_ = Time::Now(); |