Esempio n. 1
0
    internal Class454 method_41(int A_0)
    {
        Class454  class3;
        Class1089 class2 = base.method_0().method_0().method_6(BookmarkStart.b("挫䰭娯圱圳䈵样唹医刽", 6));

        if (class2 == null)
        {
            return(null);
        }
        using (IDictionaryEnumerator enumerator = class2.GetEnumerator())
        {
            DictionaryEntry current;
            while (enumerator.MoveNext())
            {
                current = (DictionaryEntry)enumerator.Current;
                string key = (string)current.Key;
                int    num = Class1041.smethod_18(key.TrimStart(new char[] { '_' }));
                if ((num != -2147483648) && (A_0 == num))
                {
                    goto Label_0081;
                }
            }
            return(null);

Label_0081:
            class3 = new Class454(A_0, (Class1089)current.Value);
        }
        return(class3);
    }
Esempio n. 2
0
    private void method_17(Class454 A_0)
    {
        Class1107 class2 = new Class1107 {
            bool_0 = true,
            bool_3 = true,
            int_1  = A_0.method_0()
        };

        this.class423_0.method_38(Class816.string_13, this.method_21(), class2);
    }
Esempio n. 3
0
        internal Class454 method_0(IShape2D shape, GraphicsConfig config)
        {
            Struct13 key = new Struct13(shape, config.ShapeFlattenEpsilon);
            Class454 class454_1;

            if (this.dictionary_0.TryGetValue(key, out class454_1))
            {
                return(class454_1);
            }
            Class454 class454_2 = new Class454(shape, config);

            this.dictionary_0.Add(key, class454_2);
            return(class454_2);
        }
Esempio n. 4
0
    private void method_19(CharacterFormat A_0, int A_1)
    {
        Class454 class2 = this.class764_0.method_41(A_1);

        if (class2 != null)
        {
            ShapeObject obj2 = new ShapeObject(this.class764_0.method_42());
            obj2.SetShapeType(ShapeType.OleObject);
            obj2.CharacterFormat.method_25(A_0);
            obj2.TextWrappingStyle = TextWrappingStyle.Inline;
            MemoryStream input = class2.method_7();
            if (input != null)
            {
                byte[] buffer = new byte[(int)(input.Length - 8L)];
                input.Position = 0L;
                BinaryReader reader2 = new BinaryReader(input);
                reader2.ReadUInt16();
                int num5 = reader2.ReadUInt16();
                int num6 = reader2.ReadUInt16();
                reader2.ReadUInt16();
                input.Read(buffer, 0, buffer.Length);
                obj2.ImageData.method_87(Class409.smethod_29(buffer, Class1044.smethod_1((int)((((double)num5) / 2540.0) * 1963.0), (int)((((double)num6) / 2540.0) * 1963.0), 1963.0, 1963.0)));
                obj2.SetShapeAttribute(0x1006, obj2.ImageData.ImageBytes);
            }
            MemoryStream stream = class2.method_8();
            if (stream != null)
            {
                BinaryReader reader = new BinaryReader(stream);
                stream.Position = 12L;
                reader.ReadUInt16();
                reader.ReadUInt16();
                reader.ReadUInt16();
                reader.ReadUInt16();
                int num  = reader.ReadInt32();
                int num2 = reader.ReadInt32();
                stream.Position = 0x2cL;
                int num3 = reader.ReadInt32();
                int num4 = reader.ReadInt32();
                reader.ReadInt32();
                reader.ReadInt32();
                reader.ReadInt32();
                reader.ReadInt32();
                obj2.method_37((Class969.smethod_32(num) * num3) / 1000.0);
                obj2.method_39((Class969.smethod_32(num2) * num4) / 1000.0);
            }
            this.class764_0.method_43().imethod_18(obj2);
        }
    }
Esempio n. 5
0
    private void imethod_16(CharacterFormat A_0, Class454 A_1)
    {
        Field field = this.stack_0.Peek() as Field;

        if ((field.Type == FieldType.FieldEmbed) || (field.Type == FieldType.FieldLink))
        {
            this.stack_1.Push(A_1);
        }
        field.UpdateFieldCode(field.Code);
        if (field.Type != FieldType.FieldMergeField)
        {
            FieldMark mark = new FieldMark(this.document_0, A_0, FieldMarkType.FieldSeparator);
            this.documentObject_0.method_13(mark);
            field.Separator = mark;
        }
        this.fieldCharType_0 = FieldCharType.Seperate;
    }
