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

Unified Diff: cc/animation/keyframed_animation_curve.cc

Issue 1057283003: Remove parts of //cc we aren't using (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/animation/keyframed_animation_curve.h ('k') | cc/animation/keyframed_animation_curve_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/animation/keyframed_animation_curve.cc
diff --git a/cc/animation/keyframed_animation_curve.cc b/cc/animation/keyframed_animation_curve.cc
deleted file mode 100644
index bf65df8f20f00ca694b0f7b604ece794f76fdede..0000000000000000000000000000000000000000
--- a/cc/animation/keyframed_animation_curve.cc
+++ /dev/null
@@ -1,465 +0,0 @@
-// 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.
-
-#include <algorithm>
-
-#include "cc/animation/keyframed_animation_curve.h"
-#include "cc/base/time_util.h"
-#include "ui/gfx/animation/tween.h"
-#include "ui/gfx/geometry/box_f.h"
-
-namespace cc {
-
-namespace {
-
-template <class KeyframeType>
-void InsertKeyframe(scoped_ptr<KeyframeType> keyframe,
- ScopedPtrVector<KeyframeType>* keyframes) {
- // Usually, the keyframes will be added in order, so this loop would be
- // unnecessary and we should skip it if possible.
- if (!keyframes->empty() && keyframe->Time() < keyframes->back()->Time()) {
- for (size_t i = 0; i < keyframes->size(); ++i) {
- if (keyframe->Time() < keyframes->at(i)->Time()) {
- keyframes->insert(keyframes->begin() + i, keyframe.Pass());
- return;
- }
- }
- }
-
- keyframes->push_back(keyframe.Pass());
-}
-
-template <typename KeyframeType>
-base::TimeDelta TransformedAnimationTime(
- const ScopedPtrVector<KeyframeType>& keyframes,
- const scoped_ptr<TimingFunction>& timing_function,
- base::TimeDelta time) {
- if (timing_function) {
- base::TimeDelta start_time = keyframes.front()->Time();
- base::TimeDelta duration =
- keyframes.back()->Time() - keyframes.front()->Time();
- double progress = TimeUtil::Divide(time - start_time, duration);
-
- time = TimeUtil::Scale(duration, timing_function->GetValue(progress)) +
- start_time;
- }
-
- return time;
-}
-
-template <typename KeyframeType>
-size_t GetActiveKeyframe(const ScopedPtrVector<KeyframeType>& keyframes,
- base::TimeDelta time) {
- DCHECK_GE(keyframes.size(), 2ul);
- size_t i = 0;
- for (; i < keyframes.size() - 2; ++i) { // Last keyframe is never active.
- if (time < keyframes[i + 1]->Time())
- break;
- }
-
- return i;
-}
-
-template <typename KeyframeType>
-double TransformedKeyframeProgress(
- const ScopedPtrVector<KeyframeType>& keyframes,
- base::TimeDelta time,
- size_t i) {
- double progress =
- TimeUtil::Divide(time - keyframes[i]->Time(),
- keyframes[i + 1]->Time() - keyframes[i]->Time());
-
- if (keyframes[i]->timing_function()) {
- progress = keyframes[i]->timing_function()->GetValue(progress);
- }
-
- return progress;
-}
-
-} // namespace
-
-Keyframe::Keyframe(base::TimeDelta time,
- scoped_ptr<TimingFunction> timing_function)
- : time_(time), timing_function_(timing_function.Pass()) {
-}
-
-Keyframe::~Keyframe() {}
-
-base::TimeDelta Keyframe::Time() const {
- return time_;
-}
-
-scoped_ptr<ColorKeyframe> ColorKeyframe::Create(
- base::TimeDelta time,
- SkColor value,
- scoped_ptr<TimingFunction> timing_function) {
- return make_scoped_ptr(
- new ColorKeyframe(time, value, timing_function.Pass()));
-}
-
-ColorKeyframe::ColorKeyframe(base::TimeDelta time,
- SkColor value,
- scoped_ptr<TimingFunction> timing_function)
- : Keyframe(time, timing_function.Pass()), value_(value) {
-}
-
-ColorKeyframe::~ColorKeyframe() {}
-
-SkColor ColorKeyframe::Value() const { return value_; }
-
-scoped_ptr<ColorKeyframe> ColorKeyframe::Clone() const {
- scoped_ptr<TimingFunction> func;
- if (timing_function())
- func = timing_function()->Clone();
- return ColorKeyframe::Create(Time(), Value(), func.Pass());
-}
-
-scoped_ptr<FloatKeyframe> FloatKeyframe::Create(
- base::TimeDelta time,
- float value,
- scoped_ptr<TimingFunction> timing_function) {
- return make_scoped_ptr(
- new FloatKeyframe(time, value, timing_function.Pass()));
-}
-
-FloatKeyframe::FloatKeyframe(base::TimeDelta time,
- float value,
- scoped_ptr<TimingFunction> timing_function)
- : Keyframe(time, timing_function.Pass()), value_(value) {
-}
-
-FloatKeyframe::~FloatKeyframe() {}
-
-float FloatKeyframe::Value() const {
- return value_;
-}
-
-scoped_ptr<FloatKeyframe> FloatKeyframe::Clone() const {
- scoped_ptr<TimingFunction> func;
- if (timing_function())
- func = timing_function()->Clone();
- return FloatKeyframe::Create(Time(), Value(), func.Pass());
-}
-
-scoped_ptr<TransformKeyframe> TransformKeyframe::Create(
- base::TimeDelta time,
- const TransformOperations& value,
- scoped_ptr<TimingFunction> timing_function) {
- return make_scoped_ptr(
- new TransformKeyframe(time, value, timing_function.Pass()));
-}
-
-TransformKeyframe::TransformKeyframe(base::TimeDelta time,
- const TransformOperations& value,
- scoped_ptr<TimingFunction> timing_function)
- : Keyframe(time, timing_function.Pass()), value_(value) {
-}
-
-TransformKeyframe::~TransformKeyframe() {}
-
-const TransformOperations& TransformKeyframe::Value() const {
- return value_;
-}
-
-scoped_ptr<TransformKeyframe> TransformKeyframe::Clone() const {
- scoped_ptr<TimingFunction> func;
- if (timing_function())
- func = timing_function()->Clone();
- return TransformKeyframe::Create(Time(), Value(), func.Pass());
-}
-
-scoped_ptr<FilterKeyframe> FilterKeyframe::Create(
- base::TimeDelta time,
- const FilterOperations& value,
- scoped_ptr<TimingFunction> timing_function) {
- return make_scoped_ptr(
- new FilterKeyframe(time, value, timing_function.Pass()));
-}
-
-FilterKeyframe::FilterKeyframe(base::TimeDelta time,
- const FilterOperations& value,
- scoped_ptr<TimingFunction> timing_function)
- : Keyframe(time, timing_function.Pass()), value_(value) {
-}
-
-FilterKeyframe::~FilterKeyframe() {}
-
-const FilterOperations& FilterKeyframe::Value() const {
- return value_;
-}
-
-scoped_ptr<FilterKeyframe> FilterKeyframe::Clone() const {
- scoped_ptr<TimingFunction> func;
- if (timing_function())
- func = timing_function()->Clone();
- return FilterKeyframe::Create(Time(), Value(), func.Pass());
-}
-
-scoped_ptr<KeyframedColorAnimationCurve> KeyframedColorAnimationCurve::
- Create() {
- return make_scoped_ptr(new KeyframedColorAnimationCurve);
-}
-
-KeyframedColorAnimationCurve::KeyframedColorAnimationCurve() {}
-
-KeyframedColorAnimationCurve::~KeyframedColorAnimationCurve() {}
-
-void KeyframedColorAnimationCurve::AddKeyframe(
- scoped_ptr<ColorKeyframe> keyframe) {
- InsertKeyframe(keyframe.Pass(), &keyframes_);
-}
-
-base::TimeDelta KeyframedColorAnimationCurve::Duration() const {
- return keyframes_.back()->Time() - keyframes_.front()->Time();
-}
-
-scoped_ptr<AnimationCurve> KeyframedColorAnimationCurve::Clone() const {
- scoped_ptr<KeyframedColorAnimationCurve> to_return =
- KeyframedColorAnimationCurve::Create();
- for (size_t i = 0; i < keyframes_.size(); ++i)
- to_return->AddKeyframe(keyframes_[i]->Clone());
-
- if (timing_function_)
- to_return->SetTimingFunction(timing_function_->Clone());
-
- return to_return.Pass();
-}
-
-SkColor KeyframedColorAnimationCurve::GetValue(base::TimeDelta t) const {
- if (t <= keyframes_.front()->Time())
- return keyframes_.front()->Value();
-
- if (t >= keyframes_.back()->Time())
- return keyframes_.back()->Value();
-
- t = TransformedAnimationTime(keyframes_, timing_function_, t);
- size_t i = GetActiveKeyframe(keyframes_, t);
- double progress = TransformedKeyframeProgress(keyframes_, t, i);
-
- return gfx::Tween::ColorValueBetween(
- progress, keyframes_[i]->Value(), keyframes_[i + 1]->Value());
-}
-
-// KeyframedFloatAnimationCurve
-
-scoped_ptr<KeyframedFloatAnimationCurve> KeyframedFloatAnimationCurve::
- Create() {
- return make_scoped_ptr(new KeyframedFloatAnimationCurve);
-}
-
-KeyframedFloatAnimationCurve::KeyframedFloatAnimationCurve() {}
-
-KeyframedFloatAnimationCurve::~KeyframedFloatAnimationCurve() {}
-
-void KeyframedFloatAnimationCurve::AddKeyframe(
- scoped_ptr<FloatKeyframe> keyframe) {
- InsertKeyframe(keyframe.Pass(), &keyframes_);
-}
-
-base::TimeDelta KeyframedFloatAnimationCurve::Duration() const {
- return keyframes_.back()->Time() - keyframes_.front()->Time();
-}
-
-scoped_ptr<AnimationCurve> KeyframedFloatAnimationCurve::Clone() const {
- scoped_ptr<KeyframedFloatAnimationCurve> to_return =
- KeyframedFloatAnimationCurve::Create();
- for (size_t i = 0; i < keyframes_.size(); ++i)
- to_return->AddKeyframe(keyframes_[i]->Clone());
-
- if (timing_function_)
- to_return->SetTimingFunction(timing_function_->Clone());
-
- return to_return.Pass();
-}
-
-float KeyframedFloatAnimationCurve::GetValue(base::TimeDelta t) const {
- if (t <= keyframes_.front()->Time())
- return keyframes_.front()->Value();
-
- if (t >= keyframes_.back()->Time())
- return keyframes_.back()->Value();
-
- t = TransformedAnimationTime(keyframes_, timing_function_, t);
- size_t i = GetActiveKeyframe(keyframes_, t);
- double progress = TransformedKeyframeProgress(keyframes_, t, i);
-
- return keyframes_[i]->Value() +
- (keyframes_[i+1]->Value() - keyframes_[i]->Value()) * progress;
-}
-
-scoped_ptr<KeyframedTransformAnimationCurve> KeyframedTransformAnimationCurve::
- Create() {
- return make_scoped_ptr(new KeyframedTransformAnimationCurve);
-}
-
-KeyframedTransformAnimationCurve::KeyframedTransformAnimationCurve() {}
-
-KeyframedTransformAnimationCurve::~KeyframedTransformAnimationCurve() {}
-
-void KeyframedTransformAnimationCurve::AddKeyframe(
- scoped_ptr<TransformKeyframe> keyframe) {
- InsertKeyframe(keyframe.Pass(), &keyframes_);
-}
-
-base::TimeDelta KeyframedTransformAnimationCurve::Duration() const {
- return keyframes_.back()->Time() - keyframes_.front()->Time();
-}
-
-scoped_ptr<AnimationCurve> KeyframedTransformAnimationCurve::Clone() const {
- scoped_ptr<KeyframedTransformAnimationCurve> to_return =
- KeyframedTransformAnimationCurve::Create();
- for (size_t i = 0; i < keyframes_.size(); ++i)
- to_return->AddKeyframe(keyframes_[i]->Clone());
-
- if (timing_function_)
- to_return->SetTimingFunction(timing_function_->Clone());
-
- return to_return.Pass();
-}
-
-gfx::Transform KeyframedTransformAnimationCurve::GetValue(
- base::TimeDelta t) const {
- if (t <= keyframes_.front()->Time())
- return keyframes_.front()->Value().Apply();
-
- if (t >= keyframes_.back()->Time())
- return keyframes_.back()->Value().Apply();
-
- t = TransformedAnimationTime(keyframes_, timing_function_, t);
- size_t i = GetActiveKeyframe(keyframes_, t);
- double progress = TransformedKeyframeProgress(keyframes_, t, i);
-
- return keyframes_[i + 1]->Value().Blend(keyframes_[i]->Value(), progress);
-}
-
-bool KeyframedTransformAnimationCurve::AnimatedBoundsForBox(
- const gfx::BoxF& box,
- gfx::BoxF* bounds) const {
- DCHECK_GE(keyframes_.size(), 2ul);
- *bounds = gfx::BoxF();
- for (size_t i = 0; i < keyframes_.size() - 1; ++i) {
- gfx::BoxF bounds_for_step;
- float min_progress = 0.0;
- float max_progress = 1.0;
- if (keyframes_[i]->timing_function())
- keyframes_[i]->timing_function()->Range(&min_progress, &max_progress);
- if (!keyframes_[i+1]->Value().BlendedBoundsForBox(box,
- keyframes_[i]->Value(),
- min_progress,
- max_progress,
- &bounds_for_step))
- return false;
- bounds->Union(bounds_for_step);
- }
- return true;
-}
-
-bool KeyframedTransformAnimationCurve::AffectsScale() const {
- for (size_t i = 0; i < keyframes_.size(); ++i) {
- if (keyframes_[i]->Value().AffectsScale())
- return true;
- }
- return false;
-}
-
-bool KeyframedTransformAnimationCurve::PreservesAxisAlignment() const {
- for (size_t i = 0; i < keyframes_.size(); ++i) {
- if (!keyframes_[i]->Value().PreservesAxisAlignment())
- return false;
- }
- return true;
-}
-
-bool KeyframedTransformAnimationCurve::IsTranslation() const {
- for (size_t i = 0; i < keyframes_.size(); ++i) {
- if (!keyframes_[i]->Value().IsTranslation() &&
- !keyframes_[i]->Value().IsIdentity())
- return false;
- }
- return true;
-}
-
-bool KeyframedTransformAnimationCurve::MaximumTargetScale(
- bool forward_direction,
- float* max_scale) const {
- DCHECK_GE(keyframes_.size(), 2ul);
- *max_scale = 0.f;
-
- // If |forward_direction| is true, then skip the first frame, otherwise
- // skip the last frame, since that is the original position in the animation.
- size_t start = 1;
- size_t end = keyframes_.size();
- if (!forward_direction) {
- --start;
- --end;
- }
-
- for (size_t i = start; i < end; ++i) {
- gfx::Vector3dF target_scale_for_segment;
- if (!keyframes_[i]->Value().ScaleComponent(&target_scale_for_segment))
- return false;
- float max_scale_for_segment =
- fmax(std::abs(target_scale_for_segment.x()),
- fmax(std::abs(target_scale_for_segment.y()),
- std::abs(target_scale_for_segment.z())));
- *max_scale = fmax(*max_scale, max_scale_for_segment);
- }
- return true;
-}
-
-scoped_ptr<KeyframedFilterAnimationCurve> KeyframedFilterAnimationCurve::
- Create() {
- return make_scoped_ptr(new KeyframedFilterAnimationCurve);
-}
-
-KeyframedFilterAnimationCurve::KeyframedFilterAnimationCurve() {}
-
-KeyframedFilterAnimationCurve::~KeyframedFilterAnimationCurve() {}
-
-void KeyframedFilterAnimationCurve::AddKeyframe(
- scoped_ptr<FilterKeyframe> keyframe) {
- InsertKeyframe(keyframe.Pass(), &keyframes_);
-}
-
-base::TimeDelta KeyframedFilterAnimationCurve::Duration() const {
- return keyframes_.back()->Time() - keyframes_.front()->Time();
-}
-
-scoped_ptr<AnimationCurve> KeyframedFilterAnimationCurve::Clone() const {
- scoped_ptr<KeyframedFilterAnimationCurve> to_return =
- KeyframedFilterAnimationCurve::Create();
- for (size_t i = 0; i < keyframes_.size(); ++i)
- to_return->AddKeyframe(keyframes_[i]->Clone());
-
- if (timing_function_)
- to_return->SetTimingFunction(timing_function_->Clone());
-
- return to_return.Pass();
-}
-
-FilterOperations KeyframedFilterAnimationCurve::GetValue(
- base::TimeDelta t) const {
- if (t <= keyframes_.front()->Time())
- return keyframes_.front()->Value();
-
- if (t >= keyframes_.back()->Time())
- return keyframes_.back()->Value();
-
- t = TransformedAnimationTime(keyframes_, timing_function_, t);
- size_t i = GetActiveKeyframe(keyframes_, t);
- double progress = TransformedKeyframeProgress(keyframes_, t, i);
-
- return keyframes_[i + 1]->Value().Blend(keyframes_[i]->Value(), progress);
-}
-
-bool KeyframedFilterAnimationCurve::HasFilterThatMovesPixels() const {
- for (size_t i = 0; i < keyframes_.size(); ++i) {
- if (keyframes_[i]->Value().HasFilterThatMovesPixels()) {
- return true;
- }
- }
- return false;
-}
-
-} // namespace cc
« no previous file with comments | « cc/animation/keyframed_animation_curve.h ('k') | cc/animation/keyframed_animation_curve_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698