Here is my substitute for the slow meshesintersect function
It works faster than meshesintersect on my computer. I can also use pickedx and pickedy and pickedz to determine where the collision was. I am currently trying to get it to figure out which vertex was hit.
Function NMeshesIntersect(e1,e2) EntityPickMode e1,0 EntityPickMode e2,2 Surfaces=CountSurfaces(e1) For s=1 To Surfaces Surf = GetSurface(e1,s) Triangles=CountTriangles(Surf)-1 For t=0 To Triangles v1 = TriangleVertex(surf,t,0) v2 = TriangleVertex(surf,t,1) v3 = TriangleVertex(surf,t,2) v1x# = VertexX(surf,v1) v1y# = VertexY(surf,v1) v1z# = VertexZ(surf,v1) v2x# = VertexX(surf,v2) v2y# = VertexY(surf,v2) v2z# = VertexZ(surf,v2) v3x# = VertexX(surf,v3) v3y# = VertexY(surf,v3) v3z# = VertexZ(surf,v3) tent = LinePick(v1x#,v1y#,v1z#,v2x#-v1x#,v2y#-v1y#,v2z#-v1z#) ;If tent <> Null Then If tent = e2 Then Return True Else tent = LinePick(v2x#,v2y#,v2z#,v3x#-v2x#,v3y#-v2y#,v3z#-v2z#) ;If tent <> Null Then If tent = e2 Then Return True Else tent = LinePick(v3x#,v3y#,v3z#,v1x#-v3x#,v1y#-v3y#,v1z#-v3z#) ;If tent <> Null Then If tent = e2 Then Return True EndIf ;EndIf EndIf ;EndIf EndIf ;EndIf Next Next Return False End Function
It works faster than meshesintersect on my computer. I can also use pickedx and pickedy and pickedz to determine where the collision was. I am currently trying to get it to figure out which vertex was hit.