/// <summary> /// /// </summary> /// <returns></returns> protected override object ComputeBounds() { Interval bounds = null; for (IEnumerator i = ChildBoundables.GetEnumerator(); i.MoveNext(); ) { IBoundable childBoundable = (IBoundable)i.Current; if (bounds == null) bounds = new Interval((Interval)childBoundable.Bounds); else bounds.ExpandToInclude((Interval)childBoundable.Bounds); } return bounds; }
/// <summary> /// /// </summary> /// <param name="other"></param> /// <returns><c>this</c></returns> public virtual Interval ExpandToInclude(Interval other) { max = Math.Max(max, other.max); min = Math.Min(min, other.min); return this; }
/// <summary> /// /// </summary> /// <param name="other"></param> /// <returns></returns> public virtual bool Intersects(Interval other) { return !(other.min > max || other.max < min); }
/// <summary> /// /// </summary> /// <param name="other"></param> public Interval(Interval other) : this(other.min, other.max) { }