/// <summary> /// Creates a new bounding boxes from two bounding boxes /// </summary> /// <param name="box"></param> /// <param name="box2"></param> /// <returns></returns> public static BBox Union(BBox box, BBox box2) { var ret = new BBox { PMin = { X = Math.Min(box.PMin.X, box2.PMin.X), Y = Math.Min(box.PMin.Y, box2.PMin.Y), Z = Math.Min(box.PMin.Z, box2.PMin.Z) }, PMax = { X = Math.Max(box.PMax.X, box2.PMax.X), Y = Math.Max(box.PMax.Y, box2.PMax.Y), Z = Math.Max(box.PMax.Z, box2.PMax.Z) } }; return(ret); }
/// <summary> /// Adds a point to the bounding box, recalculating it. /// </summary> /// <param name="box"></param> /// <param name="point"></param> /// <returns></returns> public static BBox Union(BBox box, Vector3 point) { var ret = new BBox { PMin = { X = Math.Min(box.PMin.X, point.X), Y = Math.Min(box.PMin.Y, point.Y), Z = Math.Min(box.PMin.Z, point.Z) }, PMax = { X = Math.Max(box.PMax.X, point.X), Y = Math.Max(box.PMax.Y, point.Y), Z = Math.Max(box.PMax.Z, point.Z) } }; return(ret); }