Esempio n. 6
0
    private void method_6(Field A_0, Class454 A_1)
    {
        ShapeObject obj2 = (this.shapeObject_0 != null) ? this.shapeObject_0 : this.stack_2.Pop();

        obj2.SetShapeType(ShapeType.OleObject);
        obj2.OleFormat.Field = A_0;
        obj2.OleFormat.method_86((A_0.Type == FieldType.FieldEmbed) ? OleLinkType.Embed : OleLinkType.Link);
        obj2.OleFormat.method_78();
        if (A_1 != null)
        {
            obj2.OleFormat.method_81(A_1.method_12());
        }
        int index = this.documentObject_0.ChildObjects.IndexOf(A_0.End);
        int num2  = this.documentObject_0.ChildObjects.IndexOf(A_0);

        while (index >= num2)
        {
            this.documentObject_0.ChildObjects.Remove(this.documentObject_0.ChildObjects[index]);
            index--;
        }
        DocOleObject oleFormat = obj2.OleFormat;

        this.documentObject_0.method_13(oleFormat);
        FieldMark mark = new FieldMark(this.document_0)
        {
            Type = FieldMarkType.FieldSeparator
        };

        this.documentObject_0.method_13(mark);
        DocPicture picture = oleFormat.Interface49.get_OlePicture();

        if (picture != null)
        {
            this.documentObject_0.method_13(picture);
            picture.ApplyCharacterFormat(obj2.CharacterFormat);
        }
        FieldMark mark2 = new FieldMark(this.document_0)
        {
            Type = FieldMarkType.FieldEnd
        };

        this.documentObject_0.method_13(mark2);
    }
