// Copyright 2014 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. #ifndef SKY_ENGINE_CORE_ANIMATION_CSS_CSSTIMINGDATA_H_ #define SKY_ENGINE_CORE_ANIMATION_CSS_CSSTIMINGDATA_H_ #include "sky/engine/platform/animation/TimingFunction.h" #include "sky/engine/platform/heap/Handle.h" #include "sky/engine/wtf/Vector.h" namespace blink { struct Timing; class CSSTimingData { public: ~CSSTimingData() { } const Vector& delayList() const { return m_delayList; } const Vector& durationList() const { return m_durationList; } const Vector >& timingFunctionList() const { return m_timingFunctionList; } Vector& delayList() { return m_delayList; } Vector& durationList() { return m_durationList; } Vector >& timingFunctionList() { return m_timingFunctionList; } static double initialDelay() { return 0; } static double initialDuration() { return 0; } static PassRefPtr initialTimingFunction() { return CubicBezierTimingFunction::preset(CubicBezierTimingFunction::Ease); } template static const T& getRepeated(const Vector& v, size_t index) { return v[index % v.size()]; } protected: CSSTimingData(); explicit CSSTimingData(const CSSTimingData&); Timing convertToTiming(size_t index) const; private: Vector m_delayList; Vector m_durationList; Vector > m_timingFunctionList; }; } // namespace blink #endif // SKY_ENGINE_CORE_ANIMATION_CSS_CSSTIMINGDATA_H_