You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.1 KiB
49 lines
1.1 KiB
using System; |
|
using UnityEngine; |
|
|
|
namespace UnityEditor.Timeline |
|
{ |
|
struct Range |
|
{ |
|
public double start; |
|
public double end; |
|
public double length { get { return end - start; } } |
|
|
|
public static Range Union(Range lhs, Range rhs) |
|
{ |
|
return new Range |
|
{ |
|
start = Math.Min(lhs.start, rhs.start), |
|
end = Math.Max(lhs.end, rhs.end) |
|
}; |
|
} |
|
|
|
public static Range Intersection(Range lhs, Range rhs) |
|
{ |
|
var s = Math.Max(lhs.start, rhs.start); |
|
var e = Math.Min(lhs.end, rhs.end); |
|
|
|
if (s > e) |
|
{ |
|
// No intersection returns a 0-length range from 0 to 0 |
|
return new Range(); |
|
} |
|
|
|
return new Range |
|
{ |
|
start = s, |
|
end = e |
|
}; |
|
} |
|
|
|
public override string ToString() |
|
{ |
|
return ToString("F3"); |
|
} |
|
|
|
public string ToString(string format) |
|
{ |
|
return UnityString.Format("({0}, {1})", start.ToString(format), end.ToString(format)); |
|
} |
|
} |
|
}
|
|
|