import { Vector2, Vector3, Vector4 } from "../GeoMath"; import Curve from "./Curve"; import Type from "./Type"; import Time from "./Time"; import Interval from "./Interval"; import Invariance from "./Invariance"; /** * キーフレームによる線形関数 * * キーフレーム間を数値またはベクトルを線形に補間する関数である。 * * 関数値の型は構築子のパラメータにより number, vector2, vector3 または vector4 を指定する。 */ declare class KFLinearCurve extends Curve { /** number | vector2 | vector3 | vector4 */ private _value_type; /** 1〜4 */ private _dimension; /** >= 2 */ private _num_keyframes; private _key_times; private _key_values; /** * type 型の関数を keyframes により生成する。 * * type は number, vector2, vector3 または vector4 を指定することができる。 * * keyframes を省略したときは type 型の既定値を返す定数関数と同等になる。keyframes の形式に関しては * [[KFLinearCurve.setKeyFrames setKeyFrames()]] を参照のこと。 * * @param type 関数値の型 * @param {object[]} [keyframes] 初期キーフレーム */ constructor(type: Type, keyframes?: (Time | number | Vector2 | Vector3 | Vector4)[]); /** * キーフレーム設定 * * keyframes により、すべてのキーフレームを指定する。 * * 条件 * - keyframes.length >= 4 (キーフレーム数 >= 2) * -: すべての i, j において、i < j ⇔ 時刻i < 時刻j * -: すべての i において、値i は構築子の type 引数で指定した型のインスタンス * * @param {object[]} keyframes [時刻0, 値0, 時刻1, 値1, ...] */ setKeyFrames(keyframes: any): void; isTypeSupported(type: Type): boolean; getValue(time: Time, type: Type): any; getInvariance(interval: Interval): Invariance; /** * time での補間値を取得 * * @param time * * @return 補間値 (this._value_type に適応した型) */ private _getInterpolatedValue; /** * キーフレーム値を生成 * * @param index キーフレームのインデックス * * @return キーフレーム値 (this._value_type に適応した型) */ private _createKeyFrameValue; /** * キーフレーム間の補間値を生成 * * @param i0 先キーフレームのインデックス * @param i1 後キーフレームのインデックス * @param time * * @return 補間値 (this._value_type に適応した型) */ private _createValueBy2Keys; } export default KFLinearCurve; //# sourceMappingURL=KFLinearCurve.d.ts.map