Better feet tracking

This commit is contained in:
Eiren Rain
2021-06-17 07:57:13 +03:00
parent 6b28c2ec7a
commit b7b9b67133
2 changed files with 15 additions and 13 deletions

View File

@@ -97,7 +97,10 @@ public class HumanSekeletonWithLegs extends HumanSkeleonWithWaist {
rightAnkleNode.localTransform.setTranslation(0, -ankleLength, 0);
leftAnkleNode.attachChild(leftFootNode);
leftFootNode.localTransform.setTranslation(0, 0, -0.05f);
rightAnkleNode.attachChild(rightFootNode);
rightFootNode.localTransform.setTranslation(0, 0, -0.05f);
configMap.put("Hips width", hipsWidth);
configMap.put("Hip length", hipsLength);
@@ -145,6 +148,7 @@ public class HumanSekeletonWithLegs extends HumanSkeleonWithWaist {
if(leftFootTracker != null) {
leftFootTracker.getRotation(kneeBuf);
leftAnkleNode.localTransform.setRotation(kneeBuf);
leftFootNode.localTransform.setRotation(kneeBuf);
}
@@ -161,6 +165,7 @@ public class HumanSekeletonWithLegs extends HumanSkeleonWithWaist {
if(rightFootTracker != null) {
rightFootTracker.getRotation(kneeBuf);
rightAnkleNode.localTransform.setRotation(kneeBuf);
rightFootNode.localTransform.setRotation(kneeBuf);
}

View File

@@ -3,27 +3,24 @@ package io.eiren.vr.processor;
import java.util.HashMap;
import java.util.Map;
import com.jme3.math.Quaternion;
public enum TrackerBodyPosition {
CHEST(Quaternion.IDENTITY, "body:chest"),
WAIST(Quaternion.IDENTITY, "body:waist"),
LEFT_LEG(Quaternion.IDENTITY, "body:left_leg"),
RIGHT_LEG(Quaternion.IDENTITY, "body:right_leg"),
LEFT_ANKLE(Quaternion.IDENTITY, "body:left_ankle"),
RIGHT_ANKLE(Quaternion.IDENTITY, "body:right_ankle"),
LEFT_FOOT(Quaternion.IDENTITY, "body:left_foot"),
RIGHT_FOOT(Quaternion.IDENTITY, "body:right_foot"),
NONE(""),
CHEST("body:chest"),
WAIST("body:waist"),
LEFT_LEG("body:left_leg"),
RIGHT_LEG("body:right_leg"),
LEFT_ANKLE("body:left_ankle"),
RIGHT_ANKLE("body:right_ankle"),
LEFT_FOOT("body:left_foot"),
RIGHT_FOOT("body:right_foot"),
;
public final Quaternion baseRotation;
public final String designation;
private static final Map<String, TrackerBodyPosition> byDesignation = new HashMap<>();
private TrackerBodyPosition(Quaternion base, String designation) {
this.baseRotation = base;
private TrackerBodyPosition(String designation) {
this.designation = designation;
}