時刻区間を挿入
条件: this._imap に interval と交差する区間が存在しない
計算量: 時刻区間数 n に対して最悪 O(log n)
時刻区間
Invariance を統合
計算量: this の時刻区間数 k source の時刻区間数 n this の各時刻区間範囲内の source の時刻区間数 m (平均値) merged_imap の時刻区間数 p
findSuccessor() を O(1) と考えたとき O(k * (m * log p + log n))
複製を取得
this と同じ内容のインスタンスを生成する。
計算量: 時刻区間数 n に対して O(n)
this の複製
選択範囲に絞った不変性情報を取得
interval で指定した選択範囲と交差する一定値時刻区間を選択して、新しい不変性情報のインスタンスを返す。
選択範囲
範囲を狭めた不変性情報
時刻区間の消去
this が持っているすべての同一値時刻区間から interval の時刻区間部分を消去する。
イメージ的には {@link mapray.animation.Invariance#write write()} で重ねた色の interval 部分を透明にする。
時刻区間
this
同一値の時刻区間を上書き
this が持っているすべての同一値時刻区間に interval の時刻区間部分を上書きする。
イメージ的には interval 部分に毎回新しい色を重ねていく。最終的にできた各色の区間を同一値の時刻区間と見なす。
同一値を持つ時刻区間
this
複数の Invariance を統合
invariances のすべての同一値時刻区間の共通区間を持った Invariance インスタンスを生成する。
統合元のリスト
統合結果
アニメーション関数値の不変性情報
Curve のサブクラスの実装者が、アニメーション関数値が一定となる時刻区間を表明するために利用するクラスである。
Curve.getInvariance