Esempio n. 1
0
        internal override void GetPolylines(
            DrawContext context,
            ILineTypeScaler lineTypeScaler,
            out IList <IList <Polyline2D> > polylinesList1,
            out IList <IList <Polyline2D> > polylinesList2,
            out IList <FlatShape4D> shapes,
            out bool fill)
        {
            DxfHeader      header = context.Model.Header;
            GraphicsConfig config = context.Config;

            polylinesList1 = (IList <IList <Polyline2D> >) new List <IList <Polyline2D> >();
            polylinesList2 = (IList <IList <Polyline2D> >) new List <IList <Polyline2D> >();
            shapes         = (IList <FlatShape4D>)null;
            if (config.ShowSplineControlPoints)
            {
                polylinesList1.Add((IList <Polyline2D>) new Polyline2D[1]
                {
                    this.method_16()
                });
                polylinesList2.Add((IList <Polyline2D>)null);
            }
            if (config.ShowSplineApproximationPoints)
            {
                polylinesList1.Add((IList <Polyline2D>) new Polyline2D[1]
                {
                    this.method_18()
                });
                polylinesList2.Add((IList <Polyline2D>)null);
            }
            if (this.method_32(this.dxfVertex2DCollection_0))
            {
                Polyline2D polyline = (Polyline2D)null;
                if (config.ShowSplineInterpolatedPoints)
                {
                    switch (this.splineType_0)
                    {
                    case SplineType.None:
                        if (!config.ShowSplineApproximationPoints)
                        {
                            polyline = this.method_18();
                            break;
                        }
                        break;

                    case SplineType.QuadraticBSpline:
                        polyline = this.method_30(2, context.Config);
                        break;

                    case SplineType.CubicBSpline:
                        polyline = this.method_30(3, context.Config);
                        break;
                    }
                }
                fill = false;
                if (polyline != null)
                {
                    IList <Polyline2D> resultLines = (IList <Polyline2D>) new List <Polyline2D>();
                    shapes = (IList <FlatShape4D>) new List <FlatShape4D>();
                    DxfUtil.smethod_0(context.Config, resultLines, shapes, polyline, context.Config.ApplyLineType ? this.GetLineType(context) : (DxfLineType)null, context.TotalLineTypeScale * this.LineTypeScale, lineTypeScaler);
                    polylinesList1.Add(resultLines);
                    polylinesList2.Add((IList <Polyline2D>)null);
                    if (shapes != null && shapes.Count == 0)
                    {
                        shapes = (IList <FlatShape4D>)null;
                    }
                }
            }
            else
            {
                WW.Cad.Drawing.Polyline2D2WN polyline = (WW.Cad.Drawing.Polyline2D2WN)null;
                if (config.ShowSplineInterpolatedPoints)
                {
                    switch (this.splineType_0)
                    {
                    case SplineType.None:
                        if (!config.ShowSplineApproximationPoints)
                        {
                            polyline = this.method_23();
                            break;
                        }
                        break;

                    case SplineType.QuadraticBSpline:
                        polyline = this.method_31(2, (int)context.Config.NoOfSplineLineSegments);
                        break;

                    case SplineType.CubicBSpline:
                        polyline = this.method_31(3, (int)context.Config.NoOfSplineLineSegments);
                        break;
                    }
                }
                fill = false;
                if (polyline != null)
                {
                    IList <Polyline2D> resultPolylines1;
                    IList <Polyline2D> resultPolylines2;
                    DxfUtil.smethod_25(context.Config, polyline, context.Config.ApplyLineType ? this.GetLineType(context) : (DxfLineType)null, context.TotalLineTypeScale * this.LineTypeScale, lineTypeScaler, false, out resultPolylines1, out resultPolylines2, out shapes, out fill);
                    polylinesList1.Add(resultPolylines1);
                    polylinesList2.Add(resultPolylines2);
                }
            }
            if (shapes != null && shapes.Count == 0)
            {
                shapes = (IList <FlatShape4D>)null;
            }
            fill &= context.Model.Header.FillMode;
        }