better nearest-vertex snapping