http://openinx.github.io/2013/01/01/plane-sweep-thinking/