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

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

Issue 1196913005: Implement animations for Independent CSS Transform Properties (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Fix rotate-interpolation test Created 5 years, 5 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 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef DoubleStyleInterpolation_h 5 #ifndef DoubleStyleInterpolation_h
6 #define DoubleStyleInterpolation_h 6 #define DoubleStyleInterpolation_h
7 7
8 #include "core/CoreExport.h" 8 #include "core/CoreExport.h"
9 #include "core/animation/StyleInterpolation.h" 9 #include "core/animation/StyleInterpolation.h"
10 #include "core/css/CSSPrimitiveValue.h" 10 #include "core/css/CSSPrimitiveValue.h"
11 11
12 namespace blink { 12 namespace blink {
13 13
14 class CORE_EXPORT DoubleStyleInterpolation : public StyleInterpolation { 14 class CORE_EXPORT DoubleStyleInterpolation : public StyleInterpolation {
15 public: 15 public:
16 typedef void NonInterpolableType;
17
16 static PassRefPtrWillBeRawPtr<DoubleStyleInterpolation> create(const CSSValu e& start, const CSSValue& end, CSSPropertyID id, CSSPrimitiveValue::UnitType typ e, InterpolationRange clamp) 18 static PassRefPtrWillBeRawPtr<DoubleStyleInterpolation> create(const CSSValu e& start, const CSSValue& end, CSSPropertyID id, CSSPrimitiveValue::UnitType typ e, InterpolationRange clamp)
17 { 19 {
18 return adoptRefWillBeNoop(new DoubleStyleInterpolation(doubleToInterpola bleValue(start), doubleToInterpolableValue(end), id, type == CSSPrimitiveValue:: CSS_NUMBER, clamp, false)); 20 return adoptRefWillBeNoop(new DoubleStyleInterpolation(doubleToInterpola bleValue(start), doubleToInterpolableValue(end), id, type == CSSPrimitiveValue:: CSS_NUMBER, clamp, false));
19 } 21 }
20 22
21 static PassRefPtrWillBeRawPtr<DoubleStyleInterpolation> maybeCreateFromMotio nRotation(const CSSValue& start, const CSSValue& end, CSSPropertyID); 23 static PassRefPtrWillBeRawPtr<DoubleStyleInterpolation> maybeCreateFromMotio nRotation(const CSSValue& start, const CSSValue& end, CSSPropertyID);
22 24
23 static bool canCreateFrom(const CSSValue&); 25 static bool canCreateFrom(const CSSValue&);
24 26
25 virtual void apply(StyleResolverState&) const override; 27 virtual void apply(StyleResolverState&) const override;
26 28
27 DECLARE_VIRTUAL_TRACE(); 29 DECLARE_VIRTUAL_TRACE();
28 30
31 static PassOwnPtrWillBeRawPtr<InterpolableValue> toInterpolableValue(const C SSValue&, CSSPropertyID = CSSPropertyInvalid);
32 static PassRefPtrWillBeRawPtr<CSSValue> fromInterpolableValue(const Interpol ableValue&, InterpolationRange);
33
29 private: 34 private:
30 DoubleStyleInterpolation(PassOwnPtrWillBeRawPtr<InterpolableValue> start, Pa ssOwnPtrWillBeRawPtr<InterpolableValue> end, CSSPropertyID id, bool isNumber, In terpolationRange clamp, bool flag) 35 DoubleStyleInterpolation(PassOwnPtrWillBeRawPtr<InterpolableValue> start, Pa ssOwnPtrWillBeRawPtr<InterpolableValue> end, CSSPropertyID id, bool isNumber, In terpolationRange clamp, bool flag)
31 : StyleInterpolation(start, end, id) 36 : StyleInterpolation(start, end, id)
32 , m_isNumber(isNumber) 37 , m_isNumber(isNumber)
33 , m_clamp(clamp) 38 , m_clamp(clamp)
34 , m_flag(flag) 39 , m_flag(flag)
35 { } 40 { }
36 41
37 static PassOwnPtrWillBeRawPtr<InterpolableValue> doubleToInterpolableValue(c onst CSSValue&); 42 static PassOwnPtrWillBeRawPtr<InterpolableValue> doubleToInterpolableValue(c onst CSSValue&);
38 static PassOwnPtrWillBeRawPtr<InterpolableValue> motionRotationToInterpolabl eValue(const CSSValue&); 43 static PassOwnPtrWillBeRawPtr<InterpolableValue> motionRotationToInterpolabl eValue(const CSSValue&);
39 44
40 static PassRefPtrWillBeRawPtr<CSSValue> interpolableValueToDouble(Interpolab leValue*, bool, InterpolationRange); 45 static PassRefPtrWillBeRawPtr<CSSValue> interpolableValueToDouble(const Inte rpolableValue*, bool, InterpolationRange);
41 static PassRefPtrWillBeRawPtr<CSSValue> interpolableValueToMotionRotation(In terpolableValue*, bool); 46 static PassRefPtrWillBeRawPtr<CSSValue> interpolableValueToMotionRotation(In terpolableValue*, bool);
42 47
43 bool m_isNumber; 48 bool m_isNumber;
44 InterpolationRange m_clamp; 49 InterpolationRange m_clamp;
45 bool m_flag; 50 bool m_flag;
46 51
47 friend class AnimationDoubleStyleInterpolationTest; 52 friend class AnimationDoubleStyleInterpolationTest;
48 }; 53 };
49 } 54 }
50 #endif 55 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698