28package com.jogamp.opengl.util.stereo.generic;
30import java.util.Arrays;
32import jogamp.opengl.util.stereo.DistortionMesh;
33import jogamp.opengl.util.stereo.GenericStereoDevice;
35import com.jogamp.nativewindow.util.DimensionImmutable;
36import com.jogamp.opengl.util.stereo.EyeParameter;
37import com.jogamp.opengl.util.stereo.StereoDeviceConfig;
38import com.jogamp.opengl.util.stereo.StereoDeviceRenderer;
39import com.jogamp.opengl.util.stereo.StereoUtil;
40import com.jogamp.opengl.util.stereo.StereoDevice;
47 Global, RollingLeftToRight, RollingRightToLeft, RollingTopToBottom
65 throw new IllegalArgumentException(
"eye arrays of different length");
71 this.eyeTextureSizes = eyeTextureSize;
81 this.pupilCenterFromTopLeft =
new float[2][2];
82 calcPupilCenterFromTopLeft();
89 this.name = source.
name;
93 this.eyeTextureSizes = eyeTextureSize;
103 this.pupilCenterFromTopLeft =
new float[2][2];
104 calcPupilCenterFromTopLeft();
106 private void calcPupilCenterFromTopLeft() {
120 public synchronized void init() {
121 if( !isInitialized ) {
132 isInitialized =
true;
185 private boolean isInitialized =
false;
Constant single eye parameter of the viewer, relative to its ViewerPose.
final float eyeReliefZ
Z-axis eye relief in meter.
Merely a class providing a type-tag for extended configuration.
static String distortionBitsToString(final int distortionBits)
See StereoDeviceRenderer#getDistortionBits().
static String sensorBitsToString(final int sensorBits)
See StereoDevice#getSupportedSensorBits() and StereoDevice#getEnabledSensorBits().
Configuration for GenericStereoDevices.
GenericStereoDeviceConfig(final String name, final GenericStereoDeviceConfig.ShutterType shutterType, final DimensionImmutable surfaceSizeInPixels, final float[] screenSizeInMeters, final DimensionImmutable[] eyeTextureSize, final float pupilCenterFromScreenTopInMeters, final float interpupillaryDistanceInMeters, final int[] eyeRenderOrder, final EyeParameter[] defaultEyeParam, final int supportedSensorBits, final DistortionMesh.Producer distortionMeshProducer, final int supportedDistortionBits, final int recommendedDistortionBits, final int minimumDistortionBits)
final float[] screenSizeInMeters
final float pupilCenterFromScreenTopInMeters
Vertical distance from pupil to screen-top in meters.
GenericStereoDeviceConfig(final GenericStereoDeviceConfig source, final DimensionImmutable surfaceSizeInPixels, final float[] screenSizeInMeters, final DimensionImmutable[] eyeTextureSize)
A variation w/ different surface/screen specs.
final int supportedDistortionBits
Supported distortion bits, see StereoDeviceRenderer#DISTORTION_BARREL.
final DimensionImmutable[] eyeTextureSizes
Texture size per eye.
final DistortionMesh.Producer distortionMeshProducer
final boolean isInitialized()
Returns true if initialized, otherwise false.
final float[][] pupilCenterFromTopLeft
Pupil center from top left per eye, ranging from [0..1], maybe used to produce FovHVHalves,...
final float interpupillaryDistanceInMeters
Horizontal interpupillary distance (IPD) in meters.
synchronized void init()
One time lazy initialization before use.
final int[] eyeRenderOrder
final int minimumDistortionBits
Required distortion bits, see StereoDeviceRenderer.DISTORTION_BARREL.
final int recommendedDistortionBits
Recommended distortion bits, see StereoDeviceRenderer.DISTORTION_BARREL.
final EyeParameter[] defaultEyeParam
final String name
Configuration Name.
final GenericStereoDeviceConfig.ShutterType shutterType
final int supportedSensorBits
Supported sensor bits, see StereoDevice#SENSOR_ORIENTATION.
final DimensionImmutable surfaceSizeInPixels
Immutable Dimension Interface, consisting of it's read only components: