#pragma once//☀SDXFramework

namespace SDX
{
/** 変化する数値を表す抽象クラス.*/
///    \include SpeedSample.h
class ISpeed
{
protected:
    double speed;
public:
    ISpeed(double 速度):
            speed(速度)
    {}

    /** 現在の速度を取得.*/
    virtual double Get() const
    {
        return speed; 
    };

    /** 更新後、速度を取得.*/
    double Ease()
    {
        Update();
        return Get();
    }

    /** 速度を更新.*/
    virtual void Update() = 0;

    /** 速度を掛ける.*/
    virtual void Multi(double 倍率)
    {
        speed *= 倍率;
    }

    /** 速度を加算する.*/
    virtual void Add(double 加算値)
    {
        speed += 加算値;
    }
};
}