public void Add(BoundsI b) { if (b.Minimum.X < Minimum.X) { Minimum.X = b.Minimum.X; } if (b.Minimum.Y < Minimum.Y) { Minimum.Y = b.Minimum.Y; } if (b.Minimum.Z < Minimum.Z) { Minimum.Z = b.Minimum.Z; } if (b.Maximum.X > Maximum.X) { Maximum.X = b.Maximum.X; } if (b.Maximum.Y > Maximum.Y) { Maximum.Y = b.Maximum.Y; } if (b.Maximum.Z > Maximum.Z) { Maximum.Z = b.Maximum.Z; } }
public static BoundsI Merge(BoundsI a, BoundsI b) { var v = a; v.Add(b); return(v); }
public bool Intersects(BoundsI b) { if (b.Maximum.X < Minimum.X || b.Maximum.Y < Minimum.Y || b.Maximum.Z < Minimum.Z || b.Minimum.X > Maximum.X || b.Minimum.Y > Maximum.Y || b.Minimum.Z > Maximum.Z) { return(false); } return(true); }
public void Intersection(BoundsI v, out BoundsI result) { result.Minimum.X = (v.Minimum.X > Minimum.X) ? v.Minimum.X : Minimum.X; result.Minimum.Y = (v.Minimum.Y > Minimum.Y) ? v.Minimum.Y : Minimum.Y; result.Minimum.Z = (v.Minimum.Z > Minimum.Z) ? v.Minimum.Z : Minimum.Z; result.Maximum.X = (v.Maximum.X < Maximum.X) ? v.Maximum.X : Maximum.X; result.Maximum.Y = (v.Maximum.Y < Maximum.Y) ? v.Maximum.Y : Maximum.Y; result.Maximum.Z = (v.Maximum.Z < Maximum.Z) ? v.Maximum.Z : Maximum.Z; }
public BoundsI Intersection(BoundsI v) { BoundsI result; result.Minimum.X = (v.Minimum.X > Minimum.X) ? v.Minimum.X : Minimum.X; result.Minimum.Y = (v.Minimum.Y > Minimum.Y) ? v.Minimum.Y : Minimum.Y; result.Minimum.Z = (v.Minimum.Z > Minimum.Z) ? v.Minimum.Z : Minimum.Z; result.Maximum.X = (v.Maximum.X < Maximum.X) ? v.Maximum.X : Maximum.X; result.Maximum.Y = (v.Maximum.Y < Maximum.Y) ? v.Maximum.Y : Maximum.Y; result.Maximum.Z = (v.Maximum.Z < Maximum.Z) ? v.Maximum.Z : Maximum.Z; return(result); }
public BoundsI(BoundsI source) { Minimum = source.Minimum; Maximum = source.Maximum; }
public Bounds(BoundsI source) { Minimum = source.Minimum.ToVector3(); Maximum = source.Maximum.ToVector3(); }