Exemplo n.º 1
0
void vrlib_wand_posvec (float wand_pos[], float wand_vec[], int virt_world)
{
    vrPoint    pos;
    vrVector   vec;

    if (virt_world)
    {
        vrPointGetVWFromUser6sensor (&pos, 0, WAND_SENSOR);
        wand_pos[VR_X] = pos.v[VR_X];
        wand_pos[VR_Y] = pos.v[VR_Y];
        wand_pos[VR_Z] = pos.v[VR_Z];
        vrVectorGetVWFromUser6sensorDir (&vec, 0, WAND_SENSOR, VRDIR_FORE);
        wand_vec[VR_X] = vec.v[VR_X];
        wand_vec[VR_Y] = vec.v[VR_Y];
        wand_vec[VR_Z] = vec.v[VR_Z];
    }
    else
    {
        vrPointGetRWFrom6sensor (&pos, WAND_SENSOR);
        wand_pos[VR_X] = pos.v[VR_X];
        wand_pos[VR_Y] = pos.v[VR_Y];
        wand_pos[VR_Z] = pos.v[VR_Z];
        vrVectorGetRWFrom6sensorDir (&vec, WAND_SENSOR, VRDIR_FORE);
        wand_vec[VR_X] = vec.v[VR_X];
        wand_vec[VR_Y] = vec.v[VR_Y];
        wand_vec[VR_Z] = vec.v[VR_Z];
    }
    return;
}
Exemplo n.º 2
0
void FreeVRTracker::update() {
  // FreeVR Wand is sensor 1
  #define WAND_SENSOR     1

  vrPoint wand_location;
  vrPointGetRWFrom6sensor(&wand_location, WAND_SENSOR);
  pos[0] = wand_location.v[0];
  pos[1] = wand_location.v[1];
  pos[2] = wand_location.v[2];

  /* get Euler angles for wand orientation */
  vrEuler wand_orientation;
  vrEulerGetRWFrom6sensor(&wand_orientation, WAND_SENSOR);

  orient->identity();
  orient->rot(wand_orientation.r[0],'x');
  orient->rot(wand_orientation.r[1],'y');
  orient->rot(wand_orientation.r[2],'z');
  orient->rot(90,'y'); // to face forward (-z)
}
Exemplo n.º 3
0
/* 24Aug07  Phil McDonald	TODO: include vw functions in CaveLib */
void vrlib_head_pos (float head_pos[], int virt_world)
{
    vrPoint    pos;

    if (virt_world)
    {
        vrPointGetVWFromUser6sensor (&pos, 0, HEAD_SENSOR);
        head_pos[VR_X] = pos.v[VR_X];
        head_pos[VR_Y] = pos.v[VR_Y];
        head_pos[VR_Z] = pos.v[VR_Z];
    }
    else
    {
        vrPointGetRWFrom6sensor (&pos, HEAD_SENSOR);
        head_pos[VR_X] = pos.v[VR_X];
        head_pos[VR_Y] = pos.v[VR_Y];
        head_pos[VR_Z] = pos.v[VR_Z];
    }
    return;
}