/// <summary> /// Returns the intersection between the two ranges. /// If one of the range is empty then the return is empty. /// </summary> /// <param name="p_Range1">The range1.</param> /// <param name="p_Range2">The range2.</param> /// <returns></returns> public static Range Intersect(Range p_Range1, Range p_Range2) { if (p_Range1.IsEmpty() || p_Range2.IsEmpty()) { return(Range.Empty); } return(new Range(Position.MergeMinor(p_Range1.Start, p_Range2.Start), Position.MergeMinor(p_Range1.End, p_Range2.End), false)); }
/// <summary> /// Returns a range with the smaller Start and the bigger End, the Union of the two ranges. /// If one of the range is empty then returns other range. /// </summary> /// <param name="p_Range1">The range1.</param> /// <param name="p_Range2">The range2.</param> /// <returns></returns> public static Range Union(Range p_Range1, Range p_Range2) { if (p_Range1.IsEmpty()) { return(p_Range2); } else if (p_Range2.IsEmpty()) { return(p_Range1); } return(new Range(Position.MergeMinor(p_Range1.Start, p_Range2.Start), Position.MergeMajor(p_Range1.End, p_Range2.End), false)); }