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(); } }