Source: https://orbi.uliege.be/bitstream/2268/254932/1/TDS_discover_point_cloud_processing_with_python.pdf