From beb382506f5e66208ff7883aed4b6c1c7c746563 Mon Sep 17 00:00:00 2001 From: Louka Date: Thu, 9 Feb 2023 00:01:34 -0500 Subject: [PATCH] Support VRTrackers for protocol rotations --- .../protocol/datafeed/DataFeedBuilder.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/server/src/main/java/dev/slimevr/protocol/datafeed/DataFeedBuilder.java b/server/src/main/java/dev/slimevr/protocol/datafeed/DataFeedBuilder.java index a64bfc876..7383d9440 100644 --- a/server/src/main/java/dev/slimevr/protocol/datafeed/DataFeedBuilder.java +++ b/server/src/main/java/dev/slimevr/protocol/datafeed/DataFeedBuilder.java @@ -131,11 +131,7 @@ public class DataFeedBuilder { public static int createTrackerRotation(FlatBufferBuilder fbb, Tracker tracker) { Quaternion quaternion = new Quaternion(); - if (tracker instanceof IMUTracker imuTracker) { - imuTracker.getRawRotation(quaternion); - } else { - tracker.getRotation(quaternion); - } + tracker.getRawRotation(quaternion); return createQuat(fbb, quaternion); } @@ -194,6 +190,16 @@ public class DataFeedBuilder { imuTracker.getIdentityAdjustedRotation(quaternion); TrackerData.addRotationIdentityAdjusted(fbb, createQuat(fbb, quaternion)); } + } else if (tracker instanceof VRTracker vrTracker) { + Quaternion quaternion = new Quaternion(); + if (mask.getRotationReferenceAdjusted() && tracker.hasRotation()) { + vrTracker.getRotation(quaternion); + TrackerData.addRotationReferenceAdjusted(fbb, createQuat(fbb, quaternion)); + } + if (mask.getRotationIdentityAdjusted() && tracker.hasRotation()) { + vrTracker.getRawRotation(quaternion); + TrackerData.addRotationIdentityAdjusted(fbb, createQuat(fbb, quaternion)); + } } return TrackerData.endTrackerData(fbb);