1 #include "libovrcamera.h"
2 #include "libovrsystem.h"
3 #include "libovrsystem_private.h"
8 LibOVRCamera::LibOVRCamera(const LibOVRSystem &d, const GL::Camera &c):
12 unsigned supported = ovrTrackingCap_Orientation|ovrTrackingCap_MagYawCorrection|ovrTrackingCap_Position;
13 ovrHmd_ConfigureTracking(device.get_private().ovr_hmd, supported, 0);
16 void LibOVRCamera::reset_tracking()
18 ovrHmd_RecenterPose(device.get_private().ovr_hmd);
21 void LibOVRCamera::update()
24 if(device.is_timing_active())
25 time = device.get_tracking_time();
27 time = device.get_current_time();
29 ovrTrackingState state = ovrHmd_GetTrackingState(device.get_private().ovr_hmd, time);
30 OVR::Posef head_pose = state.HeadPose.ThePose;
31 OVR::Matrix4f tracking_matrix(head_pose);
32 update_from_matrix(transpose(GL::Matrix(&tracking_matrix.M[0][0])));