public override void imethod_3( Class95 loop, Class88 curve, Class107 coedge, Class917 approximation, Class258 accuracy) { Matrix4D canonicalTransformation = this.FromCanonicalTransformation; Interface27 interval = this.Interval; bool directionReversed = coedge.DirectionReversed; Class102 startVertex = coedge.StartVertex; Class102 endVertex = coedge.EndVertex; Interface27 nterface27; if (startVertex != endVertex) { Matrix4D inverse = canonicalTransformation.GetInverse(); Class105 point1 = startVertex.Point; Class105 point2 = endVertex.Point; Point3D point3D1 = point1.method_4(inverse); Point3D point3D2 = point2.method_4(inverse); nterface27 = (Interface27) new Class437(System.Math.Atan2(point3D1.Y, point3D1.X), System.Math.Atan2(point3D2.Y, point3D2.X)); } else { Matrix4D inverse = canonicalTransformation.GetInverse(); Point3D point3D = startVertex.Point.method_4(inverse); double start = System.Math.Atan2(point3D.Y, point3D.X); double end = directionReversed ? start - 2.0 * System.Math.PI : start + 2.0 * System.Math.PI; nterface27 = (Interface27) new Class437(start, end); } int num1 = Class247.smethod_7(this.vector3D_1.GetLength(), accuracy); double start1 = nterface27.Start; double end1 = nterface27.End; if (directionReversed) { if (start1 < end1) { end1 -= 2.0 * System.Math.PI; } } else if (start1 > end1) { end1 += 2.0 * System.Math.PI; } double num2 = (end1 - start1) / (double)num1; approximation.method_0(coedge.StartLocation); for (int index = 1; index < num1; ++index) { double num3 = (double)index * num2 + start1; double x = System.Math.Cos(num3); double y = System.Math.Sin(num3); Point3D point = canonicalTransformation.Transform(new Point3D(x, y, 0.0)); approximation.method_0(point); } approximation.method_0(coedge.EndLocation); }
public static int smethod_7(double radius, Class258 accuracy) { return(Class247.smethod_8(radius, accuracy, 16)); }