Example #1
0
        public static SerializableNode NewLink(int id, Link link)
        {
            SerializableNode newNode = new SerializableNode(id, null, link);

            newNode.isLink = true;
            return(newNode);
        }
Example #2
0
        public static SerializableNode NewNode(int id, NodeData data)
        {
            SerializableNode newNode = new SerializableNode(id, data, null);

            newNode.isLink   = false;
            newNode.children = new List <int>();
            return(newNode);
        }
Example #3
0
 private void ImportChildNodes(Node node, SerializableNode parent)
 {
     foreach (int childID in parent.children)
     {
         SerializableNode child = nodes[childID];
         if (child.isLink)
         {
             Link newLink = node.AddLink(null);
             child.node = newLink;
         }
         else
         {
             Node newNode = node.AddNode(child.data);
             child.node = newNode;
             ImportChildNodes(newNode, child);
         }
     }
 }
Example #4
0
        private SerializableNode ExportNode(BaseNode node)
        {
            SerializableNode newNode;

            if (node.isLink)
            {
                newNode = SerializableNode.NewLink(nodes.Count, (Link)node);
                nodes.Add(newNode);
                links.Add(newNode);
            }
            else
            {
                newNode = SerializableNode.NewNode(nodes.Count, node.Data);
                nodes.Add(newNode);
                tempNodes.Add((Node)node, newNode);

                foreach (BaseNode child in ((Node)node).Children)
                {
                    newNode.children.Add(nodes.Count);
                    ExportNode(child);
                }
            }
            return(newNode);
        }