/// <summary>Removes and returns the <see cref="FloodFillRange"/> at the beginning of the queue.</summary>
        public FloodFillRange Dequeue()
        {
            FloodFillRange range = new FloodFillRange();

            if (size > 0)
            {
                range       = array[head];
                array[head] = new FloodFillRange();
                head++; //advance head position
                size--; //update size to exclude dequeued item
            }
            return(range);
        }