// Token: 0x060004C3 RID: 1219 RVA: 0x00018960 File Offset: 0x00016B60
 public static Circle2 Transform(this AffineTransform2 transformer, Circle2 circle)
 {
     return(new Circle2(transformer.Transform(circle.Center), circle.Radius * transformer.Scale));
 }
 // Token: 0x060002B9 RID: 697 RVA: 0x0000B37E File Offset: 0x0000957E
 public IntersectionArc2Circle2(Arc2 arc, Circle2 circle)
 {
     this        = default(IntersectionArc2Circle2);
     this.arc    = arc;
     this.circle = circle;
 }
Example #3
0
 // Token: 0x0600028A RID: 650 RVA: 0x0000AB92 File Offset: 0x00008D92
 public IntersectionRay2Circle2(Ray2 ray, Circle2 circle)
 {
     this        = default(IntersectionRay2Circle2);
     this.ray    = ray;
     this.circle = circle;
 }
Example #4
0
        // Token: 0x060002CE RID: 718 RVA: 0x0000B534 File Offset: 0x00009734
        public bool Find()
        {
            this.Quantity = 0;
            Circle2 circle  = this.arc0.Circle;
            Circle2 circle2 = this.arc1.Circle;
            IntersectionCircle2Circle2 intersectionCircle2Circle = new IntersectionCircle2Circle2(circle, circle2);

            if (!intersectionCircle2Circle.Find())
            {
                this.IntersectionType = Intersection.Type.IT_EMPTY;
                return(false);
            }
            if (intersectionCircle2Circle.IntersectionType != Intersection.Type.IT_OTHER)
            {
                Vector2[] array = new Vector2[]
                {
                    intersectionCircle2Circle.Point0,
                    intersectionCircle2Circle.Point1
                };
                for (int i = 0; i < intersectionCircle2Circle.Quantity; i++)
                {
                    if (IntersectionArc2Arc2.Contains(this.arc0, array[i]) && IntersectionArc2Arc2.Contains(this.arc1, array[i]))
                    {
                        int quantity = this.Quantity;
                        this.Quantity = quantity + 1;
                        if (quantity == 0)
                        {
                            this.Point0 = array[i];
                        }
                        else
                        {
                            this.Point1 = array[i];
                        }
                    }
                }
                this.IntersectionType = ((this.Quantity > 0) ? Intersection.Type.IT_POINT : Intersection.Type.IT_EMPTY);
                return(this.IntersectionType > Intersection.Type.IT_EMPTY);
            }
            if (IntersectionArc2Arc2.Contains(this.arc1, this.arc0.StartPoint))
            {
                if (IntersectionArc2Arc2.Contains(this.arc1, this.arc0.EndPoint))
                {
                    this.IntersectionType = Intersection.Type.IT_OTHER;
                    this.IntersectionArc  = this.arc0;
                }
                else if (!this.arc0.StartPoint.Equals(this.arc1.EndPoint))
                {
                    this.IntersectionType = Intersection.Type.IT_OTHER;
                    this.IntersectionArc  = new Arc2(this.arc0.Circle, this.arc0.StartAngle, this.arc1.StartAngle + this.arc1.DeltaAngle - this.arc0.StartAngle);
                }
                else
                {
                    this.IntersectionType = Intersection.Type.IT_POINT;
                    this.Quantity         = 1;
                    this.Point0           = this.arc0.StartPoint;
                }
                return(true);
            }
            if (IntersectionArc2Arc2.Contains(this.arc1, this.arc0.EndPoint))
            {
                if (!this.arc0.EndPoint.Equals(this.arc1.StartPoint))
                {
                    this.IntersectionType = Intersection.Type.IT_OTHER;
                    this.IntersectionArc  = new Arc2(this.arc0.Circle, this.arc1.StartAngle, this.arc0.StartAngle + this.arc0.DeltaAngle - this.arc1.StartAngle);
                }
                else
                {
                    this.IntersectionType = Intersection.Type.IT_POINT;
                    this.Quantity         = 1;
                    this.Point0           = this.arc1.StartPoint;
                }
                return(true);
            }
            if (IntersectionArc2Arc2.Contains(this.arc0, this.arc1.StartPoint))
            {
                this.IntersectionType = Intersection.Type.IT_OTHER;
                this.IntersectionArc  = this.arc1;
                return(true);
            }
            this.IntersectionType = Intersection.Type.IT_EMPTY;
            return(false);
        }
Example #5
0
        // Token: 0x0600025B RID: 603 RVA: 0x0000A360 File Offset: 0x00008560
        public static bool Intersects(this Ray2 ray, Circle2 circle)
        {
            IntersectionRay2Circle2 intersectionRay2Circle = new IntersectionRay2Circle2(ray, circle);

            return(intersectionRay2Circle.Find());
        }
Example #6
0
        /// <summary>
        /// 线和圆形相交
        /// </summary>
        /// <param name="line"></param>
        /// <param name="circle"></param>
        /// <returns></returns>
        public static bool Intersects(this Line2 line, Circle2 circle)
        {
            IntersectionLine2Circle2 intersectionLine2Circle = new IntersectionLine2Circle2(line, circle);

            return(intersectionLine2Circle.Find());
        }
Example #7
0
        // Token: 0x06000263 RID: 611 RVA: 0x0000A494 File Offset: 0x00008694
        public static bool Intersects(this Arc2 arc, Circle2 circle)
        {
            IntersectionArc2Circle2 intersectionArc2Circle = new IntersectionArc2Circle2(arc, circle);

            return(intersectionArc2Circle.Find());
        }
Example #8
0
 // Token: 0x060002F4 RID: 756 RVA: 0x0000BDDB File Offset: 0x00009FDB
 public IntersectionCircle2Circle2(Circle2 circle0, Circle2 circle1)
 {
     this         = default(IntersectionCircle2Circle2);
     this.circle0 = circle0;
     this.circle1 = circle1;
 }
Example #9
0
 // Token: 0x060002E5 RID: 741 RVA: 0x0000BBE9 File Offset: 0x00009DE9
 public IntersectionLine2Circle2(Line2 line, Circle2 circle)
 {
     this        = default(IntersectionLine2Circle2);
     this.line   = line;
     this.circle = circle;
 }