mirror of
https://github.com/SlimeVR/SlimeVR-Server.git
synced 2026-04-06 02:01:58 +02:00
fuck it, undoes your math
This commit is contained in:
@@ -1116,23 +1116,11 @@ public class HumanSkeleton extends Skeleton implements SkeletonConfigCallback {
|
||||
trackerLeftElbowNode.localTransform.setRotation(rotBuf1);
|
||||
}
|
||||
} else { // From HMD
|
||||
if (leftShoulderTracker != null) {
|
||||
if (leftShoulderTracker != null)
|
||||
leftShoulderTracker.getRotation(rotBuf1);
|
||||
leftShoulderHeadNode.localTransform.setRotation(rotBuf1);
|
||||
} else {
|
||||
if (leftUpperArmTracker != null || leftLowerArmTracker != null) {
|
||||
// Average head and arm
|
||||
TrackerUtils
|
||||
.getFirstAvailableTracker(leftUpperArmTracker, leftLowerArmTracker)
|
||||
.getRotation(rotBuf1);
|
||||
headNode.localTransform.getRotation(rotBuf2);
|
||||
rotBuf1.set(shoulderYaw(rotBuf1, rotBuf2));
|
||||
} else {
|
||||
neckNode.localTransform.getRotation(rotBuf1);
|
||||
}
|
||||
|
||||
leftShoulderHeadNode.localTransform.setRotation(rotBuf1);
|
||||
}
|
||||
else
|
||||
neckNode.localTransform.getRotation(rotBuf1);
|
||||
leftShoulderHeadNode.localTransform.setRotation(rotBuf1);
|
||||
|
||||
if (leftUpperArmTracker != null || leftLowerArmTracker != null) {
|
||||
TrackerUtils
|
||||
@@ -1182,23 +1170,11 @@ public class HumanSkeleton extends Skeleton implements SkeletonConfigCallback {
|
||||
trackerRightElbowNode.localTransform.setRotation(rotBuf1);
|
||||
}
|
||||
} else { // From HMD
|
||||
if (rightShoulderTracker != null) {
|
||||
if (rightShoulderTracker != null)
|
||||
rightShoulderTracker.getRotation(rotBuf1);
|
||||
rightShoulderHeadNode.localTransform.setRotation(rotBuf1);
|
||||
} else {
|
||||
if (rightUpperArmTracker != null || rightLowerArmTracker != null) {
|
||||
// Average head and arm
|
||||
TrackerUtils
|
||||
.getFirstAvailableTracker(rightUpperArmTracker, rightLowerArmTracker)
|
||||
.getRotation(rotBuf1);
|
||||
headNode.localTransform.getRotation(rotBuf2);
|
||||
rotBuf1.set(shoulderYaw(rotBuf1, rotBuf2));
|
||||
} else {
|
||||
neckNode.localTransform.getRotation(rotBuf1);
|
||||
}
|
||||
|
||||
rightShoulderHeadNode.localTransform.setRotation(rotBuf1);
|
||||
}
|
||||
else
|
||||
neckNode.localTransform.getRotation(rotBuf1);
|
||||
rightShoulderHeadNode.localTransform.setRotation(rotBuf1);
|
||||
|
||||
if (rightUpperArmTracker != null || rightLowerArmTracker != null) {
|
||||
TrackerUtils
|
||||
@@ -1292,20 +1268,6 @@ public class HumanSkeleton extends Skeleton implements SkeletonConfigCallback {
|
||||
return hip.normalizeLocal();
|
||||
}
|
||||
|
||||
/**
|
||||
* Rotates the first Quaternion to match its local yaw to the rotation of
|
||||
* the second Quaternion
|
||||
*
|
||||
* @param elbow the first Quaternion
|
||||
* @param head the second Quaternion
|
||||
* @return the rotated Quaternion
|
||||
*/
|
||||
private Quaternion shoulderYaw(Quaternion elbow, Quaternion head) {
|
||||
rotBuf1.set(head.inverse().multLocal(elbow));
|
||||
return head.mult(new Quaternion(0, rotBuf1.getY(), 0, rotBuf1.getW()));
|
||||
}
|
||||
|
||||
|
||||
// #region Update the output trackers
|
||||
protected void updateComputedTrackers() {
|
||||
if (computedHeadTracker != null) {
|
||||
|
||||
@@ -101,13 +101,13 @@ public enum SkeletonConfigOffsets {
|
||||
UPPER_ARM(
|
||||
16,
|
||||
"upperArmLength",
|
||||
0.25f,
|
||||
0.26f,
|
||||
new BoneType[] { BoneType.LEFT_UPPER_ARM, BoneType.RIGHT_UPPER_ARM }
|
||||
),
|
||||
LOWER_ARM(
|
||||
17,
|
||||
"lowerArmLength",
|
||||
0.25f,
|
||||
0.26f,
|
||||
new BoneType[] { BoneType.LEFT_LOWER_ARM, BoneType.RIGHT_LOWER_ARM }
|
||||
),
|
||||
CONTROLLER_Y(
|
||||
|
||||
Reference in New Issue
Block a user