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. 4 5#include "cc/animation/animation_curve.h" 6 7#include "base/logging.h" 8#include "cc/animation/scroll_offset_animation_curve.h" 9 10namespace cc { 11 12const ColorAnimationCurve* AnimationCurve::ToColorAnimationCurve() const { 13 DCHECK(Type() == AnimationCurve::Color); 14 return static_cast<const ColorAnimationCurve*>(this); 15} 16 17AnimationCurve::CurveType ColorAnimationCurve::Type() const { return Color; } 18 19const FloatAnimationCurve* AnimationCurve::ToFloatAnimationCurve() const { 20 DCHECK(Type() == AnimationCurve::Float); 21 return static_cast<const FloatAnimationCurve*>(this); 22} 23 24AnimationCurve::CurveType FloatAnimationCurve::Type() const { 25 return Float; 26} 27 28const TransformAnimationCurve* AnimationCurve::ToTransformAnimationCurve() 29 const { 30 DCHECK(Type() == AnimationCurve::Transform); 31 return static_cast<const TransformAnimationCurve*>(this); 32} 33 34AnimationCurve::CurveType TransformAnimationCurve::Type() const { 35 return Transform; 36} 37 38const FilterAnimationCurve* AnimationCurve::ToFilterAnimationCurve() const { 39 DCHECK(Type() == AnimationCurve::Filter); 40 return static_cast<const FilterAnimationCurve*>(this); 41} 42 43AnimationCurve::CurveType FilterAnimationCurve::Type() const { 44 return Filter; 45} 46 47const ScrollOffsetAnimationCurve* AnimationCurve::ToScrollOffsetAnimationCurve() 48 const { 49 DCHECK(Type() == AnimationCurve::ScrollOffset); 50 return static_cast<const ScrollOffsetAnimationCurve*>(this); 51} 52 53ScrollOffsetAnimationCurve* AnimationCurve::ToScrollOffsetAnimationCurve() { 54 DCHECK(Type() == AnimationCurve::ScrollOffset); 55 return static_cast<ScrollOffsetAnimationCurve*>(this); 56} 57 58} // namespace cc 59