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

Side by Side Diff: Source/core/animation/TimingCalculations.h

Issue 1113173003: Web Animations: Update naming to reflect spec changes (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: No, really. Created 5 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/animation/Timing.idl ('k') | Source/core/animation/TimingCalculationsTest.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 13 matching lines...) Expand all
24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */ 29 */
30 30
31 #ifndef TimingCalculations_h 31 #ifndef TimingCalculations_h
32 #define TimingCalculations_h 32 #define TimingCalculations_h
33 33
34 #include "core/animation/AnimationNode.h" 34 #include "core/animation/AnimationEffect.h"
35 #include "core/animation/Timing.h" 35 #include "core/animation/Timing.h"
36 #include "platform/animation/AnimationUtilities.h" 36 #include "platform/animation/AnimationUtilities.h"
37 #include "wtf/MathExtras.h" 37 #include "wtf/MathExtras.h"
38 38
39 namespace blink { 39 namespace blink {
40 40
41 static inline double multiplyZeroAlwaysGivesZero(double x, double y) 41 static inline double multiplyZeroAlwaysGivesZero(double x, double y)
42 { 42 {
43 ASSERT(!isNull(x)); 43 ASSERT(!isNull(x));
44 ASSERT(!isNull(y)); 44 ASSERT(!isNull(y));
45 return x && y ? x * y : 0; 45 return x && y ? x * y : 0;
46 } 46 }
47 47
48 static inline AnimationNode::Phase calculatePhase(double activeDuration, double localTime, const Timing& specified) 48 static inline AnimationEffect::Phase calculatePhase(double activeDuration, doubl e localTime, const Timing& specified)
49 { 49 {
50 ASSERT(activeDuration >= 0); 50 ASSERT(activeDuration >= 0);
51 if (isNull(localTime)) 51 if (isNull(localTime))
52 return AnimationNode::PhaseNone; 52 return AnimationEffect::PhaseNone;
53 if (localTime < specified.startDelay) 53 if (localTime < specified.startDelay)
54 return AnimationNode::PhaseBefore; 54 return AnimationEffect::PhaseBefore;
55 if (localTime >= specified.startDelay + activeDuration) 55 if (localTime >= specified.startDelay + activeDuration)
56 return AnimationNode::PhaseAfter; 56 return AnimationEffect::PhaseAfter;
57 return AnimationNode::PhaseActive; 57 return AnimationEffect::PhaseActive;
58 } 58 }
59 59
60 static inline bool isActiveInParentPhase(AnimationNode::Phase parentPhase, Timin g::FillMode fillMode) 60 static inline bool isActiveInParentPhase(AnimationEffect::Phase parentPhase, Tim ing::FillMode fillMode)
61 { 61 {
62 switch (parentPhase) { 62 switch (parentPhase) {
63 case AnimationNode::PhaseBefore: 63 case AnimationEffect::PhaseBefore:
64 return fillMode == Timing::FillModeBackwards || fillMode == Timing::Fill ModeBoth; 64 return fillMode == Timing::FillModeBackwards || fillMode == Timing::Fill ModeBoth;
65 case AnimationNode::PhaseActive: 65 case AnimationEffect::PhaseActive:
66 return true; 66 return true;
67 case AnimationNode::PhaseAfter: 67 case AnimationEffect::PhaseAfter:
68 return fillMode == Timing::FillModeForwards || fillMode == Timing::FillM odeBoth; 68 return fillMode == Timing::FillModeForwards || fillMode == Timing::FillM odeBoth;
69 default: 69 default:
70 ASSERT_NOT_REACHED(); 70 ASSERT_NOT_REACHED();
71 return false; 71 return false;
72 } 72 }
73 } 73 }
74 74
75 static inline double calculateActiveTime(double activeDuration, Timing::FillMode fillMode, double localTime, AnimationNode::Phase parentPhase, AnimationNode::Ph ase phase, const Timing& specified) 75 static inline double calculateActiveTime(double activeDuration, Timing::FillMode fillMode, double localTime, AnimationEffect::Phase parentPhase, AnimationEffect ::Phase phase, const Timing& specified)
76 { 76 {
77 ASSERT(activeDuration >= 0); 77 ASSERT(activeDuration >= 0);
78 ASSERT(phase == calculatePhase(activeDuration, localTime, specified)); 78 ASSERT(phase == calculatePhase(activeDuration, localTime, specified));
79 79
80 switch (phase) { 80 switch (phase) {
81 case AnimationNode::PhaseBefore: 81 case AnimationEffect::PhaseBefore:
82 if (fillMode == Timing::FillModeBackwards || fillMode == Timing::FillMod eBoth) 82 if (fillMode == Timing::FillModeBackwards || fillMode == Timing::FillMod eBoth)
83 return 0; 83 return 0;
84 return nullValue(); 84 return nullValue();
85 case AnimationNode::PhaseActive: 85 case AnimationEffect::PhaseActive:
86 if (isActiveInParentPhase(parentPhase, fillMode)) 86 if (isActiveInParentPhase(parentPhase, fillMode))
87 return localTime - specified.startDelay; 87 return localTime - specified.startDelay;
88 return nullValue(); 88 return nullValue();
89 case AnimationNode::PhaseAfter: 89 case AnimationEffect::PhaseAfter:
90 if (fillMode == Timing::FillModeForwards || fillMode == Timing::FillMode Both) 90 if (fillMode == Timing::FillModeForwards || fillMode == Timing::FillMode Both)
91 return activeDuration; 91 return activeDuration;
92 return nullValue(); 92 return nullValue();
93 case AnimationNode::PhaseNone: 93 case AnimationEffect::PhaseNone:
94 ASSERT(isNull(localTime)); 94 ASSERT(isNull(localTime));
95 return nullValue(); 95 return nullValue();
96 default: 96 default:
97 ASSERT_NOT_REACHED(); 97 ASSERT_NOT_REACHED();
98 return nullValue(); 98 return nullValue();
99 } 99 }
100 } 100 }
101 101
102 static inline double calculateScaledActiveTime(double activeDuration, double act iveTime, double startOffset, const Timing& specified) 102 static inline double calculateScaledActiveTime(double activeDuration, double act iveTime, double startOffset, const Timing& specified)
103 { 103 {
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 if (!std::isfinite(iterationDuration)) 189 if (!std::isfinite(iterationDuration))
190 return directedTime; 190 return directedTime;
191 double timeFraction = directedTime / iterationDuration; 191 double timeFraction = directedTime / iterationDuration;
192 ASSERT(timeFraction >= 0 && timeFraction <= 1); 192 ASSERT(timeFraction >= 0 && timeFraction <= 1);
193 return multiplyZeroAlwaysGivesZero(iterationDuration, specified.timingFuncti on->evaluate(timeFraction, accuracyForDuration(iterationDuration))); 193 return multiplyZeroAlwaysGivesZero(iterationDuration, specified.timingFuncti on->evaluate(timeFraction, accuracyForDuration(iterationDuration)));
194 } 194 }
195 195
196 } // namespace blink 196 } // namespace blink
197 197
198 #endif 198 #endif
OLDNEW
« no previous file with comments | « Source/core/animation/Timing.idl ('k') | Source/core/animation/TimingCalculationsTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698