コード例 #1
0
ファイル: SVGParser.cs プロジェクト: Avatarchik/OutOfTheBox
        public void OnEndElement(string name)
        {
            Node node = new BlockCloseNode(Lookup(name), new AttributeList(), --_currentDepth);

//            Debug.Log("OnEndElement: "+name);

            if (_lastParent != null)
            {
                _lastParent = _lastParent.parent;
            }
            else
            {
                _lastParent = null;
            }

            node.parent = _lastParent;

            //Debug.Log("OnEndElement: "+node.name+", depth: "+node.depth);

            switch (node.name)
            {
            case SVGNodeName.LinearGradient:
            case SVGNodeName.RadialGradient:
            case SVGNodeName.ConicalGradient:
                AddNode(node);
                return;

            case SVGNodeName.Defs:
                DontPutInNodesRemove(node);
                break;

            case SVGNodeName.Symbol:
                DontPutInNodesRemove(node);
                break;

            case SVGNodeName.Image:
                DontPutInNodesRemove(node);
                break;

            case SVGNodeName.ClipPath:
                DontPutInNodesRemove(node);
                break;

            case SVGNodeName.Mask:
                DontPutInNodesRemove(node);
                break;

            default:
                if (dontPutInNodes.Count == 0)
                {
                    AddNode(node);
                }
                break;
            }
        }
コード例 #2
0
        protected void GetNodesInternal(Node node, List<Node> nodes)
        {
            if (node == null)
                return;
            
            nodes.Add(node);
            int nodeChildrenCount = node.children.Count;
            for (int i = 0; i < nodeChildrenCount; i++)
            {
                GetNodesInternal(node.children [i], nodes);
            }

            if (node is BlockOpenNode)
            {
                //Lookup(name), )
                Node endNode = new BlockCloseNode(node.name, new AttributeList(), node.depth);
                nodes.Add(endNode);
            }
        }
コード例 #3
0
ファイル: SVGParser.cs プロジェクト: suntabu/svgimporter
        protected void GetNodesInternal(Node node, List<Node> nodes)
        {
            if (node == null)
                return;
            
            nodes.Add(node);
            int nodeChildrenCount = node.children.Count;
            for (int i = 0; i < nodeChildrenCount; i++)
            {
                GetNodesInternal(node.children [i], nodes);
            }

            if (node is BlockOpenNode)
            {
                //Lookup(name), )
                Node endNode = new BlockCloseNode(node.name, new AttributeList(), node.depth);
                nodes.Add(endNode);
            }
        }
コード例 #4
0
        public void OnEndElement(string name)
        {
            Node node = new BlockCloseNode(Lookup(name), new AttributeList(), --_currentDepth);
//            Debug.Log("OnEndElement: "+name);

            if (_lastParent != null)
            {
                _lastParent = _lastParent.parent;
            } else
            {
                _lastParent = null;
            }

            node.parent = _lastParent;

            //Debug.Log("OnEndElement: "+node.name+", depth: "+node.depth);

            switch (node.name)
            {
                case SVGNodeName.LinearGradient:
                case SVGNodeName.RadialGradient:
                case SVGNodeName.ConicalGradient:
                    AddNode(node);
                    return;                
                case SVGNodeName.Defs:
                    DontPutInNodesRemove(node);
                    break;
                case SVGNodeName.Symbol:
                    DontPutInNodesRemove(node);
                    break;
                case SVGNodeName.Image:
                    DontPutInNodesRemove(node);
                    break;
                case SVGNodeName.ClipPath:
                    DontPutInNodesRemove(node);
                    break;
                case SVGNodeName.Mask:
                    DontPutInNodesRemove(node);
                    break;
                default:
                    if (dontPutInNodes.Count == 0)
                    {
                        AddNode(node);
                    }
                    break;
            }

        }