Hi, essentially trying to find if a point is in a convex polygon.
I thought I would, for each triangle, do a cross product and then a dot product.
I'm thinking < 0 means either inside or outside.
Am I on the wrong path with this idea?
Inside% = 0
For Local tri% = 0 To CountTriangles(Surf)-1
Local v_x_A# = VertexX( Surf,TriangleVertex( Surf, tri, 0 ) )
Local v_y_A# = VertexY( Surf,TriangleVertex( Surf, tri, 0 ) )
Local v_z_A# = VertexZ( Surf,TriangleVertex( Surf, tri, 0 ) )
Local v_x_B# = VertexX( Surf,TriangleVertex( Surf, tri, 1 ) )
Local v_y_B# = VertexY( Surf,TriangleVertex( Surf, tri, 1 ) )
Local v_z_B# = VertexZ( Surf,TriangleVertex( Surf, tri, 1 ) )
Local v_x_C# = VertexX( Surf,TriangleVertex( Surf, tri, 2 ) )
Local v_y_C# = VertexY( Surf,TriangleVertex( Surf, tri, 2 ) )
Local v_z_C# = VertexZ( Surf,TriangleVertex( Surf, tri, 2 ) )
'now get the cross product
'-------------------------
Local A_x# = v_x_B - v_x_A ' B-A, i.e AB
Local A_y# = v_y_B - v_y_A
Local A_z# = v_z_B - v_z_A
Local B_x# = v_x_C - v_x_A ' C-A, i.e. AC
Local B_y# = v_y_C - v_y_A
Local B_z# = v_z_C - v_z_A
Local Cross_X# = (A_y*B_z - A_z*B_y)
Local Cross_Y# = (A_z*B_x - A_x*B_z)
Local Cross_Z# = (A_x*B_y - A_y*B_x)
Local C_x# = Camera_X - v_x_A ' Camera - A i.e. ACamera
Local C_y# = Camera_Y - v_y_A
Local C_z# = Camera_Z - v_z_A
Local dot# = (Cross_X * C_x) + (Cross_Y * C_y) + (Cross_Z * C_z)
If dot > 0 Then Inside :+ 1
Next