private void MergeHulls(WorkBuffer <PartialHull> hulls, Event e)
        {
            //Swap pointers for merge search
            var tmp = e.A;

            e.A = e.B;
            e.B = tmp;
            var mergeIdx = BinarySearch.EQ(hulls.Data, e, FindSplit.Default, 0, hulls.UsedSize - 1);
            var upper    = hulls.Data[mergeIdx];
            var lower    = hulls.Data[mergeIdx - 1];

            lower.UpperIds = upper.UpperIds;
            hulls.RemoveAt(mergeIdx);

            if (Verbose)
            {
                Debug.Log("Merge: " + mergeIdx);
                DumpHulls(hulls);
                hulls.Dump();
            }
        }