internal override void WriteParameters(List <object> parameters, IgesWriterBinder binder) { parameters.Add(this.TopologyNumber); parameters.Add(this.InternalNodes.Count); parameters.AddRange(InternalNodes.Select(binder.GetEntityId).Cast <object>()); parameters.Add(ElementTypeName); InternalNodes.Clear(); }
/// <summary> /// Load rtf from rtf reader /// </summary> /// <param name="reader">RTF text reader</param> // ReSharper disable once MemberCanBePrivate.Global public void Load(Reader reader) { InternalNodes.Clear(); var groups = new Stack(); NodeGroup newGroup = null; while (reader.ReadToken() != null) { if (reader.TokenType == RtfTokenType.GroupStart) { // Begin group if (newGroup == null) { newGroup = this; } else { newGroup = new NodeGroup { OwnerDocument = this }; } if (newGroup != this) { var group = (NodeGroup)groups.Peek(); group.AppendChild(newGroup); } groups.Push(newGroup); } else if (reader.TokenType == RtfTokenType.GroupEnd) { // end group newGroup = (NodeGroup)groups.Pop(); newGroup.MergeText(); // ReSharper disable once CSharpWarnings::CS0183 if (newGroup.FirstNode is Node) { switch (newGroup.Keyword) { case Consts.Fonttbl: // Read font table ReadFontTable(newGroup); break; case Consts.Colortbl: // Read color table ReadColorTable(newGroup); break; case Consts.Info: // Read document information ReadDocumentInfo(newGroup); break; } } if (groups.Count > 0) { newGroup = (NodeGroup)groups.Peek(); } else { break; } //NewGroup.MergeText(); } else { // Read content var newNode = new Node(reader.CurrentToken) { OwnerDocument = this }; if (newGroup != null) { newGroup.AppendChild(newNode); } switch (newNode.Keyword) { case Consts.F: { var font = FontTable[newNode.Parameter]; _fontChartset = font != null ? font.Encoding : null; //myFontChartset = RTFFont.GetRTFEncoding( NewNode.Parameter ); } break; case Consts.Af: { var font = FontTable[newNode.Parameter]; _associatedFontChartset = font != null ? font.Encoding : null; } break; } } } while (groups.Count > 0) { newGroup = (NodeGroup)groups.Pop(); newGroup.MergeText(); } //this.UpdateInformation(); }
internal override IEnumerable <IgesEntity> GetReferencedEntities() { InternalNodes.Clear(); AddNodes(); return(InternalNodes); }