X-Git-Url: http://git.tdb.fi/?p=libs%2Fvr.git;a=blobdiff_plain;f=source%2Fstereoview.cpp;fp=source%2Fstereoview.cpp;h=5945016da1ac8d1e20d01c0a4e25f0ceb0300954;hp=7a72a452c279a31b1e64b663441a8621aefc04a3;hb=735148a3ecf7e753f520f22668b771583185f72f;hpb=a7cabd8db417583e7d31349ddecb0bee86d624cb diff --git a/source/stereoview.cpp b/source/stereoview.cpp index 7a72a45..5945016 100644 --- a/source/stereoview.cpp +++ b/source/stereoview.cpp @@ -1,4 +1,5 @@ #include +#include "headtrackingcamera.h" #include "stereocombiner.h" #include "stereoview.h" @@ -10,8 +11,23 @@ namespace VR { StereoView::StereoView(const StereoCombiner &c, const GL::Camera &a): combiner(c), base_camera(a), - content(0) + head_camera(0) { + init(); +} + +StereoView::StereoView(const StereoCombiner &c, HeadTrackingCamera &a): + combiner(c), + base_camera(a), + head_camera(&a) +{ + init(); +} + +void StereoView::init() +{ + content = 0; + unsigned w = combiner.get_target_width(); unsigned h = combiner.get_target_height(); left.create_target(w, h); @@ -38,6 +54,9 @@ void StereoView::set_strabismus(const Geometry::Angle &s) void StereoView::setup_frame() const { + if(head_camera) + head_camera->update(); + GL::Vector3 offset_axis = normalize(cross(base_camera.get_look_direction(), base_camera.get_up_direction()))*0.5f; EyeParams params;