From ffcda7f602d808e794d1f6779e71ae3fc03bcdaf Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Sun, 22 Nov 2020 19:59:34 +0100 Subject: [PATCH] vr:: fixes to spinEdge --- hypgraph.cpp | 4 +++- vr.cpp | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/hypgraph.cpp b/hypgraph.cpp index 88f7e2eb..6889457f 100644 --- a/hypgraph.cpp +++ b/hypgraph.cpp @@ -1594,7 +1594,7 @@ EX hyperpoint vertical_vector() { EX void spinEdge(ld aspd) { #if CAP_VR - if(vrhr::state && keep_vertical()) { + if(vrhr::state && keep_vertical() && !vrhr::first) { transmatrix T = vrhr::hmd_ref_at; T = vrhr::sm * inverse(T); vrhr::be_33(T); @@ -1618,6 +1618,8 @@ EX void spinEdge(ld aspd) { } } + vrhr::be_33(V); + V = cspin(1, 2, 90 * degree) * V; get_view_orientation() = inverse(T) * V * gpushxto0(h); return; diff --git a/vr.cpp b/vr.cpp index a4c643f8..154fd671 100644 --- a/vr.cpp +++ b/vr.cpp @@ -189,7 +189,7 @@ string device_class_name(vr::ETrackedDeviceClass v) { return "unknown"; } -bool first = true; +EX bool first = true; EX transmatrix hmd_at = Id; EX transmatrix hmd_ref_at = Id; @@ -286,7 +286,6 @@ void track_all() { track_actions(); E4; - sm = Id; sm[1][1] = sm[2][2] = -1; // println(hlog, "tracking"); vr::VRCompositor()->WaitGetPoses(vrdata.poses, vr::k_unMaxTrackedDeviceCount, NULL, 0 ); // println(hlog, "poses received"); @@ -552,6 +551,8 @@ EX void track_actions() { EX void start_vr() { + if(true) { sm = Id; sm[1][1] = sm[2][2] = -1; } + vr::EVRInitError eError = vr::VRInitError_None; vrdata.vr = vr::VR_Init( &eError, vr::VRApplication_Scene );