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

Side by Side Diff: Source/core/animation/animatable/AnimatableRepeatable.cpp

Issue 984153002: Fix template angle bracket syntax in animation (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 19 matching lines...) Expand all
30 30
31 #include "config.h" 31 #include "config.h"
32 #include "core/animation/animatable/AnimatableRepeatable.h" 32 #include "core/animation/animatable/AnimatableRepeatable.h"
33 33
34 #include "wtf/MathExtras.h" 34 #include "wtf/MathExtras.h"
35 35
36 namespace blink { 36 namespace blink {
37 37
38 bool AnimatableRepeatable::usesDefaultInterpolationWith(const AnimatableValue* v alue) const 38 bool AnimatableRepeatable::usesDefaultInterpolationWith(const AnimatableValue* v alue) const
39 { 39 {
40 const WillBeHeapVector<RefPtrWillBeMember<AnimatableValue> >& fromValues = m _values; 40 const WillBeHeapVector<RefPtrWillBeMember<AnimatableValue>>& fromValues = m_ values;
41 const WillBeHeapVector<RefPtrWillBeMember<AnimatableValue> >& toValues = toA nimatableRepeatable(value)->m_values; 41 const WillBeHeapVector<RefPtrWillBeMember<AnimatableValue>>& toValues = toAn imatableRepeatable(value)->m_values;
42 ASSERT(!fromValues.isEmpty() && !toValues.isEmpty()); 42 ASSERT(!fromValues.isEmpty() && !toValues.isEmpty());
43 size_t size = lowestCommonMultiple(fromValues.size(), toValues.size()); 43 size_t size = lowestCommonMultiple(fromValues.size(), toValues.size());
44 ASSERT(size > 0); 44 ASSERT(size > 0);
45 for (size_t i = 0; i < size; ++i) { 45 for (size_t i = 0; i < size; ++i) {
46 const AnimatableValue* from = fromValues[i % fromValues.size()].get(); 46 const AnimatableValue* from = fromValues[i % fromValues.size()].get();
47 const AnimatableValue* to = toValues[i % toValues.size()].get(); 47 const AnimatableValue* to = toValues[i % toValues.size()].get();
48 // Spec: If a pair of values cannot be interpolated, then the lists are not interpolable. 48 // Spec: If a pair of values cannot be interpolated, then the lists are not interpolable.
49 if (AnimatableValue::usesDefaultInterpolation(from, to)) 49 if (AnimatableValue::usesDefaultInterpolation(from, to))
50 return true; 50 return true;
51 } 51 }
52 return false; 52 return false;
53 } 53 }
54 54
55 bool AnimatableRepeatable::interpolateLists(const WillBeHeapVector<RefPtrWillBeM ember<AnimatableValue> >& fromValues, const WillBeHeapVector<RefPtrWillBeMember< AnimatableValue> >& toValues, double fraction, WillBeHeapVector<RefPtrWillBeMemb er<AnimatableValue> >& interpolatedValues) 55 bool AnimatableRepeatable::interpolateLists(const WillBeHeapVector<RefPtrWillBeM ember<AnimatableValue>>& fromValues, const WillBeHeapVector<RefPtrWillBeMember<A nimatableValue>>& toValues, double fraction, WillBeHeapVector<RefPtrWillBeMember <AnimatableValue>>& interpolatedValues)
56 { 56 {
57 // Interpolation behaviour spec: http://www.w3.org/TR/css3-transitions/#anim type-repeatable-list 57 // Interpolation behaviour spec: http://www.w3.org/TR/css3-transitions/#anim type-repeatable-list
58 ASSERT(interpolatedValues.isEmpty()); 58 ASSERT(interpolatedValues.isEmpty());
59 ASSERT(!fromValues.isEmpty() && !toValues.isEmpty()); 59 ASSERT(!fromValues.isEmpty() && !toValues.isEmpty());
60 size_t size = lowestCommonMultiple(fromValues.size(), toValues.size()); 60 size_t size = lowestCommonMultiple(fromValues.size(), toValues.size());
61 ASSERT(size > 0); 61 ASSERT(size > 0);
62 for (size_t i = 0; i < size; ++i) { 62 for (size_t i = 0; i < size; ++i) {
63 const AnimatableValue* from = fromValues[i % fromValues.size()].get(); 63 const AnimatableValue* from = fromValues[i % fromValues.size()].get();
64 const AnimatableValue* to = toValues[i % toValues.size()].get(); 64 const AnimatableValue* to = toValues[i % toValues.size()].get();
65 // Spec: If a pair of values cannot be interpolated, then the lists are not interpolable. 65 // Spec: If a pair of values cannot be interpolated, then the lists are not interpolable.
66 if (AnimatableValue::usesDefaultInterpolation(from, to)) 66 if (AnimatableValue::usesDefaultInterpolation(from, to))
67 return false; 67 return false;
68 interpolatedValues.append(interpolate(from, to, fraction)); 68 interpolatedValues.append(interpolate(from, to, fraction));
69 } 69 }
70 return true; 70 return true;
71 } 71 }
72 72
73 PassRefPtrWillBeRawPtr<AnimatableValue> AnimatableRepeatable::interpolateTo(cons t AnimatableValue* value, double fraction) const 73 PassRefPtrWillBeRawPtr<AnimatableValue> AnimatableRepeatable::interpolateTo(cons t AnimatableValue* value, double fraction) const
74 { 74 {
75 WillBeHeapVector<RefPtrWillBeMember<AnimatableValue> > interpolatedValues; 75 WillBeHeapVector<RefPtrWillBeMember<AnimatableValue>> interpolatedValues;
76 bool success = interpolateLists(m_values, toAnimatableRepeatable(value)->m_v alues, fraction, interpolatedValues); 76 bool success = interpolateLists(m_values, toAnimatableRepeatable(value)->m_v alues, fraction, interpolatedValues);
77 if (success) 77 if (success)
78 return create(interpolatedValues); 78 return create(interpolatedValues);
79 return defaultInterpolateTo(this, value, fraction); 79 return defaultInterpolateTo(this, value, fraction);
80 } 80 }
81 81
82 bool AnimatableRepeatable::equalTo(const AnimatableValue* value) const 82 bool AnimatableRepeatable::equalTo(const AnimatableValue* value) const
83 { 83 {
84 const WillBeHeapVector<RefPtrWillBeMember<AnimatableValue> >& otherValues = toAnimatableRepeatable(value)->m_values; 84 const WillBeHeapVector<RefPtrWillBeMember<AnimatableValue>>& otherValues = t oAnimatableRepeatable(value)->m_values;
85 if (m_values.size() != otherValues.size()) 85 if (m_values.size() != otherValues.size())
86 return false; 86 return false;
87 for (size_t i = 0; i < m_values.size(); ++i) { 87 for (size_t i = 0; i < m_values.size(); ++i) {
88 if (!m_values[i]->equals(otherValues[i].get())) 88 if (!m_values[i]->equals(otherValues[i].get()))
89 return false; 89 return false;
90 } 90 }
91 return true; 91 return true;
92 } 92 }
93 93
94 DEFINE_TRACE(AnimatableRepeatable) 94 DEFINE_TRACE(AnimatableRepeatable)
95 { 95 {
96 visitor->trace(m_values); 96 visitor->trace(m_values);
97 AnimatableValue::trace(visitor); 97 AnimatableValue::trace(visitor);
98 } 98 }
99 99
100 } // namespace blink 100 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698