Jogamp
Clarify code in stereo/ovr: Comments, states, names, formatting.
authorSven Gothel <sgothel@jausoft.com>
Mon, 20 Jul 2015 00:58:17 +0000 (02:58 +0200)
committerSven Gothel <sgothel@jausoft.com>
Mon, 20 Jul 2015 00:58:17 +0000 (02:58 +0200)
src/jogl/classes/com/jogamp/opengl/util/stereo/EyeParameter.java
src/jogl/classes/com/jogamp/opengl/util/stereo/ViewerPose.java
src/jogl/classes/jogamp/opengl/util/stereo/GenericStereoDevice.java
src/oculusvr/classes/jogamp/opengl/oculusvr/OVRStereoDevice.java
src/oculusvr/classes/jogamp/opengl/oculusvr/OVRStereoDeviceRenderer.java
src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/GearsES2.java

index 075da34..43a6cfc 100644 (file)
@@ -30,7 +30,7 @@ package com.jogamp.opengl.util.stereo;
 import com.jogamp.opengl.math.FovHVHalves;
 
 /**
- * Constant parameter for one eye.
+ * Constant single eye parameter of the viewer, relative to its {@link ViewerPose}.
  */
 public final class EyeParameter {
     /** Eye number, <code>0</code> for the left eye and <code>1</code> for the right eye. */
@@ -39,7 +39,7 @@ public final class EyeParameter {
     /** float[3] eye position vector used to define eye height in meter relative to <i>actor</i>. */
     public final float[] positionOffset;
 
-    /** Field of view in both directions, may not be centered, either in radians or tangent. */
+    /** Field of view in both directions, may not be centered, either {@link FovHVHalves#inTangents} or radians. */
     public final FovHVHalves fovhv;
 
     /** IPD related horizontal distance from nose to pupil in meter. */
index 40411ac..10ee4c9 100644 (file)
@@ -30,7 +30,7 @@ package com.jogamp.opengl.util.stereo;
 import com.jogamp.opengl.math.Quaternion;
 
 /**
- * Position and orientation of viewer.
+ * {@link #position} and {@link #orientation} of viewer.
  */
 public final class ViewerPose {
     /**
index 491535d..88be3b2 100644 (file)
@@ -163,31 +163,22 @@ public class GenericStereoDevice implements StereoDevice {
     }
 
     @Override
-    public boolean isValid() {
-        return true;
-    }
+    public boolean isValid() { return true; }
 
     @Override
-    public final PointImmutable getPosition() {
-        return surfacePos;
-    }
+    public final PointImmutable getPosition() { return surfacePos; }
 
     @Override
-    public final DimensionImmutable getSurfaceSize() {
-        return config.surfaceSizeInPixels;
-    }
+    public final DimensionImmutable getSurfaceSize() { return config.surfaceSizeInPixels; }
     @Override
     public int getRequiredRotation() { return 0; }
 
     @Override
-    public float[] getDefaultEyePositionOffset() {
-        return config.defaultEyeParam[0].positionOffset;
-    }
+    public float[] getDefaultEyePositionOffset() { return config.defaultEyeParam[0].positionOffset; }
 
     @Override
-    public final FovHVHalves[] getDefaultFOV() {
-        return defaultEyeFov;
-    }
+    public final FovHVHalves[] getDefaultFOV() { return defaultEyeFov; }
+
 
     @Override
     public final boolean startSensors(final int desiredSensorBits, final int requiredSensorBits) {
index fc46a9a..b22aeca 100644 (file)
@@ -160,16 +160,13 @@ public class OVRStereoDevice implements StereoDevice {
     public int getRequiredRotation() { return requiredRotation; }
 
     @Override
-    public float[] getDefaultEyePositionOffset() {
-        return DEFAULT_EYE_POSITION_OFFSET;
-    }
+    public float[] getDefaultEyePositionOffset() { return DEFAULT_EYE_POSITION_OFFSET; }
 
     @Override
-    public final FovHVHalves[] getDefaultFOV() {
-        return defaultEyeFov;
+    public final FovHVHalves[] getDefaultFOV() { return defaultEyeFov; }
     }
 
-    public void updateUsedSensorBits(final ovrTrackingState trackingState) {
+    /* pp */ void updateUsedSensorBits(final ovrTrackingState trackingState) {
         final int pre = usedSensorBits;
         if( sensorsStarted && null != trackingState ) {
             usedSensorBits = StereoDevice.SENSOR_ORIENTATION |
@@ -188,7 +185,7 @@ public class OVRStereoDevice implements StereoDevice {
 
     @Override
     public final boolean startSensors(final int desiredSensorBits, final int requiredSensorBits) {
-        if( !sensorsStarted ) {
+        if( isValid() && !sensorsStarted ) {
             if( requiredSensorBits != ( supportedSensorBits & requiredSensorBits ) ) {
                 // required sensors not available
                 if( StereoDevice.DEBUG ) {
@@ -228,7 +225,7 @@ public class OVRStereoDevice implements StereoDevice {
     }
     @Override
     public final boolean stopSensors() {
-        if( sensorsStarted ) {
+        if( isValid() && sensorsStarted ) {
             OVR.ovrHmd_ConfigureTracking(hmdDesc, 0, 0); // STOP
             sensorsStarted = false;
             usedSensorBits = 0;
index 7d05bb7..5487ca0 100644 (file)
@@ -357,7 +357,7 @@ public class OVRStereoDeviceRenderer implements StereoDeviceRenderer {
     private final OVREye[] eyes;
     private final ovrPosef[] ovrEyePoses;
     private final ovrVector3f[] hmdToEyeViewOffset;
-    private final ViewerPose eyePoses;
+    private final ViewerPose viewerPose;
     private final ovrTrackingState trackingState;
     private final int distortionBits;
     private final int textureCount;
@@ -431,7 +431,7 @@ public class OVRStereoDeviceRenderer implements StereoDeviceRenderer {
         hmdToEyeViewOffset = new ovrVector3f[2];
         hmdToEyeViewOffset[0] = eyes[0].ovrEyeDesc.getHmdToEyeViewOffset();
         hmdToEyeViewOffset[1] = eyes[1].ovrEyeDesc.getHmdToEyeViewOffset();
-        eyePoses = new ViewerPose();
+        viewerPose = new ViewerPose();
         trackingState = ovrTrackingState.create();
 
         sp = null;
@@ -551,14 +551,14 @@ public class OVRStereoDeviceRenderer implements StereoDeviceRenderer {
         // where ovrEyePoses already have hmdToEyeViewOffset applied (IPD .. etc).
         final ovrPosef pose = trackingState.getHeadPose().getThePose();
         final ovrVector3f pos = pose.getPosition();
-        eyePoses.setPosition(pos.getX(), pos.getY(), pos.getZ());
-        OVRUtil.copyToQuaternion(pose.getOrientation(), eyePoses.orientation);
-        return eyePoses;
+        viewerPose.setPosition(pos.getX(), pos.getY(), pos.getZ());
+        OVRUtil.copyToQuaternion(pose.getOrientation(), viewerPose.orientation);
+        return viewerPose;
     }
 
     @Override
     public final ViewerPose getLastViewerPose() {
-        return eyePoses;
+        return viewerPose;
     }
 
     @Override
index 9b414d7..f70df89 100644 (file)
@@ -428,7 +428,8 @@ public class GearsES2 implements StereoGLEventListener, TileRendererBase.TileRen
         final Quaternion rollPitchYaw = new Quaternion();
         // private final float eyeYaw = FloatUtil.PI; // 180 degrees in radians
         // rollPitchYaw.rotateByAngleY(eyeYaw);
-        final float[] shiftedEyePos = rollPitchYaw.rotateVector(vec3Tmp1, 0, viewerPose.position, 0);
+        // final float[] shiftedEyePos = rollPitchYaw.rotateVector(vec3Tmp1, 0, viewerPose.position, 0);
+        final float[] shiftedEyePos = VectorUtil.copyVec3(vec3Tmp1, 0, viewerPose.position, 0);
         VectorUtil.scaleVec3(shiftedEyePos, shiftedEyePos, vec3ScalePos); // amplify viewerPose position
         VectorUtil.addVec3(shiftedEyePos, shiftedEyePos, eyeParam.positionOffset);
 
http://JogAmp.org git info: FAQ, tutorial and man pages.