Exemple #1
0
        // Token: 0x060003E8 RID: 1000 RVA: 0x000118EC File Offset: 0x0000FAEC
        public static bool Intersects(this Segment2 segment, AxisAlignedBox2 axisAlignedBox)
        {
            Box2 box = new Box2(axisAlignedBox.Center, UnitVector2.UnitX, UnitVector2.UnitY, axisAlignedBox.ExtentX, axisAlignedBox.ExtentY);
            IntersectionSegment2Box2 intersectionSegment2Box = new IntersectionSegment2Box2(segment, box, true);

            return(intersectionSegment2Box.Test());
        }
Exemple #2
0
        // Token: 0x0600033D RID: 829 RVA: 0x0000DDAC File Offset: 0x0000BFAC
        public static bool Intersects(this Line2 line, AxisAlignedBox2 axisAlignedBox)
        {
            Box2 box = new Box2(axisAlignedBox.Center, UnitVector2.UnitX, UnitVector2.UnitY, axisAlignedBox.ExtentX, axisAlignedBox.ExtentY);
            IntersectionLine2Box2 intersectionLine2Box = new IntersectionLine2Box2(line, box);

            return(intersectionLine2Box.Test());
        }
Exemple #3
0
        // Token: 0x0600030D RID: 781 RVA: 0x0000C5D4 File Offset: 0x0000A7D4
        public bool Find(out AxisAlignedBox2 intersection)
        {
            if (this.box0.MaxX < this.box1.MinX || this.box0.MinX > this.box1.MaxX)
            {
                intersection = new AxisAlignedBox2(0.0, 0.0, 0.0, 0.0);
                return(false);
            }
            if (this.box0.MaxY < this.box1.MinY || this.box0.MinY > this.box1.MaxY)
            {
                intersection = new AxisAlignedBox2(0.0, 0.0, 0.0, 0.0);
                return(false);
            }
            double maxX;

            if (this.box0.MaxX <= this.box1.MaxX)
            {
                maxX = this.box0.MaxX;
            }
            else
            {
                maxX = this.box1.MaxX;
            }
            double minX;

            if (this.box0.MinX <= this.box1.MinX)
            {
                minX = this.box1.MinX;
            }
            else
            {
                minX = this.box0.MinX;
            }
            double maxY;

            if (this.box0.MaxY <= this.box1.MaxY)
            {
                maxY = this.box0.MaxY;
            }
            else
            {
                maxY = this.box1.MaxY;
            }
            double minY;

            if (this.box0.MinY <= this.box1.MinY)
            {
                minY = this.box1.MinY;
            }
            else
            {
                minY = this.box0.MinY;
            }
            intersection = new AxisAlignedBox2(minX, maxX, minY, maxY);
            return(true);
        }
        // Token: 0x06000302 RID: 770 RVA: 0x0000C430 File Offset: 0x0000A630
        public static AxisAlignedBox2?IntersectionWith(this AxisAlignedBox2 axisAlignedBox, AxisAlignedBox2 other)
        {
            IntersectionAxisAlignedBox2AxisAlignedBox2 intersectionAxisAlignedBox2AxisAlignedBox = new IntersectionAxisAlignedBox2AxisAlignedBox2(axisAlignedBox, other);
            AxisAlignedBox2 value;

            if (intersectionAxisAlignedBox2AxisAlignedBox.Find(out value))
            {
                return(new AxisAlignedBox2?(value));
            }
            return(null);
        }
Exemple #5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="line"></param>
        /// <param name="axisAlignedBox"></param>
        /// <returns></returns>
        public static Segment2?IntersectionWith(this Line2 line, AxisAlignedBox2 axisAlignedBox)
        {
            Box2 box = new Box2(axisAlignedBox.Center, UnitVector2.UnitX, UnitVector2.UnitY, axisAlignedBox.ExtentX, axisAlignedBox.ExtentY);
            IntersectionLine2Box2 intersectionLine2Box = new IntersectionLine2Box2(line, box);
            bool flag = intersectionLine2Box.Find();

            if (flag && intersectionLine2Box.IntersectionType == Intersection.Type.IT_SEGMENT)
            {
                return(new Segment2?(new Segment2(intersectionLine2Box.Point0, intersectionLine2Box.Point1)));
            }
            if (flag && intersectionLine2Box.IntersectionType == Intersection.Type.IT_POINT)
            {
                return(new Segment2?(new Segment2(intersectionLine2Box.Point0, line.Direction, 0.0)));
            }
            return(null);
        }
        // Token: 0x060004BC RID: 1212 RVA: 0x000185FC File Offset: 0x000167FC
        public static AxisAlignedBox2 Transform(this AffineTransform2 transformer, AxisAlignedBox2 input)
        {
            Vector2 vector  = transformer.Transform(input.Center - input.Extents);
            Vector2 vector2 = vector;

            foreach (Vector2 right in new List <Vector2>
            {
                new Vector2(input.ExtentX, -input.ExtentY),
                new Vector2(-input.ExtentX, input.ExtentY),
                new Vector2(input.ExtentX, input.ExtentY)
            })
            {
                Vector2 value = transformer.Transform(input.Center + right);
                vector  = Vector2.Min(vector, value);
                vector2 = Vector2.Max(vector2, value);
            }
            return(new AxisAlignedBox2(vector, vector2));
        }
