Function ray_plane:Int(p1x#,p1y#,p1z#, p2x#,p2y#,p2z#, pax#,pay#,paz#, pbx#,pby#,pbz#, pcx#,pcy#,pcz#)
Local d#
Local total#,denom#,mu#
Local nx#,ny#,nz#
Local dx1#=(pcx - pax)
Local dy1#=(pcy - pay)
Local dz1#=(pcz - paz)
Local dx2#=(pbx - pax)
Local dy2#=(pby - pay)
Local dz2#=(pbz - paz)
nx#=(dy1*dz2)-(dz1*dy2)
ny#=(dz1*dx2)-(dx1*dz2)
nz#=(dx1*dy2)-(dy1*dx2)
d = - nx * pax - ny * pay - nz * paz
'Calculate the position on the Line that intersects the plane
denom = nx * (p2x - p1x) + ny * (p2y - p1y) + nz * (p2z - p1z);
If (Abs(denom) < 0.0001) Then Return 0 'Line and plane don't intersect
mu = - (d + nx * p1x + ny * p1y + nz * p1z) / denom
vecX = p1x + mu * (p2x - p1x)
vecY = p1y + mu * (p2y - p1y)
vecZ = p1z + mu * (p2z - p1z)
Return 1
End Function