Source: http://igd.unil.ch/projrech/public/projets/119-1-210.pdf