namespace VR {
HeadTrackingCamera::HeadTrackingCamera(const GL::Camera &c):
- base_camera(c)
+ base_camera(c),
+ elevation_offset(0)
{ }
+void HeadTrackingCamera::set_elevation_offset(float o)
+{
+ elevation_offset = o;
+}
+
void HeadTrackingCamera::update_from_matrix(const GL::Matrix &hmd_matrix)
{
GL::Matrix matrix = base_camera.get_object_matrix()*hmd_matrix;
- set_position(matrix*GL::Vector3());
+ set_position(matrix*GL::Vector3()+base_camera.get_up_direction()*elevation_offset);
set_look_direction((matrix*GL::Vector4(0, 0, -1, 0)).slice<3>(0));
set_up_direction((matrix*GL::Vector4(0, 1, 0, 0)).slice<3>(0));