Isn't isTipConvex indirectly needed by eliminateHoles?