// Token: 0x060004C0 RID: 1216 RVA: 0x00018864 File Offset: 0x00016A64 public static Ellipse2 Transform(this AffineTransform2 transformer, Ellipse2 ellipse) { AffineTransform2 source = new AffineTransform2(ellipse.Axis0, ellipse.Axis1, ellipse.Center, 1.0); AffineTransform2 affineTransform = transformer.Transform(source); return(new Ellipse2(affineTransform.Origin, affineTransform.AxisX, affineTransform.AxisY, ellipse.Extent0 * transformer.Scale, ellipse.Extent1 * transformer.Scale)); }
// Token: 0x06000491 RID: 1169 RVA: 0x00016ED0 File Offset: 0x000150D0 private static void ComputeEllipseBoundingBoxVariables(Ellipse2 ellipse, out double tx1, out double tx2, out double ty1, out double ty2, out double x1, out double x2, out double y1, out double y2) { double x3 = ellipse.Center.X; double y3 = ellipse.Center.Y; double extent = ellipse.Extent0; double extent2 = ellipse.Extent1; double num = Math.Acos(ellipse.Axis0.Dot(UnitVector2.UnitX)); if (ellipse.Axis0.Dot(UnitVector2.UnitY) < 0.0) { num = -num; } double num2 = Math.Tan(num); double num3 = 1.0 / num2; double num4 = Math.Cos(num); double num5 = Math.Sin(num); tx1 = (Math.Atan(-extent2 * num2 / extent) + 6.2831853071795862) % 6.2831853071795862; ty1 = (Math.Atan(extent2 * num3 / extent) + 6.2831853071795862) % 6.2831853071795862; tx2 = (tx1 + 3.1415926535897931) % 6.2831853071795862; ty2 = (ty1 + 3.1415926535897931) % 6.2831853071795862; x1 = x3 + extent * Math.Cos(tx1) * num4 - extent2 * Math.Sin(tx1) * num5; x2 = x3 + extent * Math.Cos(tx2) * num4 - extent2 * Math.Sin(tx2) * num5; y1 = y3 + extent2 * Math.Sin(ty1) * num4 + extent * Math.Cos(ty1) * num5; y2 = y3 + extent2 * Math.Sin(ty2) * num4 + extent * Math.Cos(ty2) * num5; }
// Token: 0x060000FD RID: 253 RVA: 0x00004DF1 File Offset: 0x00002FF1 public EllipticArc2(Ellipse2 ellipse, Angle startAngle, Angle deltaAngle) { this = default(EllipticArc2); this.Ellipse = ellipse; this.StartAngle = startAngle; this.DeltaAngle = deltaAngle; }
// Token: 0x0600048E RID: 1166 RVA: 0x00016D10 File Offset: 0x00014F10 public static AxisAlignedBox2 ComputeAxisAlignedBoundingBox(this Ellipse2 ellipse) { double num; double num2; double num3; double num4; double val; double val2; double val3; double val4; EllipseExtensionMethods.ComputeEllipseBoundingBoxVariables(ellipse, out num, out num2, out num3, out num4, out val, out val2, out val3, out val4); return(new AxisAlignedBox2(Math.Min(val, val2), Math.Max(val, val2), Math.Min(val3, val4), Math.Max(val3, val4))); }