public static Range GetBounds(Range p_Range1, Range p_Range2)
{
if (p_Range1.IsEmpty())
return p_Range2;
else if (p_Range2.IsEmpty())
return p_Range1;
else
return new Range(Position.Min(p_Range1.Start, p_Range2.Start),
Position.Max(p_Range1.End, p_Range2.End), false);
}