From edd3dbd123059234089d8b9cbaf94109e6b01aa8 Mon Sep 17 00:00:00 2001 From: Eiren Rain Date: Thu, 14 Jan 2021 03:29:54 +0300 Subject: [PATCH] Fix skeleton nodes rotation being affected by parent nodes rotation --- src/main/java/io/eiren/vr/processor/TransformNode.java | 6 +++++- src/main/java/io/eiren/vr/trackers/TrackersUDPServer.java | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/io/eiren/vr/processor/TransformNode.java b/src/main/java/io/eiren/vr/processor/TransformNode.java index b088bd565..23158a783 100644 --- a/src/main/java/io/eiren/vr/processor/TransformNode.java +++ b/src/main/java/io/eiren/vr/processor/TransformNode.java @@ -11,6 +11,7 @@ public class TransformNode { public final Transform localTransform = new Transform(); public final Transform worldTransform = new Transform(); public final List children = new FastList<>(); + public boolean localRotation = false; private TransformNode parent; public void attachChild(TransformNode node) { @@ -29,7 +30,10 @@ public class TransformNode { worldTransform.set(localTransform); } else { worldTransform.set(localTransform); - worldTransform.combineWithParent(parent.worldTransform); + if(localRotation) + worldTransform.combineWithParent(parent.worldTransform); + else + worldTransform.combineWithParentGlobalRotation(localTransform); } } } diff --git a/src/main/java/io/eiren/vr/trackers/TrackersUDPServer.java b/src/main/java/io/eiren/vr/trackers/TrackersUDPServer.java index bec36e990..d322f6f58 100644 --- a/src/main/java/io/eiren/vr/trackers/TrackersUDPServer.java +++ b/src/main/java/io/eiren/vr/trackers/TrackersUDPServer.java @@ -137,7 +137,7 @@ public class TrackersUDPServer extends Thread { sensor = trackersMap.get(addr); } if(sensor == null) { - IMUTracker imu = new IMUTracker("udp://" + handshakePacket.getAddress().toString(), this); + IMUTracker imu = new IMUTracker("udp:/" + handshakePacket.getAddress().toString(), this); trackersConsumer.accept(imu); sensor = new TrackerConnection(imu, addr); int i = 0;