public void WritePolylineTest() { var file = new DxfFile(); file.Header.Version = DxfAcadVersion.R2000; // owner handles only present on R2000+ var poly = new DxfPolyline(); poly.Vertices.Add(new DxfVertex()); poly.Vertices.Add(new DxfVertex()); file.Entities.Add(poly); VerifyFileContains(file, @" 0 SECTION 2 ENTITIES 0 POLYLINE 5 A 330 0 100 AcDbEntity 8 0 370 0 100 AcDb2dPolyline 10 0.0 20 0.0 30 0.0 0 VERTEX 5 B 330 A 100 AcDbEntity 8 0 370 0 100 AcDbVertex 10 0.0 20 0.0 30 0.0 70 0 50 0.0 0 VERTEX 5 C 330 A 100 AcDbEntity 8 0 370 0 100 AcDbVertex 10 0.0 20 0.0 30 0.0 70 0 50 0.0 0 SEQEND 5 D 330 A 100 AcDbEntity 8 0 370 0 0 ENDSEC "); }
internal static DxfEntity FromBuffer(DxfCodePairBufferReader buffer) { var first = buffer.Peek(); buffer.Advance(); DxfEntity entity; switch (first.StringValue) { case "3DFACE": entity = new Dxf3DFace(); break; case "3DSOLID": entity = new Dxf3DSolid(); break; case "ACAD_PROXY_ENTITY": entity = new DxfProxyEntity(); break; case "ARC": entity = new DxfArc(); break; case "ARCALIGNEDTEXT": entity = new DxfArcAlignedText(); break; case "ATTDEF": entity = new DxfAttributeDefinition(); break; case "ATTRIB": entity = new DxfAttribute(); break; case "BODY": entity = new DxfBody(); break; case "CIRCLE": entity = new DxfCircle(); break; case "DIMENSION": entity = new DxfDimensionBase(); break; case "ELLIPSE": entity = new DxfEllipse(); break; case "HELIX": entity = new DxfHelix(); break; case "IMAGE": entity = new DxfImage(); break; case "INSERT": entity = new DxfInsert(); break; case "LEADER": entity = new DxfLeader(); break; case "LIGHT": entity = new DxfLight(); break; case "LINE": case "3DLINE": entity = new DxfLine(); break; case "LWPOLYLINE": entity = new DxfLwPolyline(); break; case "MLINE": entity = new DxfMLine(); break; case "MLEADERSTYLE": entity = new DxfMLeaderStyle(); break; case "MTEXT": entity = new DxfMText(); break; case "OLEFRAME": entity = new DxfOleFrame(); break; case "OLE2FRAME": entity = new DxfOle2Frame(); break; case "POINT": entity = new DxfModelPoint(); break; case "POLYLINE": entity = new DxfPolyline(); break; case "RAY": entity = new DxfRay(); break; case "REGION": entity = new DxfRegion(); break; case "RTEXT": entity = new DxfRText(); break; case "SECTION": entity = new DxfEntitySection(); break; case "SEQEND": entity = new DxfSeqend(); break; case "SHAPE": entity = new DxfShape(); break; case "SOLID": entity = new DxfSolid(); break; case "SPLINE": entity = new DxfSpline(); break; case "SUN": entity = new DxfSun(); break; case "TEXT": entity = new DxfText(); break; case "TOLERANCE": entity = new DxfTolerance(); break; case "TRACE": entity = new DxfTrace(); break; case "UNDERLAY": entity = new DxfUnderlay(); break; case "DGNUNDERLAY": entity = new DxfDgnUnderlay(); break; case "DWFUNDERLAY": entity = new DxfDwfUnderlay(); break; case "PDFUNDERLAY": entity = new DxfPdfUnderlay(); break; case "VERTEX": entity = new DxfVertex(); break; case "WIPEOUT": entity = new DxfWipeout(); break; case "XLINE": entity = new DxfXLine(); break; default: SwallowEntity(buffer); entity = null; break; } if (entity != null) { entity = entity.PopulateFromBuffer(buffer); } return entity; }
internal static DxfEntity FromBuffer(DxfCodePairBufferReader buffer) { var first = buffer.Peek(); buffer.Advance(); DxfEntity entity; switch (first.StringValue) { case "3DFACE": entity = new Dxf3DFace(); break; case "3DSOLID": entity = new Dxf3DSolid(); break; case "ACAD_PROXY_ENTITY": entity = new DxfProxyEntity(); break; case "ARC": entity = new DxfArc(); break; case "ARCALIGNEDTEXT": entity = new DxfArcAlignedText(); break; case "ATTDEF": entity = new DxfAttributeDefinition(); break; case "ATTRIB": entity = new DxfAttribute(); break; case "BODY": entity = new DxfBody(); break; case "CIRCLE": entity = new DxfCircle(); break; case "DIMENSION": entity = new DxfDimensionBase(); break; case "ELLIPSE": entity = new DxfEllipse(); break; case "HELIX": entity = new DxfHelix(); break; case "IMAGE": entity = new DxfImage(); break; case "INSERT": entity = new DxfInsert(); break; case "LEADER": entity = new DxfLeader(); break; case "LIGHT": entity = new DxfLight(); break; case "LINE": case "3DLINE": entity = new DxfLine(); break; case "LWPOLYLINE": entity = new DxfLwPolyline(); break; case "MLINE": entity = new DxfMLine(); break; case "MTEXT": entity = new DxfMText(); break; case "OLEFRAME": entity = new DxfOleFrame(); break; case "OLE2FRAME": entity = new DxfOle2Frame(); break; case "POINT": entity = new DxfModelPoint(); break; case "POLYLINE": entity = new DxfPolyline(); break; case "RAY": entity = new DxfRay(); break; case "REGION": entity = new DxfRegion(); break; case "RTEXT": entity = new DxfRText(); break; case "SECTION": entity = new DxfEntitySection(); break; case "SEQEND": entity = new DxfSeqend(); break; case "SHAPE": entity = new DxfShape(); break; case "SOLID": entity = new DxfSolid(); break; case "SPLINE": entity = new DxfSpline(); break; case "TEXT": entity = new DxfText(); break; case "TOLERANCE": entity = new DxfTolerance(); break; case "TRACE": entity = new DxfTrace(); break; case "UNDERLAY": entity = new DxfUnderlay(); break; case "DGNUNDERLAY": entity = new DxfDgnUnderlay(); break; case "DWFUNDERLAY": entity = new DxfDwfUnderlay(); break; case "PDFUNDERLAY": entity = new DxfPdfUnderlay(); break; case "VERTEX": entity = new DxfVertex(); break; case "WIPEOUT": entity = new DxfWipeout(); break; case "XLINE": entity = new DxfXLine(); break; default: SwallowEntity(buffer); entity = null; break; } if (entity != null) { entity = entity.PopulateFromBuffer(buffer); } return(entity); }
private void WritePolyline(DxfPolyline polyline) { WriteItemType(DxbItemType.Polyline); WriteW((short)(polyline.IsClosed ? 1 : 0)); foreach (var vertex in polyline.Vertices) { WriteVertex(vertex); } WriteSeqend(); }