X-Git-Url: http://git.tdb.fi/?p=libs%2Fvr.git;a=blobdiff_plain;f=source%2Fheadtrackingcamera.cpp;h=42eedd5d90caa21543776a47d95049069b99e587;hp=95868e2f12f107a512dda7d39e1dca0dc8fdce14;hb=0b9fa4d7eb2acb22f5f4f31bbd508d0216421108;hpb=dca13ee66628568631f502dfc79847c7368c7bb1 diff --git a/source/headtrackingcamera.cpp b/source/headtrackingcamera.cpp index 95868e2..42eedd5 100644 --- a/source/headtrackingcamera.cpp +++ b/source/headtrackingcamera.cpp @@ -4,14 +4,20 @@ namespace Msp { 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));