Я конечно не великий програмёр, но мне кажется что нет смысла в некоторых функциях
Например
---------------------
lineoverlap2d%(ax1#,ay1#,ax2#,ay2#,bx1#,by1#,bx2#, by2#)
вместо него использовать старый
RectsOverlap (X1,Y1,1,1,X2,Y2,rectWidth2,rectHeight2) - сделает ту же проверку точки к прямоугольнику
----------------
distance3d#(x#,y#,z#,x2#,y2#,z2#) - мне ни разу не пришлось брать "никкому" не относящиеся точки для проверки, и не представляю для чего это
Лучше старый велосипед entityDistance(ent1,ent2)
На крайняк пивота создать )
-------------------
А вот проверка отрезков, треугольника и окружностей вполне пригодятся