12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright 2012 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "cc/animation/animation_curve.h" 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/logging.h" 8f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "cc/animation/scroll_offset_animation_curve.h" 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace cc { 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 121e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)const ColorAnimationCurve* AnimationCurve::ToColorAnimationCurve() const { 131e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) DCHECK(Type() == AnimationCurve::Color); 141e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) return static_cast<const ColorAnimationCurve*>(this); 151e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)} 161e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 171e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)AnimationCurve::CurveType ColorAnimationCurve::Type() const { return Color; } 181e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const FloatAnimationCurve* AnimationCurve::ToFloatAnimationCurve() const { 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) DCHECK(Type() == AnimationCurve::Float); 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return static_cast<const FloatAnimationCurve*>(this); 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)AnimationCurve::CurveType FloatAnimationCurve::Type() const { 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return Float; 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const TransformAnimationCurve* AnimationCurve::ToTransformAnimationCurve() 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const { 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) DCHECK(Type() == AnimationCurve::Transform); 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return static_cast<const TransformAnimationCurve*>(this); 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)AnimationCurve::CurveType TransformAnimationCurve::Type() const { 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return Transform; 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 38ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdochconst FilterAnimationCurve* AnimationCurve::ToFilterAnimationCurve() const { 39ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch DCHECK(Type() == AnimationCurve::Filter); 40ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch return static_cast<const FilterAnimationCurve*>(this); 41ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch} 42ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 43ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben MurdochAnimationCurve::CurveType FilterAnimationCurve::Type() const { 44ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch return Filter; 45ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch} 46ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 47f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)const ScrollOffsetAnimationCurve* AnimationCurve::ToScrollOffsetAnimationCurve() 48f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const { 49f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) DCHECK(Type() == AnimationCurve::ScrollOffset); 50f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) return static_cast<const ScrollOffsetAnimationCurve*>(this); 51f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 52f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 53f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)ScrollOffsetAnimationCurve* AnimationCurve::ToScrollOffsetAnimationCurve() { 54f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) DCHECK(Type() == AnimationCurve::ScrollOffset); 55f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) return static_cast<ScrollOffsetAnimationCurve*>(this); 56f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 57f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace cc 59