#define SourcePosition vector (vibra_obje.x, vibra_obje.y, vibra_obje.z)
#define ListenerPosition vector (camera.x, camera.y, camera.z)
#define LookatDirection vector (camera.x + cos (camera.pan) * 80000000, camera.y + sin (camera.pan) * 80000000, 0)
#define UpDirection vector (0, 0, 1)
function test_pan ()
{
/*
S = source position
L = listeners positon
A = look at direction
B = up direction
*/
//dot( normalize( cross( A, B ) ), normalize( S - L ) )
VECTOR cross_LookANDUp;
vec_cross (cross_LookANDUp, LookatDirection, UpDirection);
VECTOR S_Subtract_L;
vec_set (S_Subtract_L, SourcePosition);
vec_sub (S_Subtract_L, ListenerPosition);
vec_normalize (cross_LookANDUp, 1);
vec_normalize (S_Subtract_L, 1);
var panning = vec_dot (cross_LookANDUp, S_Subtract_L);
if (panning < 0)
{
xbox_ctrl_vibrate (65535, 0);
}
else
{
xbox_ctrl_vibrate (0, 65535);
}
}