OculusVR: Implement further tracking methods
This commit is contained in:
parent
601ba1cfda
commit
3082e63cfd
@ -92,6 +92,16 @@ public class OculusVR implements VRAPI {
|
||||
*/
|
||||
private final OVRPosef eyePosesPtr[] = new OVRPosef[2];
|
||||
|
||||
/**
|
||||
* The eye positions relative to the world, as used by jME.
|
||||
*/
|
||||
private final Vector3f eyePositions[] = new Vector3f[2];
|
||||
|
||||
/**
|
||||
* The position and orientation of the user's head.
|
||||
*/
|
||||
private OVRPosef headPose;
|
||||
|
||||
// The size of the texture drawn onto the HMD
|
||||
private int textureW;
|
||||
private int textureH;
|
||||
@ -229,6 +239,7 @@ public class OculusVR implements VRAPI {
|
||||
jPose.setRotationQuaternion(quatO2J(pose.Orientation(), new Quaternion()));
|
||||
|
||||
eyePoses[eye] = jPose;
|
||||
eyePositions[eye] = new Vector3f(); // Set the absolute position up for later.
|
||||
}
|
||||
|
||||
// step 7 - recenter
|
||||
@ -246,7 +257,7 @@ public class OculusVR implements VRAPI {
|
||||
ovr_GetTrackingState(session, ftiming, true, hmdState);
|
||||
|
||||
//get head pose
|
||||
OVRPosef headPose = hmdState.HeadPose().ThePose();
|
||||
headPose = hmdState.HeadPose().ThePose();
|
||||
hmdState.free();
|
||||
|
||||
//build view offsets struct
|
||||
@ -261,7 +272,9 @@ public class OculusVR implements VRAPI {
|
||||
eyePosesPtr[ovrEye_Left] = outEyePoses.get(0);
|
||||
eyePosesPtr[ovrEye_Right] = outEyePoses.get(1);
|
||||
|
||||
// TODO
|
||||
for (int i = 0; i < eyePosesPtr.length; i++) {
|
||||
vecO2J(eyePosesPtr[i].Position(), eyePositions[i]);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -317,17 +330,18 @@ public class OculusVR implements VRAPI {
|
||||
|
||||
@Override
|
||||
public Quaternion getOrientation() {
|
||||
throw new UnsupportedOperationException();
|
||||
return quatO2J(headPose.Orientation(), new Quaternion());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vector3f getPosition() {
|
||||
throw new UnsupportedOperationException();
|
||||
return vecO2J(headPose.Position(), new Vector3f());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getPositionAndOrientation(Vector3f storePos, Quaternion storeRot) {
|
||||
throw new UnsupportedOperationException();
|
||||
vecO2J(headPose.Position(), storePos);
|
||||
quatO2J(headPose.Orientation(), storeRot);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -342,12 +356,12 @@ public class OculusVR implements VRAPI {
|
||||
|
||||
@Override
|
||||
public Vector3f getHMDVectorPoseLeftEye() {
|
||||
throw new UnsupportedOperationException();
|
||||
return eyePositions[ovrEye_Left];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vector3f getHMDVectorPoseRightEye() {
|
||||
throw new UnsupportedOperationException();
|
||||
return eyePositions[ovrEye_Right];
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Loading…
x
Reference in New Issue
Block a user