import Time from "./Time"; /** * アニメーション時刻の区間 * * アニメーション時刻の区間を表現するクラスである。 * * このクラスのインスタンスはイミュータブルである。 */ declare class Interval { private _lower; private _upper; private _l_open; private _u_open; /** * 下限 lower と上限 upper の時刻区間を生成する。 * * 端点である lower と upper が区間に含まれるかどうかは l_open と u_open により指定する。 * * | interval | l_open | u_open | * |----------------|--------|--------| * | [lower, upper] | false | false | * | [lower, upper) | false | true | * | (lower, upper] | true | false | * | (lower, upper) | true | true | * * @param lower 区間の下限時刻 * @param upper 区間の上限時刻 * @param lower が区間にが含まれるとき false, 含まれないとき true * @param upper が区間にが含まれるとき false, 含まれないとき true */ constructor(lower: Time, upper: Time, l_open?: boolean, u_open?: boolean); /** * 全時刻区間 */ static get UNIVERSAL(): Interval; /** * 下限時刻 */ get lower(): Time; /** * 上限時刻 */ get upper(): Time; /** * 下限時刻は除外されるか? */ get l_open(): boolean; /** * 上限時刻は除外されるか? */ get u_open(): boolean; /** * 空時刻区間か? * * this が空の時刻区間かどうかを返す。 * * 空時刻区間の場合、区間内に 1 つも時刻が存在しない。 * * @return 空時刻区間のとき true, それ以外のとき false */ isEmpty(): boolean; /** * 単一時刻区間か? * * this が単一時刻の時刻区間かどうかを返す。 * * 単一時刻区間の場合、区間内にただ 1 つの時刻が存在する。 * * 単一時刻区間であるなら lower == upper であり、逆は必ずしも成り立たない。 * * @return 単一時刻区間のとき true, それ以外のとき false */ isSingle(): boolean; /** * 通常時刻区間か? * * this が通常の時刻区間かどうかを返す。 * * 通常時刻区間の場合、区間内に無限個の時刻が存在する。 * * 通常時刻区間であるなら lower < upper であり、逆も成り立つ。 * * @return 通常時刻区間のとき true, それ以外のとき false */ isProper(): boolean; /** * 先行しているか? * * this のすべての時刻が rhs のすべての時刻より先行しているときに true, それ以外のときは false を返す。 * * this または rhs のどちらか、または両方が空時刻区間のときは true を返す。 * * @param rhs 時刻区間 * * @return this が rhs に先行しているとき true, それ以外のとき false */ precedes(rhs: Interval): boolean; /** * 包含しているか? * * rhs のすべての時刻が this に含まれるとき true, それ以外のときは false を返す。 * * rhs が空時刻区間のときは true を返す。 * * これは rhs ⊆ this と等価である。 * * @param rhs 時刻区間 * * @return this が rhs を包含しているとき true, それ以外のとき false */ includes(rhs: Interval): boolean; /** * 時刻を包含しているか? * * rhs の時刻が this に含まれるとき true, それ以外のときは false を返す。 * * このメソッドは this.includes( new Interval( rhs, rhs ) ) と同等である。 * * @param rhs 時刻 * * @return this が rhs を包含しているとき true, それ以外のとき false */ includesTime(rhs: Time): boolean; /** * 共通時刻区間は存在するか? * * !this.getIntersection( rhs ).isEmpty() と同じである。 * * @param rhs 時刻区間 * * @return 共通時刻区間 * * @see [[Interval.getIntersection]] */ hasIntersection(rhs: Interval): boolean; /** * 先行時刻区間を取得 * * this のすべての時刻に対して、先の時刻となるすべての時刻を含む先行時刻区間を返す。 * * this が空時刻区間のときは全時刻区間を返し、this * に表現可能な最初の時刻が含まれるときは空時刻区間を返す。 * * this.getPrecedings().precedes( this ) は常に true を返す。 * * @return 先行時刻区間 */ getPrecedings(): Interval; /** * 後続時刻区間を取得 * * this のすべての時刻に対して、後の時刻となるすべての時刻を含む後続時刻区間を返す。 * * this が空時刻区間のときは全時刻区間を返し、this * に表現可能な最後の時刻が含まれるときは空時刻区間を返す。 * * this.precedes( this.getFollowings() ) は常に true を返す。 * * @return 後続時刻区間 */ getFollowings(): Interval; /** * 共通時刻区間を取得 * * this と rhs の共通時刻区間 (this ∩ rhs) を返す。 * * this と rhs に共通の時刻が存在しなければ空時刻区間を返す。 * * @param rhs 時刻区間 * * @return 共通時刻区間 * * @see [[Interval.hasIntersection]] */ getIntersection(rhs: Interval): Interval; /** * 合併時刻区間を取得 * * this と rhs を合併した時刻集合 (this ∪ rhs) を時刻区間の配列として返す。 * 0 から 2 個の時刻区間を含む配列を返す。配列の要素に空時刻区間は含まれない。 * * 2 要素の配列 v が返されたとき、v[0] と v[1] の間に時刻が存在し、さらに * v[0].precedes( v[1] ) は true となる。 * * @param rhs 時刻区間 * * @return 合併時刻区間 */ getUnion(rhs: Interval): Interval[]; /** * 時刻区間の差を取得 * * this から rhs を差し引いた時刻集合 (this - rhs) を時刻区間の配列として返す。 * * 0 から 2 個の時刻区間を含む配列を返す。配列の要素に空時刻区間は含まれない。 * * 2 要素の配列 v が返されたとき、v[0] と v[1] の間に時刻が存在し、さらに * v[0].precedes( v[1] ) は true となる。 * * @param rhs 時刻区間 * * @return 時刻区間の差 */ getDifference(rhs: Interval): Interval[]; /** * 補時刻区間を取得 * * 全時刻区間 から this を差し引いた時刻集合を時刻区間の配列として返す。 * * 0 から 2 個の時刻区間を含む配列を返す。配列の要素に空時刻区間は含まれない。 * * 2 要素の配列 v が返されたとき、v[0] と v[1] の間に時刻が存在し、さらに * v[0].precedes( v[1] ) は true となる。 * * @return 補時刻区間 */ getComplement(): Interval[]; /** * 下限時刻区間との共通時刻区間を取得 * * this ∩ Lower(bound, open) → Interval * * @param bound * @param open * * @return 共通時刻区間 */ private _getIntersectionByLower; /** * 上限時刻区間との共通時刻区間を取得 * * this ∩ Upper(bound, open) → Interval * * @param bound * @param open * * @return 共通時刻区間 */ private _getIntersectionByUpper; } export default Interval; //# sourceMappingURL=Interval.d.ts.map