Author: Dominique Daugeras