fuck it, undoes your math

This commit is contained in:
Louka
2023-01-23 19:37:03 -05:00
parent a562029f7d
commit 7d1d53ab98
2 changed files with 10 additions and 48 deletions

View File

@@ -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) {

View File

@@ -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(