Barsky Liang Youdong algorithm