예제 #1
0
 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;
     }
 }
예제 #2
0
        public static BoundsI Merge(BoundsI a, BoundsI b)
        {
            var v = a;

            v.Add(b);
            return(v);
        }
예제 #3
0
 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);
 }
예제 #4
0
 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;
 }
예제 #5
0
        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);
        }
예제 #6
0
 public BoundsI(BoundsI source)
 {
     Minimum = source.Minimum;
     Maximum = source.Maximum;
 }
예제 #7
0
 public Bounds(BoundsI source)
 {
     Minimum = source.Minimum.ToVector3();
     Maximum = source.Maximum.ToVector3();
 }