Source: https://www.hds.utc.fr/~ptrigano/edalgo/docs/CR_Visio.pdf