Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        /// <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();
        }
Ejemplo n.º 3
0
 internal override IEnumerable <IgesEntity> GetReferencedEntities()
 {
     InternalNodes.Clear();
     AddNodes();
     return(InternalNodes);
 }