예제 #1
0
        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);
        }
예제 #2
0
 public virtual void imethod_3(
     Class95 loop,
     Class88 curve,
     Class107 coedge,
     Class917 approximation,
     Class258 accuracy)
 {
 }
예제 #3
0
 public override void imethod_3(
     Class95 loop,
     Class88 curve,
     Class107 coedge,
     Class917 approximation,
     Class258 accuracy)
 {
     this.class224_0.Approximation?.imethod_3(loop, curve, coedge, approximation, accuracy);
 }
예제 #4
0
 public override void imethod_3(
     Class95 loop,
     Class88 curve,
     Class107 coedge,
     Class917 approximation,
     Class258 accuracy)
 {
     approximation.method_0(coedge.StartLocation);
     approximation.method_0(coedge.EndLocation);
 }
예제 #5
0
파일: Class244.cs 프로젝트: 15831944/WW
        public override void imethod_3(
            Class95 loop,
            Class88 curve,
            Class107 coedge,
            Class917 approximation,
            Class258 accuracy)
        {
            double fitTolerance;

            if (!accuracy.Absolute)
            {
                Bounds3D controlPolygonBounds = this.splineCurve3D_0.ControlPolygonBounds;
                fitTolerance = accuracy.method_0(controlPolygonBounds.Delta.GetLength());
            }
            else
            {
                fitTolerance = accuracy.Epsilon;
            }
            Point3D[] fitPoints = this.splineCurve3D_0.CreateFitPoints(fitTolerance, 0.01);
            approximation.method_5((IEnumerable <Point3D>)fitPoints, curve.Reversed ^ coedge.DirectionReversed);
        }