Esempio n. 7
0
        private void method_0(
            IShape2D path,
            Color color,
            Matrix4D transform,
            bool filled,
            double extrusion,
            bool isChar)
        {
            if (!path.HasSegments)
            {
                return;
            }
            ArgbColor plotColor = this.surface_0.GetPlotColor(this.dxfEntity_0, color);

            if (this.graphicElement1Node_0 == null)
            {
                this.graphicElement1Node_0 = new GraphicElement1Node(plotColor);
                this.graphics_0.AddNewGraphicElement(this.dxfEntity_0, this.igraphicElementBlock_0, (GraphicElement1)this.graphicElement1Node_0);
            }
            else if (this.graphicElement1Node_0.Color != plotColor)
            {
                this.graphicElement1Node_0.Next = new GraphicElement1Node(plotColor);
                this.graphicElement1Node_0      = this.graphicElement1Node_0.Next;
            }
            IList <Polyline2D> flattened = (IList <Polyline2D>)ShapeTool.GetFlattened(path, this.surface_0.Config.ShapeFlattenEpsilon);

            if (!filled)
            {
                IList <WW.Math.Geometry.Polyline3D> polyline3DList1 = DxfUtil.smethod_41(flattened, transform);
                foreach (WW.Math.Geometry.Polyline3D polyline in (IEnumerable <WW.Math.Geometry.Polyline3D>)polyline3DList1)
                {
                    this.graphicElement1Node_0.Geometry.Add(WW.Cad.Drawing.Surface.Polyline3D.CreatePrimitive(polyline));
                }
                if (extrusion == 0.0)
                {
                    return;
                }
                IList <WW.Math.Geometry.Polyline3D> polyline3DList2 = DxfUtil.smethod_41(flattened, transform * Transformation4D.Translation(0.0, 0.0, extrusion));
                foreach (WW.Math.Geometry.Polyline3D polyline in (IEnumerable <WW.Math.Geometry.Polyline3D>)polyline3DList2)
                {
                    this.graphicElement1Node_0.Geometry.Add(WW.Cad.Drawing.Surface.Polyline3D.CreatePrimitive(polyline));
                }
                for (int index1 = polyline3DList1.Count - 1; index1 >= 0; --index1)
                {
                    WW.Math.Geometry.Polyline3D polyline3D1 = polyline3DList1[index1];
                    WW.Math.Geometry.Polyline3D polyline3D2 = polyline3DList2[index1];
                    for (int index2 = polyline3D1.Count - 1; index2 >= 0; --index2)
                    {
                        this.graphicElement1Node_0.Geometry.Add((IPrimitive) new WW.Cad.Drawing.Surface.Segment(polyline3D1[index2], polyline3D2[index2]));
                    }
                }
            }
            else
            {
                List <Triangulator2D.Triangle> triangleList;
                List <WW.Math.Point2D>         point2DList;
                if (isChar)
                {
                    Class454 class454 = this.surface_0.CharTriangulationCache.method_0(path, this.surface_0.Config);
                    triangleList = class454.Triangles;
                    point2DList  = class454.Points;
                }
                else
                {
                    triangleList = new List <Triangulator2D.Triangle>();
                    point2DList  = new List <WW.Math.Point2D>();
                    IList <IList <WW.Math.Point2D> > polygons = (IList <IList <WW.Math.Point2D> >) new List <IList <WW.Math.Point2D> >();
                    foreach (Polyline2D polyline2D in (IEnumerable <Polyline2D>)flattened)
                    {
                        polygons.Add((IList <WW.Math.Point2D>)polyline2D);
                    }
                    Triangulator2D.Triangulate(polygons, (IList <Triangulator2D.Triangle>)triangleList, (IList <WW.Math.Point2D>)point2DList);
                }
                Polyline2D polyline = new Polyline2D((IEnumerable <WW.Math.Point2D>)point2DList);
                WW.Math.Geometry.Polyline3D polyline3D1 = DxfUtil.smethod_42(polyline, transform);
                if (extrusion == 0.0)
                {
                    for (int index = 0; index < triangleList.Count; ++index)
                    {
                        Triangulator2D.Triangle triangle = triangleList[index];
                        this.graphicElement1Node_0.Geometry.Add((IPrimitive) new WW.Cad.Drawing.Surface.Triangle(polyline3D1[triangle.I0], polyline3D1[triangle.I1], polyline3D1[triangle.I2]));
                    }
                }
                else
                {
                    if (extrusion == 0.0)
                    {
                        return;
                    }
                    IList <WW.Math.Geometry.Polyline3D> polyline3DList1 = DxfUtil.smethod_41(flattened, transform);
                    Matrix4D transform1 = transform * Transformation4D.Translation(0.0, 0.0, extrusion);
                    WW.Math.Geometry.Polyline3D         polyline3D2     = DxfUtil.smethod_42(polyline, transform1);
                    IList <WW.Math.Geometry.Polyline3D> polyline3DList2 = DxfUtil.smethod_41(flattened, transform1);
                    if (extrusion > 0.0)
                    {
                        for (int index = 0; index < triangleList.Count; ++index)
                        {
                            Triangulator2D.Triangle triangle = triangleList[index];
                            this.graphicElement1Node_0.Geometry.Add((IPrimitive) new WW.Cad.Drawing.Surface.Triangle(polyline3D1[triangle.I0], polyline3D1[triangle.I2], polyline3D1[triangle.I1]));
                        }
                        for (int index = 0; index < triangleList.Count; ++index)
                        {
                            Triangulator2D.Triangle triangle = triangleList[index];
                            this.graphicElement1Node_0.Geometry.Add((IPrimitive) new WW.Cad.Drawing.Surface.Triangle(polyline3D2[triangle.I0], polyline3D2[triangle.I1], polyline3D2[triangle.I2]));
                        }
                    }
                    else
                    {
                        for (int index = 0; index < triangleList.Count; ++index)
                        {
                            Triangulator2D.Triangle triangle = triangleList[index];
                            this.graphicElement1Node_0.Geometry.Add((IPrimitive) new WW.Cad.Drawing.Surface.Triangle(polyline3D1[triangle.I0], polyline3D1[triangle.I1], polyline3D1[triangle.I2]));
                        }
                        for (int index = 0; index < triangleList.Count; ++index)
                        {
                            Triangulator2D.Triangle triangle = triangleList[index];
                            this.graphicElement1Node_0.Geometry.Add((IPrimitive) new WW.Cad.Drawing.Surface.Triangle(polyline3D2[triangle.I0], polyline3D2[triangle.I2], polyline3D2[triangle.I1]));
                        }
                    }
                    for (int index1 = polyline3DList1.Count - 1; index1 >= 0; --index1)
                    {
                        WW.Math.Geometry.Polyline3D polyline3D3 = polyline3DList1[index1];
                        WW.Math.Geometry.Polyline3D polyline3D4 = polyline3DList2[index1];
                        Polyline2D       polyline2D             = flattened[index1];
                        IList <Vector3D> normals = (IList <Vector3D>) new List <Vector3D>(polyline3D3.Count + 1);
                        for (int index2 = 0; index2 < polyline3D3.Count; ++index2)
                        {
                            int      index3   = (index2 + 1) % polyline3D3.Count;
                            Vector2D vector2D = polyline2D[index3] - polyline2D[index2];
                            normals.Add(transform.Transform(new Vector3D(vector2D.Y, -vector2D.X, 0.0)));
                        }
                        normals.Add(normals[0]);
                        this.graphicElement1Node_0.Geometry.Add((IPrimitive) new QuadStrip2((IList <WW.Math.Point3D>)polyline3D3, (IList <WW.Math.Point3D>)polyline3D4, normals, 0, 0));
                    }
                }
            }
        }
