1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "cc/animation/animation_curve.h"
7 #include "base/logging.h"
8 #include "cc/animation/scroll_offset_animation_curve.h"
12 const ColorAnimationCurve
* AnimationCurve::ToColorAnimationCurve() const {
13 DCHECK(Type() == AnimationCurve::Color
);
14 return static_cast<const ColorAnimationCurve
*>(this);
17 AnimationCurve::CurveType
ColorAnimationCurve::Type() const { return Color
; }
19 const FloatAnimationCurve
* AnimationCurve::ToFloatAnimationCurve() const {
20 DCHECK(Type() == AnimationCurve::Float
);
21 return static_cast<const FloatAnimationCurve
*>(this);
24 AnimationCurve::CurveType
FloatAnimationCurve::Type() const {
28 const TransformAnimationCurve
* AnimationCurve::ToTransformAnimationCurve()
30 DCHECK(Type() == AnimationCurve::Transform
);
31 return static_cast<const TransformAnimationCurve
*>(this);
34 AnimationCurve::CurveType
TransformAnimationCurve::Type() const {
38 const FilterAnimationCurve
* AnimationCurve::ToFilterAnimationCurve() const {
39 DCHECK(Type() == AnimationCurve::Filter
);
40 return static_cast<const FilterAnimationCurve
*>(this);
43 AnimationCurve::CurveType
FilterAnimationCurve::Type() const {
47 const ScrollOffsetAnimationCurve
* AnimationCurve::ToScrollOffsetAnimationCurve()
49 DCHECK(Type() == AnimationCurve::ScrollOffset
);
50 return static_cast<const ScrollOffsetAnimationCurve
*>(this);
53 ScrollOffsetAnimationCurve
* AnimationCurve::ToScrollOffsetAnimationCurve() {
54 DCHECK(Type() == AnimationCurve::ScrollOffset
);
55 return static_cast<ScrollOffsetAnimationCurve
*>(this);