1 2 3 4 5 6 7 8 9 10 11 12 13 14
| ''' <param name="RayPos">Position de la camera ou d'un objet</param>
''' <param name="RayDir">Direction du déplacement</param>
''' <param name="Distance">distance minimum de la collision (exemple la bounding sphere)</param>
''' <returns>True en cas de collision</returns>
Public Function Intersect(ByVal RayPos As Vector3, ByVal RayDir As Vector3, ByVal Distance As Single) As Boolean
Dim matrix1 As Matrix = MatWorld 'Matrice world de ton mesh
matrix1.Invert()
Dim RayPosLocal As Vector3 = Vector3.TransformCoordinate(RayPos, matrix1)
Dim close_hit As IntersectInformation
Dim Collide As Boolean = Mesh.Intersect(RayPosLocal, RayDir, close_hit)
If (Collide = True) And (close_hit.Dist < Distance) Then Return True
End Function |
Partager