public void Visit(AcDbLine line) { Line newline = new Line(); newline.StartPoint.X = line.StartPoint.X; newline.StartPoint.Y = line.StartPoint.Y; newline.EndPoint.X = line.EndPoint.X; newline.EndPoint.Y = line.EndPoint.Y; _entities.AddLast(newline); }
public static LinkedList <AcDbEntity> Load(TextReader reader) { LinkedList <AcDbEntity> result = new LinkedList <AcDbEntity>(); State state = State.Start; AcDbEntity entity = null; DxfReader rdr = new DxfReader(reader); while (!rdr.IsEof) { DxfNode node = rdr.Read(); if (state == State.Start || node.TypeCode == 0) { // завершаем текущее состояние if (state != State.Start && node.TypeCode == 0) { state = State.Start; } if (node.TypeCode == 0) { switch ((string)node.Value) { case "LWPOLYLINE": entity = new AcDbPolyline(); result.AddLast(entity); state = State.Entity; break; case "LINE": entity = new AcDbLine(); result.AddLast(entity); state = State.Entity; break; case "CIRCLE": entity = new AcDbCircle(); result.AddLast(entity); state = State.Entity; break; case "ARC": entity = new AcDbArc(); result.AddLast(entity); state = State.Entity; break; } } } else if (state == State.Entity) { entity.TakeNode(node); } } return(result); }