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

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

Issue 293893003: Web Animations: Rename TimedItem to AnimationSource (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Update expectations. Created 6 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 10 matching lines...) Expand all
21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
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 TimedItemCalculations_h 31 #ifndef TimingCalculations_h
32 #define TimedItemCalculations_h 32 #define TimingCalculations_h
33 33
34 #include "core/animation/TimedItem.h" 34 #include "core/animation/AnimationSource.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 WebCore { 39 namespace WebCore {
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 TimedItem::Phase calculatePhase(double activeDuration, double loca lTime, const Timing& specified) 48 static inline AnimationSource::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 TimedItem::PhaseNone; 52 return AnimationSource::PhaseNone;
53 if (localTime < specified.startDelay) 53 if (localTime < specified.startDelay)
54 return TimedItem::PhaseBefore; 54 return AnimationSource::PhaseBefore;
55 if (localTime >= specified.startDelay + activeDuration) 55 if (localTime >= specified.startDelay + activeDuration)
56 return TimedItem::PhaseAfter; 56 return AnimationSource::PhaseAfter;
57 return TimedItem::PhaseActive; 57 return AnimationSource::PhaseActive;
58 } 58 }
59 59
60 static inline bool isActiveInParentPhase(TimedItem::Phase parentPhase, Timing::F illMode fillMode) 60 static inline bool isActiveInParentPhase(AnimationSource::Phase parentPhase, Tim ing::FillMode fillMode)
61 { 61 {
62 switch (parentPhase) { 62 switch (parentPhase) {
63 case TimedItem::PhaseBefore: 63 case AnimationSource::PhaseBefore:
64 return fillMode == Timing::FillModeBackwards || fillMode == Timing::Fill ModeBoth; 64 return fillMode == Timing::FillModeBackwards || fillMode == Timing::Fill ModeBoth;
65 case TimedItem::PhaseActive: 65 case AnimationSource::PhaseActive:
66 return true; 66 return true;
67 case TimedItem::PhaseAfter: 67 case AnimationSource::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, TimedItem::Phase parentPhase, TimedItem::Phase phas e, const Timing& specified) 75 static inline double calculateActiveTime(double activeDuration, Timing::FillMode fillMode, double localTime, AnimationSource::Phase parentPhase, AnimationSource ::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 TimedItem::PhaseBefore: 81 case AnimationSource::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 TimedItem::PhaseActive: 85 case AnimationSource::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 TimedItem::PhaseAfter: 89 case AnimationSource::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 TimedItem::PhaseNone: 93 case AnimationSource::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 WebCore 196 } // namespace WebCore
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