Example #1
0
        public bool GetSelector(CompNodeBase subNode)
        {
            int idx = Array.IndexOf(SubNodes, subNode);

            if (idx == -1)
            {
                throw new Exception("Not the right parent node.");
            }

            return(idx == 0 ? true : false);
        }
Example #2
0
        public byte[] DecodeTree(CompNode tree, bool[] data)
        {
            List <byte> result       = new List <byte>();
            CompNode    selectedNode = tree;

            foreach (bool singleBit in data)
            {
                CompNodeBase currentNode = selectedNode.Next(singleBit);
                if (currentNode is CompNodeValue vNode)
                {
                    result.Add(vNode.Value);
                    selectedNode = tree;
                }
                else
                {
                    selectedNode = currentNode as CompNode;
                }
            }
            return(result.ToArray());
        }