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); }
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); }
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); }
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); } }
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; }
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); }
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)); } } } }
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) { }
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); }
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); } } }
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); } } } }