Example #1
0
        private SortedSet <int> GetNodes(CompressedNode node)
        {
            if (!node.ReferenceId.HasValue)
            {
                return(node.ExtraNodes);
            }

            var referenceNode = GraphStructure.FirstOrDefault(x => x.Id == node.ReferenceId.Value);

            var allExtraNodes = GetNodes(referenceNode);

            var filteredExtraNodes = new SortedSet <int>();

            for (int i = 0; i < node.ReferenceList.Count; i++)
            {
                if (node.ReferenceList[i])
                {
                    filteredExtraNodes.Add(allExtraNodes.ElementAt(i));
                }
            }

            foreach (var extraNode in node.ExtraNodes)
            {
                filteredExtraNodes.Add(extraNode);
            }

            return(filteredExtraNodes);
        }
Example #2
0
 public void AddNode(CompressedNode node)
 {
     GraphStructure.Add(node);
 }