drapePoint refactored