// Token: 0x06000262 RID: 610 RVA: 0x0000A42C File Offset: 0x0000862C public static ICollection <Vector2> IntersectionPointsWith(this Arc2 arc, Arc2 other) { IntersectionArc2Arc2 intersectionArc2Arc = new IntersectionArc2Arc2(arc, other); intersectionArc2Arc.Find(); List <Vector2> list = new List <Vector2>(); Vector2[] array = new Vector2[] { intersectionArc2Arc.Point0, intersectionArc2Arc.Point1 }; for (int i = 0; i < intersectionArc2Arc.Quantity; i++) { list.Add(array[i]); } return(list); }
// Token: 0x060002C2 RID: 706 RVA: 0x0000B3DC File Offset: 0x000095DC public bool Find() { this.Quantity = 0; IntersectionCircle2Circle2 intersectionCircle2Circle = new IntersectionCircle2Circle2(this.circle, this.arc.Circle); if (!intersectionCircle2Circle.Find()) { this.IntersectionType = Intersection.Type.IT_EMPTY; return(false); } if (intersectionCircle2Circle.IntersectionType == Intersection.Type.IT_OTHER) { this.IntersectionType = Intersection.Type.IT_OTHER; return(true); } Vector2[] array = new Vector2[] { intersectionCircle2Circle.Point0, intersectionCircle2Circle.Point1 }; for (int i = 0; i < intersectionCircle2Circle.Quantity; i++) { if (IntersectionArc2Arc2.Contains(this.arc, 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); }
// Token: 0x060002DD RID: 733 RVA: 0x0000B900 File Offset: 0x00009B00 public bool Find() { int num; double[] array; bool flag = IntersectionLine2Circle2.Find(this.line.Origin, this.line.Direction, this.arc.Circle.Center, this.arc.Circle.Radius, out num, out array); this.Quantity = 0; if (flag) { Vector2 vector = this.line.Origin + this.line.Direction * array[0]; Vector2 vector2 = this.line.Origin + this.line.Direction * array[1]; if (IntersectionArc2Arc2.Contains(this.arc, vector)) { this.Point0 = vector; this.Parameter0 = array[0]; int quantity = this.Quantity; this.Quantity = quantity + 1; if (num == 2 && IntersectionArc2Arc2.Contains(this.arc, vector2)) { this.Point1 = vector2; this.Parameter1 = array[1]; quantity = this.Quantity; this.Quantity = quantity + 1; } } else if (num == 2 && IntersectionArc2Arc2.Contains(this.arc, vector2)) { this.Point0 = vector2; this.Parameter0 = array[1]; int quantity = this.Quantity; this.Quantity = quantity + 1; } } this.IntersectionType = ((this.Quantity > 0) ? Intersection.Type.IT_POINT : Intersection.Type.IT_EMPTY); return(this.IntersectionType > Intersection.Type.IT_EMPTY); }
// 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); }
// Token: 0x06000261 RID: 609 RVA: 0x0000A40C File Offset: 0x0000860C public static bool Intersects(this Arc2 arc, Arc2 other) { IntersectionArc2Arc2 intersectionArc2Arc = new IntersectionArc2Arc2(arc, other); return(intersectionArc2Arc.Find()); }