// Remove elements >= rightIter that make the curve concave after // adding thisElem. func (f *frontier) maybeRemoveRightElements( thisElem frontierItem, rightIter rbtree.Iterator) { if rightIter.Limit() { return } ti := rightIter.Next() for !ti.Limit() && !isConcave(thisElem, getItem(rightIter), getItem(ti)) { tmp := rightIter rightIter = ti ti = ti.Next() f.tree.DeleteWithIterator(tmp) } }