50 lines
1.1 KiB
C#
50 lines
1.1 KiB
C#
|
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));
|
||
|
}
|
||
|
}
|
||
|
}
|