Esempio n. 8
0
    private void method_15(ShapeObject A_0)
    {
        FieldType fieldOCX;
        string    str;
        int       num       = 0x10;
        ShapeType shapeType = A_0.ShapeType;

        if (shapeType != ShapeType.OleObject)
        {
            if (shapeType != ShapeType.OleControl)
            {
                throw new InvalidOperationException(BookmarkStart.b("挵嘷弹䐻丽┿⅁ぃ⍅ⱇ橉㽋♍ㅏ≑ㅓ癕ⱗ⍙ⱛ㭝也", num));
            }
            fieldOCX = FieldType.FieldOCX;
            str      = Class169.smethod_0(A_0.OleFormat.Interface49.get_ObjectType());
        }
        else if (A_0.OleFormat.IsLink)
        {
            Class677 class5;
            fieldOCX = FieldType.FieldLink;
            if (!A_0.IsOleControl && !A_0.IsOleObject)
            {
                class5 = null;
            }
            else
            {
                class5 = new Class677(A_0);
            }
            char ch = '\v';
            str = Class655.smethod_0(class5).Replace(BookmarkStart.b("ጵ਷ਹ", num), BookmarkStart.b("ᘵ", num)).Replace(BookmarkStart.b("ጵ਷༹", num), BookmarkStart.b("ጵ", num)).Replace(ch.ToString(), string.Empty).Replace(BookmarkStart.b("ਵ", num), BookmarkStart.b("ጵଷ夹", num)).Replace(BookmarkStart.b("࠵", num), BookmarkStart.b("ጵଷ弹", num));
        }
        else
        {
            fieldOCX = FieldType.FieldEmbed;
            str      = Class1061.smethod_0(A_0.OleFormat.Interface49.get_ObjectType());
        }
        this.class423_0.method_39(fieldOCX, A_0.CharacterFormat);
        this.class423_0.method_37(str, A_0.CharacterFormat);
        this.class423_0.stack_1.Push(new Field(A_0.Document, fieldOCX, str));
        if (A_0.OleFormat.Interface49.get_Container() == null)
        {
            this.class423_0.method_46(A_0.CharacterFormat, 0);
            this.method_16(A_0);
            goto Label_02FE;
        }
        if (A_0.OleFormat.IsChangeNativeData)
        {
            A_0.OleFormat.method_103();
        }
        Class1132 class2 = new Class1132(A_0.OleFormat.Interface49.get_Container());
        Class454  class3 = null;

        if (class2.method_0().ContainsKey(BookmarkStart.b("椵", num) + A_0.OleFormat.Interface49.get_OleStorageName()))
        {
            Class1089 class4 = class2.method_0()[BookmarkStart.b("椵", num) + A_0.OleFormat.Interface49.get_OleStorageName()] as Class1089;
            class3 = new Class454(Convert.ToInt32(A_0.OleFormat.Interface49.get_OleStorageName()), class4);
            this.class423_0.method_46(A_0.CharacterFormat, class3.method_0());
            this.class423_0.method_62().class1089_0[class3.method_2()] = class3.method_12();
            switch (A_0.OleObjectType)
            {
            case ShapeOleObjectType.Embedded:
                this.class423_0.method_62().class1089_1[class3.method_2()] = class3.method_12();
                goto Label_02A7;

            case ShapeOleObjectType.Linked:
                goto Label_02A7;

            case ShapeOleObjectType.Control:
                this.class423_0.method_62().bool_2 = true;
                goto Label_02A7;
            }
            throw new InvalidOperationException(BookmarkStart.b("挵嘷弹䐻丽┿⅁ぃ⍅ⱇ橉͋ɍᕏ牑㭓㑕㉗㽙㽛⩝䁟ᙡᵣᙥ൧䑩", num));
        }
Label_02A7:
        A_0.OleFormat.Interface49.get_Container().Position = 0L;
        if (((class3 != null) && class3.method_11()) && (class3.method_7() != null))
        {
            this.method_17(class3);
        }
        else
        {
            this.method_16(A_0);
        }
Label_02FE:
        this.class423_0.method_40(new FieldMark(A_0.Document, A_0.CharacterFormat, FieldMarkType.FieldEnd));
    }
 public abstract void Visit(Class454 c);
 public override void Visit(Class454 c) { }
