Esempio n. 1
0
        /// <summary>
        /// Creates a larger node, that contains both <paramref name="node.Interval"/> and <paramref name="addInterval"/>
        /// If <paramref name="node"/> is <c>null</c>, a node for <paramref name="addInterval"/> is created.
        /// </summary>
        /// <param name="node">The original node</param>
        /// <param name="addInterval">The additional interval</param>
        /// <returns>A new node</returns>
        public static Node <T> CreateExpanded(Node <T> node, Interval addInterval)
        {
            var expandInt = new Interval(addInterval);

            if (node != null)
            {
                expandInt.ExpandToInclude(node._interval);
            }

            /*
             * var expandInt = node != null
             *              ? addInterval.ExpandedByInterval(node._interval)
             *              : addInterval;
             */
            var largerNode = CreateNode(expandInt);

            if (node != null)
            {
                largerNode.Insert(node);
            }

            return(largerNode);
        }