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

Side by Side Diff: Source/core/svg/animation/SMILTime.h

Issue 298043005: Improve comparison of intervals in SVGSMILElement::resolveFirstInterval (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: 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 | « no previous file | Source/core/svg/animation/SVGSMILElement.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) 2008 Apple Inc. All rights reserved. 2 * Copyright (C) 2008 Apple 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 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 } 73 }
74 74
75 const SMILTime& time() const { return m_time; } 75 const SMILTime& time() const { return m_time; }
76 bool originIsScript() const { return m_origin == ScriptOrigin; } 76 bool originIsScript() const { return m_origin == ScriptOrigin; }
77 77
78 private: 78 private:
79 SMILTime m_time; 79 SMILTime m_time;
80 Origin m_origin; 80 Origin m_origin;
81 }; 81 };
82 82
83 struct SMILInterval {
84 SMILInterval() { }
85 SMILInterval(const SMILTime& begin, const SMILTime& end) : begin(begin), end (end) { }
86
87 SMILTime begin;
88 SMILTime end;
89 };
90
83 inline bool operator==(const SMILTime& a, const SMILTime& b) { return a.isFinite () && a.value() == b.value(); } 91 inline bool operator==(const SMILTime& a, const SMILTime& b) { return a.isFinite () && a.value() == b.value(); }
84 inline bool operator!(const SMILTime& a) { return !a.isFinite() || !a.value(); } 92 inline bool operator!(const SMILTime& a) { return !a.isFinite() || !a.value(); }
85 inline bool operator!=(const SMILTime& a, const SMILTime& b) { return !operator= =(a, b); } 93 inline bool operator!=(const SMILTime& a, const SMILTime& b) { return !operator= =(a, b); }
86 inline bool operator>(const SMILTime& a, const SMILTime& b) { return a.value() > b.value(); } 94 inline bool operator>(const SMILTime& a, const SMILTime& b) { return a.value() > b.value(); }
87 inline bool operator<(const SMILTime& a, const SMILTime& b) { return a.value() < b.value(); } 95 inline bool operator<(const SMILTime& a, const SMILTime& b) { return a.value() < b.value(); }
88 inline bool operator>=(const SMILTime& a, const SMILTime& b) { return a.value() > b.value() || operator==(a, b); } 96 inline bool operator>=(const SMILTime& a, const SMILTime& b) { return a.value() > b.value() || operator==(a, b); }
89 inline bool operator<=(const SMILTime& a, const SMILTime& b) { return a.value() < b.value() || operator==(a, b); } 97 inline bool operator<=(const SMILTime& a, const SMILTime& b) { return a.value() < b.value() || operator==(a, b); }
90 inline bool operator<(const SMILTimeWithOrigin& a, const SMILTimeWithOrigin& b) { return a.time() < b.time(); } 98 inline bool operator<(const SMILTimeWithOrigin& a, const SMILTimeWithOrigin& b) { return a.time() < b.time(); }
91 99
92 SMILTime operator+(const SMILTime&, const SMILTime&); 100 SMILTime operator+(const SMILTime&, const SMILTime&);
93 SMILTime operator-(const SMILTime&, const SMILTime&); 101 SMILTime operator-(const SMILTime&, const SMILTime&);
94 // So multiplying times does not make too much sense but SMIL defines it for dur ation * repeatCount 102 // So multiplying times does not make too much sense but SMIL defines it for dur ation * repeatCount
95 SMILTime operator*(const SMILTime&, const SMILTime&); 103 SMILTime operator*(const SMILTime&, const SMILTime&);
96 104
105 inline bool operator!=(const SMILInterval& a, const SMILInterval& b)
106 {
107 // Compare the "raw" values since the operator!= for SMILTime always return
pdr. 2014/05/28 21:56:24 Please file a bug about this. This is crazy: inlin
fs 2014/05/30 08:02:47 I'm not sure it's 100% crazy (maybe 84% crazy) - a
108 // true for non-finite times.
109 return a.begin.value() != b.begin.value() || a.end.value() != b.end.value();
110 }
111
97 } 112 }
98 113
99 #endif // SMILTime_h 114 #endif // SMILTime_h
OLDNEW
« no previous file with comments | « no previous file | Source/core/svg/animation/SVGSMILElement.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698