/// <summary> /// /// </summary> /// <param name="a"></param> /// <param name="b"></param> /// <returns></returns> public static Interval2d Union(Interval2d a, Interval2d b) { a.X = Intervald.Union(a.X, b.X); a.Y = Intervald.Union(a.Y, b.Y); return(a); }
/// <summary> /// /// </summary> /// <param name="point"></param> /// <param name="from"></param> /// <param name="to"></param> /// <returns></returns> public static Vec2d Remap(Vec2d point, Interval2d from, Interval2d to) { point.X = Intervald.Remap(point.X, from.X, to.X); point.Y = Intervald.Remap(point.Y, from.Y, to.Y); return(point); }
/// <summary> /// /// </summary> /// <param name="d0"></param> /// <param name="d1"></param> /// <returns></returns> public static Interval2d Intersect(Interval2d d0, Interval2d d1) { d0.X = Intervald.Intersect(d0.X, d1.X); d0.Y = Intervald.Intersect(d0.Y, d1.Y); return(d0); }
/// <summary> /// Returns a random 2d vector which has components within the given interval /// </summary> /// <param name="random"></param> /// <param name="interval"></param> /// <returns></returns> public static Vec2d NextVec2d(this Random random, Interval2d interval) { return(new Vec2d( interval.X.Evaluate(random.NextDouble()), interval.Y.Evaluate(random.NextDouble()))); }