Esempio n. 11
0
    private void method_17(char A_0, int A_1, CharacterFormat A_2, Class1107 A_3)
    {
        int num = this.class764_0.method_5().method_6(A_1);

        switch (A_0)
        {
        case '\x0001':
            if (A_3.bool_1)
            {
                this.method_18(A_2, A_3.int_1);
                return;
            }
            if (A_3.bool_3)
            {
                this.method_19(A_2, A_3.int_1);
                return;
            }
            this.method_20(A_2, A_3.int_1);
            return;

        case '\x0005':
            if (this.subDocumentType_0 == SubDocumentType.Main)
            {
                this.method_27(num, A_2);
                return;
            }
            this.class764_0.method_43().imethod_13(A_0, A_2);
            return;

        case '\b':
            this.method_23(num, A_2);
            return;

        case '\x0013':
        {
            Class766 class5 = this.class764_0.method_7().method_0(this.subDocumentType_0, num);
            if (class5 == null)
            {
                class5 = new Class766(0x13, 0);
            }
            this.class764_0.method_43().imethod_15(A_2, class5.method_2());
            return;
        }

        case '\x0014':
        {
            Class454 class3 = null;
            if (A_3.bool_2 && A_3.bool_3)
            {
                class3 = this.class764_0.method_41(A_3.int_1);
            }
            this.class764_0.method_43().imethod_16(A_2, class3);
            return;
        }

        case '\x0015':
        {
            bool     flag   = false;
            bool     flag2  = false;
            Class766 class6 = this.class764_0.method_7().method_0(this.subDocumentType_0, num);
            if (class6 != null)
            {
                flag  = class6.method_13();
                flag2 = class6.method_9();
            }
            this.class764_0.method_43().imethod_17(A_2, flag2, flag);
            return;
        }

        case '(':
            if (A_2.HasKey(400))
            {
                A_2.Remove(400);
            }
            if (A_3.bool_0)
            {
                this.class764_0.method_43().imethod_40(A_3, A_2);
                return;
            }
            this.method_16(A_3.char_0.ToString(), A_2);
            return;

        case '<':
        {
            Class487 class7 = this.class764_0.method_17().method_5(this.int_2++);
            if (class7 != null)
            {
                Class9 class2 = new Class9(this.class764_0.method_42(), class7.method_0());
                class2.method_23(class7.method_1());
                class2.method_27(class7.method_3());
                class2.method_25(class7.method_2());
                using (IEnumerator enumerator = class7.method_4().System.Collections.IEnumerable.GetEnumerator())
                {
                    while (enumerator.MoveNext())
                    {
                        Class901 current = (Class901)enumerator.Current;
                        class2.method_28().method_3(current);
                    }
                }
                this.class764_0.method_43().imethod_36(class2);
                this.stack_0.Push(class2);
            }
            return;
        }

        case '>':
            if (this.stack_0.Count > 0)
            {
                this.stack_0.Pop();
                this.class764_0.method_43().imethod_37();
                return;
            }
            return;
        }
        this.class764_0.method_43().imethod_13(A_0, A_2);
    }
