blob: 17fcc23cf2e3dba2e6e313a73fff93e3289c3e7d [file] [log] [blame]
// Copyright 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ui/gfx/animation/keyframe/animation_curve.h"
#include "base/check.h"
namespace gfx {
bool AnimationCurve::PreservesAxisAlignment() const {
return true;
}
bool AnimationCurve::MaximumScale(float* max_scale) const {
return false;
}
base::TimeDelta AnimationCurve::TickInterval() const {
return base::TimeDelta();
}
#define DEFINE_ANIMATION_CURVE(Name, CurveType) \
void Name##AnimationCurve::Tick(base::TimeDelta t, int property_id, \
KeyframeModel* keyframe_model) const { \
if (target_) { \
target_->On##Name##Animated(GetValue(t), property_id, keyframe_model); \
} \
} \
int Name##AnimationCurve::Type() const { return AnimationCurve::CurveType; } \
const char* Name##AnimationCurve::TypeName() const { return #Name; } \
const Name##AnimationCurve* Name##AnimationCurve::To##Name##AnimationCurve( \
const AnimationCurve* c) { \
DCHECK_EQ(AnimationCurve::CurveType, c->Type()); \
return static_cast<const Name##AnimationCurve*>(c); \
} \
Name##AnimationCurve* Name##AnimationCurve::To##Name##AnimationCurve( \
AnimationCurve* c) { \
DCHECK_EQ(AnimationCurve::CurveType, c->Type()); \
return static_cast<Name##AnimationCurve*>(c); \
}
DEFINE_ANIMATION_CURVE(Transform, TRANSFORM)
DEFINE_ANIMATION_CURVE(Float, FLOAT)
DEFINE_ANIMATION_CURVE(Size, SIZE)
DEFINE_ANIMATION_CURVE(Color, COLOR)
DEFINE_ANIMATION_CURVE(Rect, RECT)
} // namespace gfx