Tool path generation on doubly-curved free-form surfaces