Esempio n. 12
0
    private void imethod_17(CharacterFormat A_0, bool A_1, bool A_2)
    {
        Field field = this.stack_0.Peek() as Field;

        if (field.IsRuby)
        {
            Class2 class2 = new Class2(this.documentObject_0.Document);
            class2.method_60(field.Code);
            if ((this.documentObject_0.LastChild is Field) && (this.documentObject_0.LastChild as Field).IsRuby)
            {
                this.documentObject_0.method_20(this.documentObject_0.LastChild);
            }
            this.documentObject_0.method_13(class2);
            class2.ApplyCharacterFormat(A_0);
            this.stack_0.Pop();
        }
        else
        {
            field.IsLocked = A_1;
            field.IsDirty  = A_2;
            FieldType type = Class819.smethod_2(field.Code);
            if (type != FieldType.FieldUnknown)
            {
                field.Type = type;
            }
            if (((field.Type == FieldType.FieldNumPages) || (field.Type == FieldType.FieldPage)) && ((this.documentObject_0.ChildObjects.Count > 0) && (this.documentObject_0.LastChild == field)))
            {
                this.class764_0.method_43().imethod_16(A_0, null);
                TextRange range = new TextRange(this.documentObject_0.Document)
                {
                    Text = string.Empty
                };
                range.ApplyCharacterFormat(field.CharacterFormat);
                this.documentObject_0.method_13(range);
            }
            if (field.Type != FieldType.FieldMergeField)
            {
                FieldMark mark = new FieldMark(this.document_0, A_0, FieldMarkType.FieldEnd);
                this.documentObject_0.method_13(mark);
                field.End = mark;
            }
            field.UpdateFieldCode(field.Code);
            if ((field.Type == FieldType.FieldDate) || (field.Type == FieldType.FieldTime))
            {
                field.method_49();
            }
            this.stack_0.Pop();
            this.fieldCharType_0 = FieldCharType.End;
            Class454 class3 = null;
            if (((field.Type == FieldType.FieldEmbed) || (field.Type == FieldType.FieldLink)) && (this.stack_2.Count > 0))
            {
                if (this.stack_1.Count > 0)
                {
                    class3 = this.stack_1.Pop();
                }
                this.method_6(field, class3);
            }
            if (field.Type == FieldType.FieldShape)
            {
                this.method_5(field);
            }
        }
    }
