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 WriteFace(Dxf3DFace face) { WriteItemType(DxbItemType.Face); WriteN(face.FirstCorner.X); WriteN(face.FirstCorner.Y); WriteN(face.FirstCorner.Z); WriteN(face.SecondCorner.X); WriteN(face.SecondCorner.Y); WriteN(face.SecondCorner.Z); WriteN(face.ThirdCorner.X); WriteN(face.ThirdCorner.Y); WriteN(face.ThirdCorner.Z); WriteN(face.FourthCorner.X); WriteN(face.FourthCorner.Y); WriteN(face.FourthCorner.Z); }