added DistSquaredToLine()