Вам не нужна библиотека. Тебе нужна математика.
Вектор поразит самолет в этом месте
(x,y,z) = (x1+l*a1, y1+l*b1, z1+l*c1)
с буквой L, так что
a * (x1 + a1*L) + b * (y1 + b1*L) + c * (z1 + c1*L) + d = 0
Несколько эквивалентных изменений
L * ( a1*a + b1*b + c1*c) + (a*x1 + b*y1 + c*z1 + d) = 0
L * ( a1*a + b1*b + c1*c) = -(a*x1 + b*y1 + c*z1 + d)
L = -(a*x1 + b*y1 + c*z1 + d) / ( a1*a + b1*b + c1*c)
Вы можете рассчитать L таким образом (при условии отсутствия деления на 0).
Затем из L вы можете рассчитать D, расстояние между точкой и пересечением плоскости и направления.
Как вы сами выразились (быстрее и лучше, чем я описывал в своей голове), вектор направления должен быть заранее нормализован на единицу, чтобы на самом деле L = D.