Exemple #7
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="line"></param>
        /// <param name="axisAlignedBox"></param>
        /// <returns></returns>
        public static ICollection <Vector2> IntersectionPointsWith(this Line2 line, AxisAlignedBox2 axisAlignedBox)
        {
            Box2 box = new Box2(axisAlignedBox.Center, UnitVector2.UnitX, UnitVector2.UnitY, axisAlignedBox.ExtentX, axisAlignedBox.ExtentY);
            IntersectionLine2Box2 intersectionLine2Box = new IntersectionLine2Box2(line, box);

            intersectionLine2Box.Find();
            List <Vector2> list = new List <Vector2>();

            Vector2[] array = new Vector2[]
            {
                intersectionLine2Box.Point0,
                intersectionLine2Box.Point1
            };
            for (int i = 0; i < intersectionLine2Box.Quantity; i++)
            {
                list.Add(array[i]);
            }
            return(list);
        }
        // Token: 0x06000301 RID: 769 RVA: 0x0000C410 File Offset: 0x0000A610
        public static bool Intersects(this AxisAlignedBox2 axisAlignedBox, AxisAlignedBox2 other)
        {
            IntersectionAxisAlignedBox2AxisAlignedBox2 intersectionAxisAlignedBox2AxisAlignedBox = new IntersectionAxisAlignedBox2AxisAlignedBox2(axisAlignedBox, other);

            return(intersectionAxisAlignedBox2AxisAlignedBox.Test());
        }
 // Token: 0x06000308 RID: 776 RVA: 0x0000C48E File Offset: 0x0000A68E
 public static ICollection <Vector2> IntersectionPointsWith(this AxisAlignedBox2 axisAlignedBox, Line2 line)
 {
     return(line.IntersectionPointsWith(axisAlignedBox));
 }
 // Token: 0x06000307 RID: 775 RVA: 0x0000C485 File Offset: 0x0000A685
 public static Segment2?IntersectionWith(this AxisAlignedBox2 axisAlignedBox, Line2 line)
 {
     return(line.IntersectionWith(axisAlignedBox));
 }
 // Token: 0x06000306 RID: 774 RVA: 0x0000C47C File Offset: 0x0000A67C
 public static bool Intersects(this AxisAlignedBox2 axisAlignedBox, Line2 line)
 {
     return(line.Intersects(axisAlignedBox));
 }
 // Token: 0x06000305 RID: 773 RVA: 0x0000C473 File Offset: 0x0000A673
 public static ICollection <Vector2> IntersectionPointsWith(this AxisAlignedBox2 axisAlignedBox, Segment2 segment)
 {
     return(segment.IntersectionPointsWith(axisAlignedBox));
 }
 // Token: 0x06000304 RID: 772 RVA: 0x0000C46A File Offset: 0x0000A66A
 public static Segment2?IntersectionWith(this AxisAlignedBox2 axisAlignedBox, Segment2 segment)
 {
     return(segment.IntersectionWith(axisAlignedBox));
 }
 // Token: 0x06000478 RID: 1144 RVA: 0x00015CC2 File Offset: 0x00013EC2
 public static bool IsInsideOf(this AxisAlignedBox2 axisAlignedBox2, Segment2 segment2)
 {
     return(axisAlignedBox2.IsInsideOf(segment2.NegativeEnd) && axisAlignedBox2.IsInsideOf(segment2.PositiveEnd));
 }
 // Token: 0x06000479 RID: 1145 RVA: 0x00015CE2 File Offset: 0x00013EE2
 public static bool IsInsideOf(this AxisAlignedBox2 axisAlignedBox2, Vector2 vector2)
 {
     //vector2 - axisAlignedBox2.Center;
     return(Math.Abs(vector2.X) < axisAlignedBox2.ExtentX && Math.Abs(vector2.Y) < axisAlignedBox2.ExtentY);
 }
 // Token: 0x06000303 RID: 771 RVA: 0x0000C461 File Offset: 0x0000A661
 public static bool Intersects(this AxisAlignedBox2 axisAlignedBox, Segment2 segment)
 {
     return(segment.Intersects(axisAlignedBox));
 }
Exemple #17
0
 // Token: 0x06000309 RID: 777 RVA: 0x0000C497 File Offset: 0x0000A697
 public IntersectionAxisAlignedBox2AxisAlignedBox2(AxisAlignedBox2 box0, AxisAlignedBox2 box1)
 {
     this.box0 = box0;
     this.box1 = box1;
 }
 // Token: 0x0600047A RID: 1146 RVA: 0x00015D20 File Offset: 0x00013F20
 public static AxisAlignedBox2 CreateMergedWith(this AxisAlignedBox2 axisAlignedBox2, AxisAlignedBox2 other)
 {
     return(new AxisAlignedBox2((axisAlignedBox2.MinX < other.MinX) ? axisAlignedBox2.MinX : other.MinX, (axisAlignedBox2.MaxX > other.MaxX) ? axisAlignedBox2.MaxX : other.MaxX, (axisAlignedBox2.MinY < other.MinY) ? axisAlignedBox2.MinY : other.MinY, (axisAlignedBox2.MaxY > other.MaxY) ? axisAlignedBox2.MaxY : other.MaxY));
 }