import Interval from "./Interval"; /** * アニメーション関数値の不変性情報 * * Curve のサブクラスの実装者が、アニメーション関数値が一定となる時刻区間を表明するために利用するクラスである。 * * @see [[Curve.getInvariance]] */ declare class Invariance { private _imap; constructor(); /** * 複製を取得 * * this と同じ内容のインスタンスを生成する。 * *

計算量: 時刻区間数 n に対して O(n)

* * @return {mapray.animation.Invariance} this の複製 */ clone(): Invariance; /** * 同一値の時刻区間を上書き * * this が持っているすべての同一値時刻区間に interval の時刻区間部分を上書きする。 * * イメージ的には interval 部分に毎回新しい色を重ねていく。最終的にできた各色の区間を同一値の時刻区間と見なす。 * * @param interval 同一値を持つ時刻区間 * * @return this */ write(interval: Interval): Invariance; /** * 時刻区間の消去 * * this が持っているすべての同一値時刻区間から interval の時刻区間部分を消去する。 * * イメージ的には {@link mapray.animation.Invariance#write write()} で重ねた色の * interval 部分を透明にする。 * * @param interval 時刻区間 * * @return this */ remove(interval: Interval): Invariance; /** * 選択範囲に絞った不変性情報を取得 * * interval で指定した選択範囲と交差する一定値時刻区間を選択して、新しい不変性情報のインスタンスを返す。 * * @param narrow 選択範囲 * * @return 範囲を狭めた不変性情報 */ getNarrowed(narrow: Interval): Invariance; /** * 複数の Invariance を統合 * * invariances のすべての同一値時刻区間の共通区間を持った Invariance インスタンスを生成する。 * * @param invariances 統合元のリスト * * @return 統合結果 */ static merge(invariances: Invariance[]): Invariance; /** * item から interval 部分を削り取る * * item の時刻区間から interval 部分を消去する。 * * ただし item が null のときは何もしない。 * * 最後に item は無効になる。 * * @param item * @param interval */ private _chopItem; /** * 時刻区間を挿入 * * 条件: this._imap に interval と交差する区間が存在しない * * 計算量: 時刻区間数 n に対して最悪 O(log n) * * @param interval 時刻区間 */ private _insert; /** * Invariance を統合 * * 計算量: * this の時刻区間数 k * source の時刻区間数 n * this の各時刻区間範囲内の source の時刻区間数 m (平均値) * merged_imap の時刻区間数 p * * findSuccessor() を O(1) と考えたとき * O(k * (m * log p + log n)) * * @param source */ private _merge_from_invariance; } export default Invariance; //# sourceMappingURL=Invariance.d.ts.map