internal static DxfTable ReadFromBuffer(DxfCodePairBufferReader buffer) { var table = new DxfStyleTable(); table.Items.Clear(); while (buffer.ItemsRemain) { var pair = buffer.Peek(); buffer.Advance(); if (DxfTablesSection.IsTableEnd(pair)) { break; } if (pair.Code == 0 && pair.StringValue == DxfTable.StyleText) { var item = DxfStyle.FromBuffer(buffer); table.Items.Add(item); } } return(table); }
internal static DxfStyle FromBuffer(DxfCodePairBufferReader buffer) { var item = new DxfStyle(); while (buffer.ItemsRemain) { var pair = buffer.Peek(); if (pair.Code == 0) { break; } buffer.Advance(); switch (pair.Code) { case 70: item.StandardFlags = (int)pair.ShortValue; break; case DxfCodePairGroup.GroupCodeNumber: var groupName = DxfCodePairGroup.GetGroupName(pair.StringValue); item.ExtensionDataGroups.Add(DxfCodePairGroup.FromBuffer(buffer, groupName)); break; case 40: item.TextHeight = (pair.DoubleValue); break; case 41: item.WidthFactor = (pair.DoubleValue); break; case 50: item.ObliqueAngle = (pair.DoubleValue); break; case 71: item.TextGenerationFlags = (int)(pair.ShortValue); break; case 42: item.LastHeightUsed = (pair.DoubleValue); break; case 3: item.PrimaryFontFileName = (pair.StringValue); break; case 4: item.BigFontFileName = (pair.StringValue); break; case (int)DxfXDataType.ApplicationName: item.XData = DxfXData.FromBuffer(buffer, pair.StringValue); break; default: item.TrySetPair(pair); break; } } return item; }