Esempio n. 13
0
        private void method_0(
            IShape2D path,
            Color color,
            Matrix4D transform,
            bool filled,
            double extrusion,
            bool isChar)
        {
            if (!path.HasSegments)
            {
                return;
            }
            ISurfaceGraphicsFactory graphicsFactory0 = this.isurfaceGraphicsFactory_0;
            IList <Polyline2D>      flattened        = (IList <Polyline2D>)ShapeTool.GetFlattened(path, this.surface_0.Config.ShapeFlattenEpsilon);

            this.isurfaceGraphicsFactory_0.SetColor(this.surface_0.GetPlotColor(this.dxfEntity_0, color));
            Interface41 transformer = (Interface41)this.surface_0.GetTransformer().Clone();

            transformer.SetPreTransform(transform);
            if (!filled)
            {
                IList <Polyline4D> polyline4DList1 = DxfUtil.smethod_48(flattened, transformer);
                foreach (Polyline4D polyline4D in (IEnumerable <Polyline4D>)polyline4DList1)
                {
                    graphicsFactory0.CreatePolyline((IList <Vector4D>)polyline4D, polyline4D.Closed);
                }
                if (extrusion == 0.0)
                {
                    return;
                }
                transformer.SetPreTransform(Transformation4D.Translation(0.0, 0.0, extrusion));
                IList <Polyline4D> polyline4DList2 = DxfUtil.smethod_48(flattened, transformer);
                foreach (Polyline4D polyline4D in (IEnumerable <Polyline4D>)polyline4DList2)
                {
                    graphicsFactory0.CreatePolyline((IList <Vector4D>)polyline4D, polyline4D.Closed);
                }
                Polyline4D polyline4D1 = new Polyline4D(2);
                polyline4D1.Add(Vector4D.Zero);
                polyline4D1.Add(Vector4D.Zero);
                for (int index1 = polyline4DList1.Count - 1; index1 >= 0; --index1)
                {
                    Polyline4D polyline4D2 = polyline4DList1[index1];
                    Polyline4D polyline4D3 = polyline4DList2[index1];
                    for (int index2 = polyline4D2.Count - 1; index2 >= 0; --index2)
                    {
                        polyline4D1[0] = polyline4D2[index2];
                        polyline4D1[1] = polyline4D3[index2];
                        graphicsFactory0.CreatePolyline((IList <Vector4D>)polyline4D1, false);
                    }
                }
            }
            else
            {
                List <Triangulator2D.Triangle> triangleList;
                List <WW.Math.Point2D>         point2DList;
                if (isChar)
                {
                    Class454 class454 = this.surface_0.CharTriangulationCache.method_0(path, this.surface_0.Config);
                    triangleList = class454.Triangles;
                    point2DList  = class454.Points;
                }
                else
                {
                    triangleList = new List <Triangulator2D.Triangle>();
                    point2DList  = new List <WW.Math.Point2D>();
                    IList <IList <WW.Math.Point2D> > polygons = (IList <IList <WW.Math.Point2D> >) new List <IList <WW.Math.Point2D> >();
                    foreach (Polyline2D polyline2D in (IEnumerable <Polyline2D>)flattened)
                    {
                        polygons.Add((IList <WW.Math.Point2D>)polyline2D);
                    }
                    Triangulator2D.Triangulate(polygons, (IList <Triangulator2D.Triangle>)triangleList, (IList <WW.Math.Point2D>)point2DList);
                }
                Polyline2D polyline    = new Polyline2D((IEnumerable <WW.Math.Point2D>)point2DList);
                Polyline4D polyline4D1 = DxfUtil.smethod_49(polyline, transformer);
                if (extrusion == 0.0)
                {
                    for (int index = 0; index < triangleList.Count; ++index)
                    {
                        Triangulator2D.Triangle triangle = triangleList[index];
                        this.isurfaceGraphicsFactory_0.CreateTriangle(polyline4D1[triangle.I0], polyline4D1[triangle.I1], polyline4D1[triangle.I2], (IList <bool>)null);
                    }
                }
                else
                {
                    if (extrusion == 0.0)
                    {
                        return;
                    }
                    IList <Polyline4D> polyline4DList1 = DxfUtil.smethod_48(flattened, transformer);
                    transformer.SetPreTransform(Transformation4D.Translation(0.0, 0.0, extrusion));
                    Polyline4D         polyline4D2     = DxfUtil.smethod_49(polyline, transformer);
                    IList <Polyline4D> polyline4DList2 = DxfUtil.smethod_48(flattened, transformer);
                    if (extrusion > 0.0)
                    {
                        for (int index = 0; index < triangleList.Count; ++index)
                        {
                            Triangulator2D.Triangle triangle = triangleList[index];
                            this.isurfaceGraphicsFactory_0.CreateTriangle(polyline4D1[triangle.I0], polyline4D1[triangle.I2], polyline4D1[triangle.I1], (IList <bool>)null);
                        }
                        for (int index = 0; index < triangleList.Count; ++index)
                        {
                            Triangulator2D.Triangle triangle = triangleList[index];
                            this.isurfaceGraphicsFactory_0.CreateTriangle(polyline4D2[triangle.I0], polyline4D2[triangle.I1], polyline4D2[triangle.I2], (IList <bool>)null);
                        }
                    }
                    else
                    {
                        for (int index = 0; index < triangleList.Count; ++index)
                        {
                            Triangulator2D.Triangle triangle = triangleList[index];
                            this.isurfaceGraphicsFactory_0.CreateTriangle(polyline4D1[triangle.I0], polyline4D1[triangle.I1], polyline4D1[triangle.I2], (IList <bool>)null);
                        }
                        for (int index = 0; index < triangleList.Count; ++index)
                        {
                            Triangulator2D.Triangle triangle = triangleList[index];
                            this.isurfaceGraphicsFactory_0.CreateTriangle(polyline4D2[triangle.I0], polyline4D2[triangle.I2], polyline4D2[triangle.I1], (IList <bool>)null);
                        }
                    }
                    for (int index1 = polyline4DList1.Count - 1; index1 >= 0; --index1)
                    {
                        Polyline4D       polyline4D3 = polyline4DList1[index1];
                        Polyline4D       polyline4D4 = polyline4DList2[index1];
                        Polyline2D       polyline2D  = flattened[index1];
                        IList <Vector3D> normals     = (IList <Vector3D>) new List <Vector3D>(polyline4D3.Count + 1);
                        for (int index2 = 0; index2 < polyline4D3.Count; ++index2)
                        {
                            int      index3   = (index2 + 1) % polyline4D3.Count;
                            Vector2D vector2D = polyline2D[index3] - polyline2D[index2];
                            normals.Add(transformer.Transform(new Vector3D(vector2D.Y, -vector2D.X, 0.0)));
                        }
                        normals.Add(normals[0]);
                        this.isurfaceGraphicsFactory_0.CreateQuadStrip((IList <Vector4D>)polyline4D3, (IList <Vector4D>)polyline4D4, normals, 0, 0);
                    }
                }
            }
        }