- vr::TrackedDevicePose_t &hmd_pose = poses[vr::k_unTrackedDeviceIndex_Hmd];
- if(hmd_pose.bPoseIsValid)
- hmd_matrix = convert_matrix(hmd_pose.mDeviceToAbsoluteTracking);
+ for(unsigned i=0; i<n_tracked_devices; ++i)
+ if(poses[i].bPoseIsValid)
+ tracking_matrices[i] = convert_matrix(poses[i].mDeviceToAbsoluteTracking);
+}
+
+const GL::Matrix &OpenVRSystem::get_tracking_matrix(unsigned index) const
+{
+ if(index>=tracking_matrices.size())
+ throw out_of_range("OpenVRSystem::get_tracking_matrix");
+
+ return tracking_matrices[index];
+}
+
+const GL::Matrix &OpenVRSystem::get_hmd_matrix() const
+{
+ return get_tracking_matrix(vr::k_unTrackedDeviceIndex_Hmd);