From dd7176ee23e4b0da9a3084302f02744368a5e508 Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Mon, 30 Nov 2015 11:24:46 -0600 Subject: Move javadoc files to standard Maven location --- .../java3d/audioengines/javasound/package.html | 11 - .../org/jogamp/java3d/audioengines/package.html | 11 - .../java/org/jogamp/java3d/exp/swing/package.html | 13 - .../org/jogamp/java3d/loaders/lw3d/package.html | 11 - .../jogamp/java3d/loaders/objectfile/package.html | 11 - .../java/org/jogamp/java3d/loaders/package.html | 11 - .../org/jogamp/java3d/utils/applet/package.html | 12 - .../org/jogamp/java3d/utils/audio/package.html | 11 - .../utils/behaviors/interpolators/package.html | 11 - .../java3d/utils/behaviors/keyboard/package.html | 11 - .../java3d/utils/behaviors/mouse/package.html | 11 - .../java3d/utils/behaviors/picking/package.html | 13 - .../java3d/utils/behaviors/sensor/package.html | 11 - .../jogamp/java3d/utils/behaviors/vp/package.html | 11 - .../jogamp/java3d/utils/compression/package.html | 13 - .../java3d/utils/geometry/compression/package.html | 13 - .../org/jogamp/java3d/utils/geometry/package.html | 12 - .../org/jogamp/java3d/utils/image/package.html | 11 - .../java3d/utils/pickfast/behaviors/package.html | 11 - .../org/jogamp/java3d/utils/pickfast/package.html | 11 - .../java3d/utils/picking/behaviors/package.html | 12 - .../org/jogamp/java3d/utils/picking/package.html | 12 - .../scenegraph/io/doc-files/extensibility.html | 189 -- .../jogamp/java3d/utils/scenegraph/io/package.html | 105 -- .../utils/scenegraph/transparency/package.html | 11 - .../org/jogamp/java3d/utils/shader/package.html | 11 - .../org/jogamp/java3d/utils/timer/package.html | 11 - .../utils/universe/doc-files/config-examples.html | 85 - .../utils/universe/doc-files/config-syntax.html | 1973 -------------------- .../utils/universe/doc-files/j3d1x1-behavior.html | 109 -- .../utils/universe/doc-files/j3d1x1-stereo.html | 90 - .../java3d/utils/universe/doc-files/j3d1x1-vr.html | 173 -- .../utils/universe/doc-files/j3d1x1-window.html | 70 - .../java3d/utils/universe/doc-files/j3d1x1.html | 69 - .../utils/universe/doc-files/j3d1x2-flat.html | 152 -- .../utils/universe/doc-files/j3d1x2-rot30.html | 111 -- .../utils/universe/doc-files/j3d1x3-cave-vr.html | 243 --- .../utils/universe/doc-files/j3d1x3-cave.html | 156 -- .../utils/universe/doc-files/j3d1x3-rot45.html | 122 -- .../utils/universe/doc-files/j3d2x2-flat.html | 147 -- .../org/jogamp/java3d/utils/universe/package.html | 12 - .../java3d/audioengines/javasound/package.html | 11 + .../org/jogamp/java3d/audioengines/package.html | 11 + .../org/jogamp/java3d/exp/swing/package.html | 13 + .../org/jogamp/java3d/loaders/lw3d/package.html | 11 + .../jogamp/java3d/loaders/objectfile/package.html | 11 + .../javadoc/org/jogamp/java3d/loaders/package.html | 11 + .../org/jogamp/java3d/utils/applet/package.html | 12 + .../org/jogamp/java3d/utils/audio/package.html | 11 + .../utils/behaviors/interpolators/package.html | 11 + .../java3d/utils/behaviors/keyboard/package.html | 11 + .../java3d/utils/behaviors/mouse/package.html | 11 + .../java3d/utils/behaviors/picking/package.html | 13 + .../java3d/utils/behaviors/sensor/package.html | 11 + .../jogamp/java3d/utils/behaviors/vp/package.html | 11 + .../jogamp/java3d/utils/compression/package.html | 13 + .../java3d/utils/geometry/compression/package.html | 13 + .../org/jogamp/java3d/utils/geometry/package.html | 12 + .../org/jogamp/java3d/utils/image/package.html | 11 + .../java3d/utils/pickfast/behaviors/package.html | 11 + .../org/jogamp/java3d/utils/pickfast/package.html | 11 + .../java3d/utils/picking/behaviors/package.html | 12 + .../org/jogamp/java3d/utils/picking/package.html | 12 + .../scenegraph/io/doc-files/extensibility.html | 189 ++ .../jogamp/java3d/utils/scenegraph/io/package.html | 105 ++ .../utils/scenegraph/transparency/package.html | 11 + .../org/jogamp/java3d/utils/shader/package.html | 11 + .../org/jogamp/java3d/utils/timer/package.html | 11 + .../utils/universe/doc-files/config-examples.html | 85 + .../utils/universe/doc-files/config-syntax.html | 1973 ++++++++++++++++++++ .../utils/universe/doc-files/j3d1x1-behavior.html | 109 ++ .../utils/universe/doc-files/j3d1x1-stereo.html | 90 + .../java3d/utils/universe/doc-files/j3d1x1-vr.html | 173 ++ .../utils/universe/doc-files/j3d1x1-window.html | 70 + .../java3d/utils/universe/doc-files/j3d1x1.html | 69 + .../utils/universe/doc-files/j3d1x2-flat.html | 152 ++ .../utils/universe/doc-files/j3d1x2-rot30.html | 111 ++ .../utils/universe/doc-files/j3d1x3-cave-vr.html | 243 +++ .../utils/universe/doc-files/j3d1x3-cave.html | 156 ++ .../utils/universe/doc-files/j3d1x3-rot45.html | 122 ++ .../utils/universe/doc-files/j3d2x2-flat.html | 147 ++ .../org/jogamp/java3d/utils/universe/package.html | 12 + 82 files changed, 4093 insertions(+), 4093 deletions(-) delete mode 100644 src/main/java/org/jogamp/java3d/audioengines/javasound/package.html delete mode 100644 src/main/java/org/jogamp/java3d/audioengines/package.html delete mode 100644 src/main/java/org/jogamp/java3d/exp/swing/package.html delete mode 100644 src/main/java/org/jogamp/java3d/loaders/lw3d/package.html delete mode 100644 src/main/java/org/jogamp/java3d/loaders/objectfile/package.html delete mode 100644 src/main/java/org/jogamp/java3d/loaders/package.html delete mode 100644 src/main/java/org/jogamp/java3d/utils/applet/package.html delete mode 100644 src/main/java/org/jogamp/java3d/utils/audio/package.html delete mode 100644 src/main/java/org/jogamp/java3d/utils/behaviors/interpolators/package.html delete mode 100644 src/main/java/org/jogamp/java3d/utils/behaviors/keyboard/package.html delete mode 100644 src/main/java/org/jogamp/java3d/utils/behaviors/mouse/package.html delete mode 100644 src/main/java/org/jogamp/java3d/utils/behaviors/picking/package.html delete mode 100644 src/main/java/org/jogamp/java3d/utils/behaviors/sensor/package.html delete mode 100644 src/main/java/org/jogamp/java3d/utils/behaviors/vp/package.html delete mode 100644 src/main/java/org/jogamp/java3d/utils/compression/package.html delete mode 100644 src/main/java/org/jogamp/java3d/utils/geometry/compression/package.html delete mode 100644 src/main/java/org/jogamp/java3d/utils/geometry/package.html delete mode 100644 src/main/java/org/jogamp/java3d/utils/image/package.html delete mode 100644 src/main/java/org/jogamp/java3d/utils/pickfast/behaviors/package.html delete mode 100644 src/main/java/org/jogamp/java3d/utils/pickfast/package.html delete mode 100644 src/main/java/org/jogamp/java3d/utils/picking/behaviors/package.html delete mode 100644 src/main/java/org/jogamp/java3d/utils/picking/package.html delete mode 100644 src/main/java/org/jogamp/java3d/utils/scenegraph/io/doc-files/extensibility.html delete mode 100644 src/main/java/org/jogamp/java3d/utils/scenegraph/io/package.html delete mode 100644 src/main/java/org/jogamp/java3d/utils/scenegraph/transparency/package.html delete mode 100644 src/main/java/org/jogamp/java3d/utils/shader/package.html delete mode 100644 src/main/java/org/jogamp/java3d/utils/timer/package.html delete mode 100644 src/main/java/org/jogamp/java3d/utils/universe/doc-files/config-examples.html delete mode 100644 src/main/java/org/jogamp/java3d/utils/universe/doc-files/config-syntax.html delete mode 100644 src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x1-behavior.html delete mode 100644 src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x1-stereo.html delete mode 100644 src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x1-vr.html delete mode 100644 src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x1-window.html delete mode 100644 src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x1.html delete mode 100644 src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x2-flat.html delete mode 100644 src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x2-rot30.html delete mode 100644 src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x3-cave-vr.html delete mode 100644 src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x3-cave.html delete mode 100644 src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x3-rot45.html delete mode 100644 src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d2x2-flat.html delete mode 100644 src/main/java/org/jogamp/java3d/utils/universe/package.html create mode 100644 src/main/javadoc/org/jogamp/java3d/audioengines/javasound/package.html create mode 100644 src/main/javadoc/org/jogamp/java3d/audioengines/package.html create mode 100644 src/main/javadoc/org/jogamp/java3d/exp/swing/package.html create mode 100644 src/main/javadoc/org/jogamp/java3d/loaders/lw3d/package.html create mode 100644 src/main/javadoc/org/jogamp/java3d/loaders/objectfile/package.html create mode 100644 src/main/javadoc/org/jogamp/java3d/loaders/package.html create mode 100644 src/main/javadoc/org/jogamp/java3d/utils/applet/package.html create mode 100644 src/main/javadoc/org/jogamp/java3d/utils/audio/package.html create mode 100644 src/main/javadoc/org/jogamp/java3d/utils/behaviors/interpolators/package.html create mode 100644 src/main/javadoc/org/jogamp/java3d/utils/behaviors/keyboard/package.html create mode 100644 src/main/javadoc/org/jogamp/java3d/utils/behaviors/mouse/package.html create mode 100644 src/main/javadoc/org/jogamp/java3d/utils/behaviors/picking/package.html create mode 100644 src/main/javadoc/org/jogamp/java3d/utils/behaviors/sensor/package.html create mode 100644 src/main/javadoc/org/jogamp/java3d/utils/behaviors/vp/package.html create mode 100644 src/main/javadoc/org/jogamp/java3d/utils/compression/package.html create mode 100644 src/main/javadoc/org/jogamp/java3d/utils/geometry/compression/package.html create mode 100644 src/main/javadoc/org/jogamp/java3d/utils/geometry/package.html create mode 100644 src/main/javadoc/org/jogamp/java3d/utils/image/package.html create mode 100644 src/main/javadoc/org/jogamp/java3d/utils/pickfast/behaviors/package.html create mode 100644 src/main/javadoc/org/jogamp/java3d/utils/pickfast/package.html create mode 100644 src/main/javadoc/org/jogamp/java3d/utils/picking/behaviors/package.html create mode 100644 src/main/javadoc/org/jogamp/java3d/utils/picking/package.html create mode 100644 src/main/javadoc/org/jogamp/java3d/utils/scenegraph/io/doc-files/extensibility.html create mode 100644 src/main/javadoc/org/jogamp/java3d/utils/scenegraph/io/package.html create mode 100644 src/main/javadoc/org/jogamp/java3d/utils/scenegraph/transparency/package.html create mode 100644 src/main/javadoc/org/jogamp/java3d/utils/shader/package.html create mode 100644 src/main/javadoc/org/jogamp/java3d/utils/timer/package.html create mode 100644 src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/config-examples.html create mode 100644 src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/config-syntax.html create mode 100644 src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x1-behavior.html create mode 100644 src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x1-stereo.html create mode 100644 src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x1-vr.html create mode 100644 src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x1-window.html create mode 100644 src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x1.html create mode 100644 src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x2-flat.html create mode 100644 src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x2-rot30.html create mode 100644 src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x3-cave-vr.html create mode 100644 src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x3-cave.html create mode 100644 src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x3-rot45.html create mode 100644 src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d2x2-flat.html create mode 100644 src/main/javadoc/org/jogamp/java3d/utils/universe/package.html (limited to 'src') diff --git a/src/main/java/org/jogamp/java3d/audioengines/javasound/package.html b/src/main/java/org/jogamp/java3d/audioengines/javasound/package.html deleted file mode 100644 index 05122f4..0000000 --- a/src/main/java/org/jogamp/java3d/audioengines/javasound/package.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - org.jogamp.java3d.audioengines.javasound - - -

Provides a JavaSound-based implementation of a Java 3D audio device.

- - diff --git a/src/main/java/org/jogamp/java3d/audioengines/package.html b/src/main/java/org/jogamp/java3d/audioengines/package.html deleted file mode 100644 index 4ad0001..0000000 --- a/src/main/java/org/jogamp/java3d/audioengines/package.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - org.jogamp.java3d.audioengines - - -

Provides abstract classes for creating Java 3D audio devices.

- - diff --git a/src/main/java/org/jogamp/java3d/exp/swing/package.html b/src/main/java/org/jogamp/java3d/exp/swing/package.html deleted file mode 100644 index 8b1db83..0000000 --- a/src/main/java/org/jogamp/java3d/exp/swing/package.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - org.jogamp.java3d.exp.swing - - -

EXPERIMENTAL: Provides a lightweight JCanvas3D class. -Note that the API in this package is highly experimental and -subject to change at any time.

- - diff --git a/src/main/java/org/jogamp/java3d/loaders/lw3d/package.html b/src/main/java/org/jogamp/java3d/loaders/lw3d/package.html deleted file mode 100644 index 241bf5b..0000000 --- a/src/main/java/org/jogamp/java3d/loaders/lw3d/package.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - org.jogamp.java3d.loaders.lw3d - - -

Provides a Java 3D loader for Lightwave 3D scene files.

- - diff --git a/src/main/java/org/jogamp/java3d/loaders/objectfile/package.html b/src/main/java/org/jogamp/java3d/loaders/objectfile/package.html deleted file mode 100644 index 9930bb7..0000000 --- a/src/main/java/org/jogamp/java3d/loaders/objectfile/package.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - org.jogamp.java3d.loaders.objectfile - - -

Provides a Java 3D loader for Wavefront .obj files.

- - diff --git a/src/main/java/org/jogamp/java3d/loaders/package.html b/src/main/java/org/jogamp/java3d/loaders/package.html deleted file mode 100644 index c7a9f12..0000000 --- a/src/main/java/org/jogamp/java3d/loaders/package.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - org.jogamp.java3d.loaders - - -

Provides interfaces and abstract classes for writing Java 3D loaders.

- - diff --git a/src/main/java/org/jogamp/java3d/utils/applet/package.html b/src/main/java/org/jogamp/java3d/utils/applet/package.html deleted file mode 100644 index 17fd1b1..0000000 --- a/src/main/java/org/jogamp/java3d/utils/applet/package.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - org.jogamp.java3d.utils.applet - - -

Provides utility classes for running applets as stand-alone -applications.

- - diff --git a/src/main/java/org/jogamp/java3d/utils/audio/package.html b/src/main/java/org/jogamp/java3d/utils/audio/package.html deleted file mode 100644 index ecb71e8..0000000 --- a/src/main/java/org/jogamp/java3d/utils/audio/package.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - org.jogamp.java3d.utils.audio - - -

Provides audio utility classes.

- - diff --git a/src/main/java/org/jogamp/java3d/utils/behaviors/interpolators/package.html b/src/main/java/org/jogamp/java3d/utils/behaviors/interpolators/package.html deleted file mode 100644 index 19ef214..0000000 --- a/src/main/java/org/jogamp/java3d/utils/behaviors/interpolators/package.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - org.jogamp.java3d.utils.behaviors.interpolators - - -

Provides spline-based interpolation behaviors.

- - diff --git a/src/main/java/org/jogamp/java3d/utils/behaviors/keyboard/package.html b/src/main/java/org/jogamp/java3d/utils/behaviors/keyboard/package.html deleted file mode 100644 index efe76d5..0000000 --- a/src/main/java/org/jogamp/java3d/utils/behaviors/keyboard/package.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - org.jogamp.java3d.utils.behaviors.keyboard - - -

Provides keyboard navigation utility classes.

- - diff --git a/src/main/java/org/jogamp/java3d/utils/behaviors/mouse/package.html b/src/main/java/org/jogamp/java3d/utils/behaviors/mouse/package.html deleted file mode 100644 index 6eb2142..0000000 --- a/src/main/java/org/jogamp/java3d/utils/behaviors/mouse/package.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - org.jogamp.java3d.utils.behaviors.mouse - - -

Provides mouse navigation utility classes.

- - diff --git a/src/main/java/org/jogamp/java3d/utils/behaviors/picking/package.html b/src/main/java/org/jogamp/java3d/utils/behaviors/picking/package.html deleted file mode 100644 index 66a7fd0..0000000 --- a/src/main/java/org/jogamp/java3d/utils/behaviors/picking/package.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - org.jogamp.java3d.utils.behaviors.picking - - -

Deprecated: Use org.jogamp.java3d.utils.pickfast.behaviors -instead.

- - diff --git a/src/main/java/org/jogamp/java3d/utils/behaviors/sensor/package.html b/src/main/java/org/jogamp/java3d/utils/behaviors/sensor/package.html deleted file mode 100644 index 754890d..0000000 --- a/src/main/java/org/jogamp/java3d/utils/behaviors/sensor/package.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - org.jogamp.java3d.utils.behaviors.sensor - - -

Provides 6DOF sensor behavior classes.

- - diff --git a/src/main/java/org/jogamp/java3d/utils/behaviors/vp/package.html b/src/main/java/org/jogamp/java3d/utils/behaviors/vp/package.html deleted file mode 100644 index 81534d3..0000000 --- a/src/main/java/org/jogamp/java3d/utils/behaviors/vp/package.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - org.jogamp.java3d.utils.behaviors.vp - - -

Provides ViewPlatform navigation utility classes.

- - diff --git a/src/main/java/org/jogamp/java3d/utils/compression/package.html b/src/main/java/org/jogamp/java3d/utils/compression/package.html deleted file mode 100644 index 639ad1a..0000000 --- a/src/main/java/org/jogamp/java3d/utils/compression/package.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - org.jogamp.java3d.utils.compression - - -

Deprecated: Use org.jogamp.java3d.utils.geometry.compression -instead.

- - diff --git a/src/main/java/org/jogamp/java3d/utils/geometry/compression/package.html b/src/main/java/org/jogamp/java3d/utils/geometry/compression/package.html deleted file mode 100644 index 948d235..0000000 --- a/src/main/java/org/jogamp/java3d/utils/geometry/compression/package.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - org.jogamp.java3d.utils.geometry.compression - - -

Provides compressed geometry utility classes. - This package supersedes the org.jogamp.java3d.CompressedGeometry class and - the org.jogamp.java3d.utils.compression package.

- - diff --git a/src/main/java/org/jogamp/java3d/utils/geometry/package.html b/src/main/java/org/jogamp/java3d/utils/geometry/package.html deleted file mode 100644 index 271424e..0000000 --- a/src/main/java/org/jogamp/java3d/utils/geometry/package.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - org.jogamp.java3d.utils.geometry - - -

Provides geometry construction, triangulation, and optimization -utility classes.

- - diff --git a/src/main/java/org/jogamp/java3d/utils/image/package.html b/src/main/java/org/jogamp/java3d/utils/image/package.html deleted file mode 100644 index 27b3560..0000000 --- a/src/main/java/org/jogamp/java3d/utils/image/package.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - org.jogamp.java3d.utils.image - - -

Provides texture image utility classes.

- - diff --git a/src/main/java/org/jogamp/java3d/utils/pickfast/behaviors/package.html b/src/main/java/org/jogamp/java3d/utils/pickfast/behaviors/package.html deleted file mode 100644 index e814f82..0000000 --- a/src/main/java/org/jogamp/java3d/utils/pickfast/behaviors/package.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - org.jogamp.java3d.utils.pickfast.behaviors - - -

Provides picking behaviors for the new core picking methods.

- - diff --git a/src/main/java/org/jogamp/java3d/utils/pickfast/package.html b/src/main/java/org/jogamp/java3d/utils/pickfast/package.html deleted file mode 100644 index 044927f..0000000 --- a/src/main/java/org/jogamp/java3d/utils/pickfast/package.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - org.jogamp.java3d.utils.pickfast - - -

Provides picking utility classes for the new core picking methods.

- - diff --git a/src/main/java/org/jogamp/java3d/utils/picking/behaviors/package.html b/src/main/java/org/jogamp/java3d/utils/picking/behaviors/package.html deleted file mode 100644 index 32ba40f..0000000 --- a/src/main/java/org/jogamp/java3d/utils/picking/behaviors/package.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - org.jogamp.java3d.utils.picking.behaviors - - -

OBSOLETE: provides picking behaviors for the old picking -methods.

- - diff --git a/src/main/java/org/jogamp/java3d/utils/picking/package.html b/src/main/java/org/jogamp/java3d/utils/picking/package.html deleted file mode 100644 index 1571e03..0000000 --- a/src/main/java/org/jogamp/java3d/utils/picking/package.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - org.jogamp.java3d.utils.picking - - -

OBSOLETE: provides picking utility classes for the old -picking methods.

- - diff --git a/src/main/java/org/jogamp/java3d/utils/scenegraph/io/doc-files/extensibility.html b/src/main/java/org/jogamp/java3d/utils/scenegraph/io/doc-files/extensibility.html deleted file mode 100644 index d77e9bd..0000000 --- a/src/main/java/org/jogamp/java3d/utils/scenegraph/io/doc-files/extensibility.html +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - - - Java 3D scenegraph.io Extensibility - - -

-Using your own Classes with scenegraph.io -

-

The scenegraph.io APIs will handle the IO for all the core Java3D -SceneGraphObjects. However, if you create a subclass of one of these -objects and add it to your Scene Graph, the IO system, by default, -will not store any state information specific to your class.

-

The default behavior when an unrecognized SceneGraphObject class -is encountered is to traverse up the superclasses of the object until -a recognized Java3D class is located. The data structures for this -class are then used for IO. The system does store the class name of -the original object. -

For example: -


-public class MyBranchGroup extends org.jogamp.java3d.BranchGroup {
-    private int myData;
-    ....
-}
-
-

When the Scene Graph is written to a file and this node is -encountered, the superclass org.jogamp.java3d.BranchGroup will be used -to store all the state for the object so any children of -MyBranchGroup, the capabilities, etc. will be stored, but myData will -be lost. When the scene graph is loaded, MyBranchGroup will be -instantiated and will be populated with all the state from -BranchGroup but myData will have been lost.

-

To overcome this, the scenegraph.io API provides an interface for -you to implement in your own classes that provides the opportunity -for you to save the state of your classes during the IO processes. -This is the SceneGraphIO interface.

-

When the scenegraph is saved, the methods of SceneGraphIO are -called in this order -

-
    -
  1. createSceneGraphObjectReferences

    -
  2. saveChildren

    -
  3. writeSceneGraphObject

    -
-

During the load cycle the method call order is

-
    -
  1. Instantiate Object using default constructor

    -
  2. Populate object with state from superclasses

    -
  3. readSceneGraphObject

    -
  4. restoreSceneGraphObjectReferences

    -
-

Within each method you need to perform the following actions: -

-

Here are some examples. Only the parts of the source pertaining to -IO are show....

-

Behavior Example

-
-public class BehaviorIO extends org.jogamp.java3d.Behavior implements SceneGraphIO - private TransformGroup target; // The TG on which this behavior acts - private int targetRef; // Object Reference for target - - public void createSceneGraphObjectReferences( SceneGraphObjectReferenceControl ref ) { - targetRef = ref.addReference( target ); - } - - public void restoreSceneGraphObjectReferences( SceneGraphObjectReferenceControl ref ) { - target = (TransformGroup)ref.resolveReference( targetRef ); - } - - public void writeSceneGraphObject( java.io.DataOutput out ) throws IOException { - out.writeInt( targetRef ); - } - - public void readSceneGraphObject( java.io.DataInput in ) throws IOException { - targetRef = in.readInt(); - } - - // This has no effect as this is not a subclass of Group - public boolean saveChildren() { - return true; - } -
-

-`BlackBox' Group Example -

-This example is a Group node that creates its subgraph during -its instantiation. An example where you might use this is to -represent some geometry that is loaded from an external file format -such a OpenFLT. -

-public class House extends Group implements SceneGraphIO {
-    public House() {
-        super();
-        this.addChild( OpenFlightLoader.load( "/dir/house.flt" );
-    }
-
-    public void createSceneGraphObjectReferences( SceneGraphObjectReferenceControl ref ) {
-        // No references
-    }
-
-    public void restoreSceneGraphObjectReferences( SceneGraphObjectReferenceControl ref ) {
-        // No references
-    }
-
-    public void writeSceneGraphObject( java.io.DataOutput out ) throws IOException {
-        // No local state
-    }
-
-    public void readSceneGraphObject( java.io.DataInput in ) throws IOException {
-        // No local state
-    }
-
-    public boolean saveChildren() {
-        // Don't save the children as they will be restored by the openflightloader
-        return false;
-    }
-
- - diff --git a/src/main/java/org/jogamp/java3d/utils/scenegraph/io/package.html b/src/main/java/org/jogamp/java3d/utils/scenegraph/io/package.html deleted file mode 100644 index 73e795c..0000000 --- a/src/main/java/org/jogamp/java3d/utils/scenegraph/io/package.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - - - - -

This package provides a Java3D SceneGraph IO capability. -The API supports IO of a scenegraph to and from a Java Stream and/or -RandomAccessFile. The features offered for these two io systems are -somewhat different.

-

The SceneGraphFileReader and SceneGraphFileWriter classes provide -IO to and from a RandomAccessFile. They allow a universe and/or -multiple BranchGraphs to be written to the file with Node's and -NodeComponent's shared between the separate graphs. The graphs can be -read in any order.

-

SceneGraphStreamReader and SceneGraphStreamWriter classes provide -IO to and from a Stream. These classes allow a universe and/or -multiple BranchGraphs to be passed over stream. In contrast to the -FileReader/Writer sharing of Node's is NOT supported between graphs -by the API. Sharing of node components is supported. If your -application requires references to Nodes in other graphs (such as -SharedGroups) the application must handle the references using the -namedObjects constructs.

-

Note : If you use SceneGraphStreamWriter class to write to a -FileOutputStream the resulting file cannot be read using the -SceneGraphFileReader, the converse is also true, you can not use a -FileInputStream to load a file written by SceneGraphFileWriter. -

-The package supports the IO of all the Java3D 1.3 core classes -and many of the utilities. It also includes interfaces which can be -implemented to allow user defined subclasses of SceneGraphObjects to -be stored. Information on the extensibility can be found -here -

-The package has a number of properties which can be used to control the IO -behavior

- -

-j3d.io.UseSuperClassIfNoChildClass when this property is present the load -operation will attempt to avoid failure if Scene Graph nodes are not present -in the classpath. For example if a developer has subclassed BranchGroup with a -class called MyBG but has not -implemented the SceneGraphIO interface when the API saves the graph the -superclass (ie BranchGroup) data will be stored. When the scene is loaded -normally MyBG must be in the classpath otherwise the load will fail. If this -property is set then the superclass node (ie BranchGroup) will be instantiated -when MyBG is missing. Obviously, if MyBG contained any state information -then this will be lost.

- -j3d.io.ImageCompression this can be set to None, GZIP, JPEG and tells the -IO system to compress images in the .j3f file using the prescribed technique. In -the future this will be extended to support all the formats available in -javax.imageio in JDK 1.4. -

-

- - diff --git a/src/main/java/org/jogamp/java3d/utils/scenegraph/transparency/package.html b/src/main/java/org/jogamp/java3d/utils/scenegraph/transparency/package.html deleted file mode 100644 index c7669ec..0000000 --- a/src/main/java/org/jogamp/java3d/utils/scenegraph/transparency/package.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - org.jogamp.java3d.utils.scenegraph.transparency - - -

Provides transparency sorting utility classes.

- - diff --git a/src/main/java/org/jogamp/java3d/utils/shader/package.html b/src/main/java/org/jogamp/java3d/utils/shader/package.html deleted file mode 100644 index fe01b81..0000000 --- a/src/main/java/org/jogamp/java3d/utils/shader/package.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - org.jogamp.java3d.utils.shader - - -

Provides shader utility classes.

- - diff --git a/src/main/java/org/jogamp/java3d/utils/timer/package.html b/src/main/java/org/jogamp/java3d/utils/timer/package.html deleted file mode 100644 index a3af6aa..0000000 --- a/src/main/java/org/jogamp/java3d/utils/timer/package.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - org.jogamp.java3d.utils.timer - - -

Deprecated: Use java.lang.System.nanoTime() instead.

- - diff --git a/src/main/java/org/jogamp/java3d/utils/universe/doc-files/config-examples.html b/src/main/java/org/jogamp/java3d/utils/universe/doc-files/config-examples.html deleted file mode 100644 index bab913b..0000000 --- a/src/main/java/org/jogamp/java3d/utils/universe/doc-files/config-examples.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - - -  -

-Example Configuration Files

- -


j3d1x1  A single fullscreen -desktop configuration. -

j3d1x1-behavior  A single -fullscreen desktop configuration with a configurable view platform behavior. -

j3d1x1-stereo  A single -fullscreen desktop configuration with stereo viewing. -

j3d1x1-vr  A single fullscreen -desktop configuration with head tracker, stereo viewing, and 6 degree of -freedom mouse. -

j3d1x1-window  A single screen -desktop configuration with a conventional window. -

j3d1x2-flat  A dual-screen planar -desktop configuration. -

j3d1x2-rot30  A dual-screen -desktop configuration with each screen rotated toward the other by 30 degrees. -

j3d1x3-cave  A three-projector cave -configuration. -

j3d1x3-cave-vr  A -three-projector cave configuration with head tracking and stereo viewing. -

j3d1x3-rot45  A three-screen -desktop configuration with left and right screens rotated 45 degrees from the -center screen. -

j3d2x2-flat  A four-projector -configuration arranged in a 2x2 array. -
  - - diff --git a/src/main/java/org/jogamp/java3d/utils/universe/doc-files/config-syntax.html b/src/main/java/org/jogamp/java3d/utils/universe/doc-files/config-syntax.html deleted file mode 100644 index e725146..0000000 --- a/src/main/java/org/jogamp/java3d/utils/universe/doc-files/config-syntax.html +++ /dev/null @@ -1,1973 +0,0 @@ - - - - - - - The Java 3D Configuration File - - - - - - - - - - -
-The Java 3D Configuration File
-
- -Syntax Description
-Command Overview
- - Overview of Relevant View Model Parameters
-Top-Level Command Details
-Built-In Command Details
-Command Index
-Property Index
- -

-This document is an informal description of the syntax of the Java 3D -configuration file and a tutorial of the semantics of its various commands. -Such a file is written by a user or site administrator to describe the physical -configuration of a local interactive viewing environment. Configuration -properties that can be described in the file include the sizes, positions, and -orientations of displays in either fixed screen environments or head mounted -displays (HMD devices), as well as the input devices and sensors -available for user interaction apart from the keyboard and mouse abstractions -provided by the AWT.

-

-A configuration file is used by passing its URL to either a ConfigContainer or -a ConfiguredUniverse constructor. The method by which a user specifies the -file is up to the application, but the universe utilities do provide a few -means to easily enable an application to perform this task. These depend upon -a Java 3D property, j3d.configURL, that the user can set on the java -command line with the -D option. Its value should be a URL string -indicating the location of the desired file. The application can then either -call the static ConfigContainer methods -getConfigURL -to retrieve the value of the property, or - -getConfigURL(String) to specify a default file to be used in case the -property is not set. Applications are encouraged to devise their own -user-friendly mechanisms to retrieve the configuration file, although the -setting of the j3d.configURL property should be honored if at all -possible.

-

-If the attempt to open the resource indicated by the URL is successful, then a -parser will be invoked to read and evaluate the commands it contains and -deposit the results in the ConfigContainer. The parser will detect syntax -errors, invalid commands, and bad references, printing descriptive messages to -System.out, including the line number and text of the offending command. In -general the parser attempts to continue processing as much of the file as it -can when encountering an error. Some errors can only be detected after the -entire file has been evaluated; in those cases an exception will be thrown.

-

-An application may choose to override the settings of the configuration file by -accessing view-side scenegraph components directly from the ConfigContainer -once the file is evaluated. Applications should avoid this in general, as most -settings are physical calibration constants specific to the local interactive -viewing environment. Nonetheless, application overrides are still sometimes -appropriate; for example, the application may have knowledge of the contents of -the scenegraph that enables it to make a better judgement of where the view's -clipping planes should be.

-
- - - - - - -
-Syntax Description
-

-The configuration file syntax is very simple; scanning any of the -sample configuration files should provide -the general idea. At the broadest level there are two main types of -constructs: comments and commands.

-

-Comments can be either C or C++ style. In a C-style -comment all text between successive occurances of /* and */ is ignored. -A C++ comment begins with // and continues to the end of the line.

-

-A command begins with an opening parenthesis and ends with a closing -parenthesis. The elements between the parentheses can be of four types: -alphanumeric strings, numbers, quoted strings, or other commands. During the -evaluation of a command, any nested command encountered is itself evaluated, -and the result of that evaluation replaces the nested command within the -original outer command.

-

-Strings that contain embedded white space, forward slashes, or invalid -tokens must be enclosed in quotes (either single or double). Common cases are -URL strings and Unix path names. Numbers are any non-quoted strings that can -be parsed as double-precision floating point numbers. The strings true, -True, false, and False are converted to their corresponding boolean -values. Strings, quoted strings, and numbers are delimited from each other by -white space.

-

-Commands in the configuration file have four special forms: point, -matrix, top-level, and built-in commands.

- -
-

-Points

- -A command that consists entirely of two, three, or four numbers is a 2D point, -a 3D point, or a 4D point respectively. Any other command that starts with a -number is a syntax error. -

-Don't pass 2D, 3D, or 4D points to commands that expect two, three, or four -numbers instead. This will generate a syntax error indicating an invalid -number of arguments.

- -

-Matrices

- -A 3D matrix is a command that consists entirely of three 3D points. A 4D -matrix consists entirely of either three or four 4D points; if there are only -three 4D points then the fourth is implicitly considered to be (0.0 0.0 0.0 -1.0). The points define the row elements of each type of matrix. Any other -command that starts with a point is a syntax error. - -

-Top-level and built-in commands

- -All other commands start with an alphanumeric string, the command name -which identifies it. The remaining elements of the command are its arguments. -

-Command names can either specify top-level or built-in commands. Top-level -commands generally configure Java 3D core and utility classes and can only -appear at the outermost level of parentheses. Built-in commands are provided -by the parser itself to help construct the arguments to top-level commands. -Points, matrices, and built-in commands can only be nested within other -commands.

-

-An error will result if points, matrices, or built-in commands are invoked at -the outermost level of nesting. Sometimes this error is caused by prematurely -closing the opening parenthesis of the current top-level command. Such an -error is usually preceded by an error from the command indicating an invalid -number of arguments.

-

-Similarly, errors will be generated if top-level commands are nested. Errors -to this effect are sometimes caused by failing to close all the open -parentheses of the preceding top-level command.

-
- -

-Java property substitution syntax

- -All strings are additionally scanned for text enclosed by a starting ${ and a -matching }. Such text is looked up as a Java system property name and the -result is substituted back into the string after eliding the starting and -ending delimiters. For example, the command: -

-(Include "file:${user.home}/myBody.cfg")

-

-would evaluate the contents of the file "myBody.cfg" in the user's home -directory on Unix systems. An error is issued if no Java property exists with -the specified name.

-

-Java property substitution happens early, after tokenization but before command -evaluation. Substitution can occur any number of times anywhere within any -quoted or non-quoted string, including command names, property names, and -property values, as long as the property substitution syntax is not nested.

-
- - - - - - -
-Command Overview
-

-Most top-level commands configure concrete Java 3D core and utility classes. -These include PhysicalBody, PhysicalEnvironment, Screen, Sensor, View, and -ViewPlatform. The Screen, View, and ViewPlatform commands also implicitly -configure the Canvas3D core class and the Viewer and ViewingPlatform utility -classes respectively.

-

-These commands come in two forms: the New<class name> and -<class name>Property commands. All New commands except -NewSensor create new class instances and bind names to -them, while the Property commands refer to these names and configure -their corresponding class instances with the parameters specified by the -command arguments. All references must be to objects previously instantiated -in the file; forward referencing is not supported. Names must be unique within -each class.

-

-Implementations of the Java 3D InputDevice interface and concrete subclasses of -the abstract ViewPlatformBehavior utility class can also be instantiated and -configured with the same command forms. The New commands for these -objects accept class names as command arguments and instantiate the objects -through introspection. Since the details of the implementations are not known, -configuration parameters are passed through methods which are invoked through -introspection of the method names specified in the Property command -arguments.

-

-A method invoked through introspection with a Property command gets its -arguments as a single array of Objects. Boolean strings get wrapped into -Boolean objects, and number strings get wrapped into Double. 2D, 3D, and 4D -points get wrapped into Point2d, Point3d, and Point4d objects respectively, -while 3D and 4D matrices get wrapped into Matrix3d and Matrix4d -respectively.

-
- - - - - - -
-Overview of Relevant View Model Parameters
-

-The sample configuration files are annotated to assist users in modifying them -to suit their particular viewing environments, but it can be helpful to know -some of the basics of the Java 3D view model that are relevant to writing a -configuration file. This overview should only be considered an informal -adjunct to the detailed description in the Java 3D Specification. Reading the -source code to the ViewInfo utility (a public -implementation of the Java 3D view model) may also be helpful in understanding -the details of the view model.

- - - - - -
-The Camera View Model
-

-In the traditional camera model the camera or eyepoint is positioned and -oriented with respect to the virtual world via a view transform. Objects -contained within the field of view are projected onto an image plane, which is -then mapped onto a display surface, usually a window on a desktop display -system. While the view direction and camera position can be freely oriented -and placed anywhere in the virtual world, the projection is accomplished using -a static frustum defined by the field of view and a flat image plane centered -about and normal to the view direction.

-

-This model emulates a typical physical camera quite well, but there are many -viewing configurations that cannot be implemented using image planes that are -fixed with respect to the view direction. In a multiple screen environment the -projection frustum for each screen is skewed with respect to the image plane, -based on the user's nominal viewing position. Realistic stereo views on fixed -displays use skewed projection frustums derived from the offsets of the two -eyes from the center of the image plane, while head tracking with fixed -displays involves dynamically adjusting projection frustums in response to -varying eye positions relative to the image plane.

-

-In a low-level API such as OpenGL these situations are handled by concatenating -all defined model and viewing transforms into a single modelview matrix, -and for a fixed-screen environment explicitly computing the projection -matrix for each eye, each display surface, and each new head -position. Every application handling such viewing configurations typically -reimplements the framework for computing those matrices itself. In these cases -it would be useful to be able to separate the projection components out of the -view transform in some representation based on display and eye locations.

- - - - - -
-The Java 3D View Model
-

-Based on these requirements, a high-level view model should provide standard -mechanisms to 1) define a screen's position and orientation in relation to -other screens in the viewing environment; 2) specify the position of the user's -eyes or an HMD relative to the physical space in which the screens or nominal -user position are defined, and to have them updated automatically if tracking -hardware exists; and 3) describe where the whole physical space is placed and -oriented in the virtual world. In such a model the appropriate images could -then be rendered without further computation in application code.

-

-In the Java 3D view model, screen (image plate) positions and -orientations are defined relative to a fixed frame of reference in the physical -world, the tracker base, through the -TrackerBaseToImagePlate property. The -tracker base is somewhat abstract in that it is always used to define that -fixed frame of reference, even if no physical tracking hardware is being -used. If the ViewPolicy is HMD_VIEW, then the left -and right image plates for head mounted displays are defined relative to the -head tracking sensor, which reports head orientation and position relative to -the tracker base.

-

-Coexistence coordinates are defined with the -CoexistenceToTrackerBase property. It -provides a frame of reference in the physical world which can be set up by the -user or application in whatever way is most convenient for positioning and -orienting screens, physical body attributes, and sensing devices in the virtual -world. If tracking is enabled, then the eye positions in coexistence are -computed from the position and orientation of the head tracking sensor and the -HeadToHeadTracker matrix; otherwise the eye -positions in coexistence are set according to the -CenterEyeInCoexistence property. In HMD -mode the eye positions are fixed with respect to the image plates.

-

-The mapping of coexistence coordinates into the virtual world is accomplished -through the ViewAttachPolicy, which specifies -the point in coexistence coordinates to which the origin of the view -platform should be mapped. The view platform is positioned in the virtual -world by manipulating its view transform, the composite of all the -transforms from the view platform up to its Locale. The basis vectors (X, Y, -and Z directions) of the view platform are always aligned with coexistence -coordinates, and the scaling between view platform coordinates and physical -coordinates is specified by the -ScreenScalePolicy, so this -establishes the complete mapping of the physical world into the virtual world. -The projection of the virtual world onto the physical display surfaces is then -performed automatically by the Java 3D renderer.

-

-By default Java 3D tries to emulate the familiar camera model as much as -possible to make it easy to run in a conventional windowed desktop display -environment. It accomplishes this through the following default settings:

- - -When a configuration file is being used the defaults are oriented towards -making the setup of multiple screen environments as easy as possible. If the -coexistence centering enable has not been explicitly set, and either the -CoexistenceToTrackerBase transform for the view has been set or -TrackerBaseToImagePlate has been set for any screen, then the following -defaults are used instead:

- - -The avove defaults are also used if coexistence centering enable has been -explictly set false. -


- - - - - - -
-Top-Level Command Details
-

-Top-level commands can only appear at the outermost command nesting level.

-
- -

-NewDevice

-Syntax: -
(NewDevice <instance name> <class name> -[Alias <alias name>]) -

-This command instantiates the InputDevice implementation specified by the fully -qualified class name and binds it to instance name. The -InputDevice is instantiated through introspection of the class name. The -implementation must provide a parameterless constructor; this can usually be -done by extending or wrapping available InputDevice implementations.

-

-The last two arguments are optional and define an alias for instance -name. This is useful in providing a longer descriptive name for the -application to recognize, or conversely, to provide a shorter alias for a -longer instance name. Either name may be used to identify the instance.

-

-At the conclusion of configuration file processing all InputDevice -implementations so defined will be initialized and registered with any -PhysicalEnvironments that reference them.

-


- -

-DeviceProperty

-Syntax: -
(DeviceProperty <instance name> <method name> <arg0> -... <argn>) -

-The details of the InputDevice implementation specified by instance name -are not known to ConfigContainer, so any parameters to be set through the -configuration file are passed to the InputDevice instance by invoking method -name through introspection. The arguments following the method name are -evaluated and the results passed to the method as an array of Objects.

-

-The required methods can usually be provided by extending or wrapping existing -InputDevice implementations.

-
- -

-NewSensor

-Syntax: -
(NewSensor <instance name> <device name> -<sensor index> [Alias <alias name>]) -

-Retrieves the Sensor at index sensor index in the InputDevice device -name and binds it to the name specified by instance name. The -sensor index is a number truncated to its integer value. The InputDevice -implementation is responsible for creating its own Sensor objects, so this -command does not create any new instances.

-

-Instance name is used by other commands to reference the indicated -Sensor. In addition, the name and its associated Sensor instance is made -available to applications through a Map returned by the ConfigContainer -method -getNamedSensors. -

-

-The last two arguments are optional and define an alias for instance -name. This is useful in providing a longer descriptive name for the -application to recognize, or conversely, to provide a shorter alias for a -longer instance name. Either name may be used to identify the instance.

-

-If the Sensor is to be used for head tracking, or tracking the position and -orientation of other objects in the physical world, then it must generate 6 -degree of freedom data relative to the tracker base.

-
- -

-SensorProperty

-Syntax: -
(SensorProperty <instance name> <property name> -<property value>) -

-Sets a Sensor property. The sensor instance is specified by instance -name, the property to be set by property name, and the value to be -set by property value. The following sole property may be -configured:

- -
-

-Hotspot

-A 3D point in the sensor's local coordinate system. The hotspot specifies the -"active" point which should interact with the virtual world, such as a point -used for picking or grabbing an object. Its actual interpretation is up to the -sensor behavior which uses it. Its value is ignored for head tracking sensors. -
-
- -

-NewScreen
-NewWindow

-Syntax: -
(NewScreen <instance name> <device index> -[Alias <alias name>]) -
(NewWindow <instance name> <device index> -[Alias <alias name>]) -

-The above two commands are equivalent. Both create new window resources and -associate them with the name specified by instance name. The device -index is a number truncated to its integer value. This integer is the -index at which the desired AWT GraphicsDevice appears in the array returned by -the static getScreenDevices() method of GraphicsEnvironment, and specifies the -physical screen upon which the window should be created. The GraphicsDevice -order in the array is specific to the local viewing site and display -system.

-

-The last two arguments are optional and define an alias for instance -name. This is useful in providing a longer descriptive name for the -application to recognize, or conversely, to provide a shorter alias for a -longer instance name. Either name may be used to identify the instance.

-
- -

-ScreenProperty
-WindowProperty

-Syntax: -
(ScreenProperty <instance name> <property name> -<property value>) -
(WindowProperty <instance name> <property name> -<property value>) -

-The above two commands are equivalent. The screen or window instance is -specified by instance name, the property to be set by property -name, and the value to be set by property value. The following -properties are configurable:

- -
-

-PhysicalScreenWidth

-A number specifying the screen's image area width in meters. When using a -configuration file the default is 0.365. For head mounted displays this should -be the apparent width of the display at the focal plane. - -

-PhysicalScreenHeight

-A number specifying the screen's image area height in meters. When using a -configuration file the default is 0.292. For head mounted displays this should -be the apparent height of the display at the focal plane. - -

-WindowSize

-This property's value can be a 2D point to create a window with the specified -X width and Y height in pixels, or it can be either of the strings FullScreen -or NoBorderFullScreen to specify a full screen canvas with visible frame -borders or one with no frame borders. A NoBorderFullScreen canvas uses the -entire physical display surface for its image. The default value is 512 x 512 -pixels. For multiple screen virtual reality installations or head mounted -displays NoBorderFullScreen should be used. - -

-WindowPosition

-This property's value is a 2D point used to create a window with the specified -X and Y position. These are offsets of the window's upper left corner from the -screen's upper left corner. - -

-TrackerBaseToImagePlate

-A 4D matrix which transforms points from tracker base coordinates to the image -plate coordinates for the specified screen. This is only used when a -ViewPolicy of SCREEN_VIEW is in effect. The matrix value is -identity by default. -

-Image plate dimensions are expressed in meters. The origin of the image plate -is the lower left corner of the screen's image area, with X increasing to the -right, Y increasing to the top, and Z increasing away from the screen.

-

-The tracker base is somewhat abstract. It is used as a local fixed frame of -reference for specifying the orientation and position of a screen even when -tracking hardware is not being used. It is also the frame of reference for -defining coexistence coordinates with the -CoexistenceToTrackerBase matrix.

-

-The built-in commands Translate, -Rotate, RotateTranslate, and TranslateRotate are available to make it easier -to create transforms of this type. - -

-HeadTrackerToLeftImagePlate
-HeadTrackerToRightImagePlate

-4D matrices which transform points in the head tracking sensor's local -coordinate system to a head mounted display's left and right image plates -respectively. The default value for each is the identity matrix.

-

-These are only used when a ViewPolicy of HMD_VIEW is in effect. -As with physical screen dimensions, these matrices should indicate the -apparent location and orientation of the screen images as viewed through -the head mounted display's optics.

-

-The HMD manufacturer's specifications in terms of angle of view, distance to -the focal plane, aspect ratio, and percentage of image overlap between the left -and right views can be used to derive the apparent screen positions with -respect to the head, and from there the positions with respect to the head -tracker mounted on the head. In most cases there is 100% overlap between the -two stereo images, so the matrices for both the left and right screens should -be identical.

-

-Some HMD devices support field-sequential stereo and are driven as if they were -a single screen. In that case, only a single screen should be defined, but -both the left and right head tracker to image plate transforms need to -be specified for that same screen.

- -

-MonoscopicViewPolicy

-This property may have the following string values: CYCLOPEAN_EYE_VIEW, -LEFT_EYE_VIEW, or RIGHT_EYE_VIEW. The default value is -CYCLOPEAN_EYE_VIEW. This default works for non-stereo displays -and field-sequential stereo displays where the two stereo images are generated -on the same canvas.

-

-Some HMD devices can be driven as a single screen if the HMD supports -field-sequential stereo, so the default policy will work for them as well if a -stereo view is enabled. If stereo is not enabled, an IllegalStateException will -be thrown when the ViewPolicy is set to HMD_VIEW with the default -CYCLOPEAN_EYE_VIEW policy in effect.

-

-The LEFT_EYE_VIEW and RIGHT_EYE_VIEW monoscopic view -policies are used for generating stereo pairs on separate monoscopic canvases, -including the left and right canvases needed by HMD devices that are driven by -two video channels. When using these policies, stereo should not be -enabled.

-
-
- -

-NewPhysicalEnvironment

-Syntax: -
(NewPhysicalEnvironment <instance name> -[Alias <alias name>]) -

-Creates a new PhysicalEnvironment and binds it to the name given by instance -name. This specifies the available input devices, which Sensor to use as -the head tracker, and defines the coexistence coordinate system. Note that -aside from the head tracker, the configuration file does not provide a way to -place Sensors into the array maintained by the PhysicalEnvironment. See the -getNamedSensors -method of ConfigContainer.

-

-The last two arguments are optional and define an alias for instance -name. This is useful in providing a longer descriptive name for the -application to recognize, or conversely, to provide a shorter alias for a -longer instance name. Either name may be used to identify the instance.

-
- -

-PhysicalEnvironmentProperty

-Syntax: -
(PhysicalEnvironmentProperty <instance name> -<property name> <property value>) -

-Sets a PhysicalEnvironment property. The instance is specified by instance -name, the property to be set by property name, and the value to be -set by property value. The following properties are configurable:

- -
-

-InputDevice

-Register an InputDevice implementation instantiated by -NewDevice. The InputDevice instance name is specified -by the property value string. If an InputDevice is not registered then -it will not be scheduled to run. - -

-HeadTracker

-Register the Sensor which will be used for head tracking. It must provide 6 -degree of freedom position and orientation reads relative to the tracker base. -The Sensor instance name is specified by the property value string. -Its corresponding input device must be registered with the InputDevice -property. -

-There is no actual method in the core PhysicalEnvironment class to set the head -tracker. This property is a simplified interface for setting the -PhysicalEnvironment head index and assigning the head tracking sensor to that -index. Direct access to the PhysicalEnvironment Sensor array is not supported -by the configuration file.

- -

-CoexistenceToTrackerBase

-A 4D matrix which transforms points in coexistence coordinates to tracker base -coordinates. This defines the position and orientation of coexistence -coordinates relative to the tracker base. Its default value is the identity -matrix, so if it is not set then coexistence coordinates will be the same as -tracker base coordinates. See -TrackerBaseToImagePlate. -

-The coexistence origin (center of coexistence) positions the physical -world with respect to the origin of the ViewPlatform in the virtual world. -This is established through the -ViewAttachPolicy, which attaches the view -platform to either the center of coexistence, the nominal head, or the nominal -feet. Coexistence coordinates can essentially be thought of as physical -coordinates, but the real purpose is to define the space in which coordinates -systems in the physical world - such as tracker base, image plate, and physical -body - coexist and interact with the virtual world coordinate systems.

-

-The basis vectors (X, Y, and Z directions) of coexistence coordinates are -always aligned with the basis vectors of the ViewPlatform in the virtual world, -and the scale factor going from ViewPlatform coordinates to coexistence -coordinates is set by the ScreenScalePolicy. -Together with the ViewPlatform's view attach policy and view transform this -establishes the complete mapping of the physical world into the virtual -world.

-

-The positioning and orientation of coexistence coordinates with respect to the -physical environment is up to the user or application. In a fixed screen -environment it usually makes most sense to define it in a convenient -relationship to the primary screen or some intersection of the available -screens, such that the coexistence origin is in front of and aligned with the -user's nominal forward gaze direction. This is because the -Z axis of -coexistence coordinates always points along the view direction defined by the -view platform's -Z axis.

-

-For example, when using a single screen, the most common mapping puts the -center of coexistence in the middle of the screen with its basis vectors -aligned with the screen's image plate coordinate system. With a dual-screen -system it is usually most convenient to place the center of coexistence in the -middle of the edge shared by both screens, with its Z axis extending -perpendicular to the shared edge and maintaining an equal angle to both -screens. For a 2x2 array of four screens putting the center of coexistence at -the center of the array is usually a good choice. In a cave configuration -having the center of coexistence in the middle of the viewing environment can -facilitate the sense of immersion.

-

-In HMD mode the view attach policy is ignored and is always effectively -NOMINAL_SCREEN. Coexistence coordinates and view platform -coordinates are then equivalent except for scale. For HMD configurations -placing the coexistence coordinate system aligned with some nominal -front-facing user position works well.

-

-Note: the normal Java 3D default is to place the center of coexistence -in the middle of the screen or canvas by setting -CoexistenceCenteringEnable true by -default. This only works for a single screen and if both the -TrackerBaseToImagePlate and CoexistenceToTrackerBase matrices are identity. If -either of these matrices are set from their default identity values in the -configuration file, and CoexistenceCenteringEnable has not been set, then the -centering property will be set false by default.

-

-
- -

-NewPhysicalBody

-Syntax: -
(NewPhysicalBody <instance name> -[Alias <alias name>]) -

-Creates a new PhysicalBody and binds it to the name given by instance -name. The PhysicalBody is essentiallly the users's head, with the origin -halfway between the eyes in the plane of the face. Positive X extends to the -right eye, positive Y up, and positive Z extends into the skull opposite to the -forward gaze direction. Dimensions are expressed in meters.

-

-The last two arguments are optional and define an alias for instance -name. This is useful in providing a longer descriptive name for the -application to recognize, or conversely, to provide a shorter alias for a -longer instance name. Either name may be used to identify the instance.

-
- -

-PhysicalBodyProperty

-Syntax: -
(PhysicalBodyProperty <instance name> <property name> -<property value>) -

-Sets a PhysicalBody property. The instance is specified by instance -name, the property to be set by property name, and the value to be -set by property value. The following properties are configurable:

- -
-

-StereoEyeSeparation

-A number indicating the interpupilary distance in meters. This will set the -left and right eye positions to offsets of half this distance from the head -origin along its X axis. The default is 0.066 meters. -

-This property is a simplified interface to setting the PhysicalBody's separate -left and right eye positions; there is no actual method in PhysicalBody to set -stereo eye separation, but the results are exactly equivalent.

- -

-LeftEarPosition

-A 3D point which sets the left ear position relative to head coordinates. -The default is (-0.08, -0.03, 0.09). - -

-RightEarPosition

-A 3D point which sets the right ear position relative to head coordinates. -The default is (0.08, -0.03, 0.09). - -

-HeadToHeadTracker

-A 4D matrix which transforms points from head coordinates to the local -coordinate system of the head tracking sensor. This allows the positions -of the eyes and ears to be determined from the position and orientation -of the head tracker. The default is the identity matrix. - -

- -NominalEyeOffsetFromNominalScreen

-A distance in meters used as a calibration parameter for -ViewAttachPolicy. It does not actually set -the position of the eyes. The property is ignored if ViewAttachPolicy is -NOMINAL_SCREEN. The default value is 0.4572 meters. - -

-NominalEyeHeightFromGround

-A distance in meters used as a calibration parameter for -ViewAttachPolicy. -It does not actually set the position of the eyes. This property is -ignored if ViewAttachPolicy is not NOMINAL_FEET. The default value is 1.68 -meters. -
-
- -

-NewView

-Syntax: -
(NewView <instance name> -[Alias <alias name>]) -

-Creates a new view and binds it to the name given by instance name. -In the configuration file the term view refers to an instance of the -Viewer utility class, which contains both an -instance of a core Java 3D View class and an array of Canvas3D instances into -which to render.

-

-The last two arguments are optional and define an alias for instance -name. This is useful in providing a longer descriptive name for the -application to recognize, or conversely, to provide a shorter alias for a -longer instance name. Either name may be used to identify the instance.

-

-ConfiguredUniverse requires that at least one view be defined. If a view -platform is not provided, then ConfiguredUniverse will create a default one and -attach the view to that. If multiple views are defined, then at least one view -platform must be explicitly provided by the configuration, and the -ViewPlatform property must be used to attach each view to a view platform.

-
- -

-ViewProperty

-Syntax:
-(NewView <instance name> <property name> -<property value>) -

-Sets a View property. The view instance is specified by instance name, -the property to be set by property name, and the value to be set by -property value. The following properties are configurable:

- -
-

-Screen
-Window

-These two properties are equivalent. They include a screen created by -NewScreen or a window created by -NewWindow into -this view. The screen or window name is specified by the property value -string. Multiple-screen or multiple-window views are created by calling this -command with each window or screen to be used. If no windows or screens are -defined for this view then an IllegalArgumentException will be thrown after the -configuration file has been processed. - -

-PhysicalEnvironment

-Sets the PhysicalEnvironment to be used for this view. The property -value string specifies the name of a PhysicalEnvironment instance created -by the NewPhysicalEnvironment command. -If no PhysicalEnvironment is specified for this view then one with default -values will be created. - -

-PhysicalBody

-Sets the PhysicalBody to be used for this view. The property -value string specifies the name of a PhysicalBody instance created -by the NewPhysicalBody command. If -no PhysicalBody is specified for this view then one with default values -will be created. - -

-ViewPlatform

-The property value string is the name of a view platform defined by a -previous NewViewPlatform command. This -specifies that the view should be attached to the given view platform. -ConfiguredUniverse requires that a view platform be specified for every defined -view unless only a single view without a view platform is provided; in that -case a view platform is created by default and the view is attached to that. -If one or more view platforms are defined then the view attachments must be -made explicitly. - -

-ViewPolicy

-The property value string may be either SCREEN_VIEW or -HMD_VIEW to indicate whether fixed room-mounted screens are being -used or a head mounted display. The default value is SCREEN_VIEW. - -

-CoexistenceCenteringEnable

-The property value is a boolean string. If true, then the origin of the -coexistence coordinate system is set to either the middle of the canvas or the -middle of the screen depending upon whether the WindowMovementPolicy is -PHYSICAL_WORLD or VIRTUAL_WORLD respectively. The X, -Y, and Z directions of coexistence coordinates will point in the same -directions as those of the screen's image plate. -

-This only works if a single screen is being used and if both the -TrackerBaseToImagePlate and -CoexistenceToTrackerBase matrices are -identity. If CoexistenceCenteringEnable is not explicitly set, and either the -CoexistenceToTrackerBase transform for the view has been set or -TrackerBaseToImagePlate has been set for any screen, then the centering enable -will be set to false by default; otherwise, the normal default is true. This -property is also effectively false whenever the ViewPolicy is set to -HMD_VIEW.

- -

-WindowEyepointPolicy

-The string value for this property may be either RELATIVE_TO_SCREEN, -RELATIVE_TO_COEXISTENCE, RELATIVE_TO_WINDOW, or -RELATIVE_TO_FIELD_OF_VIEW. The normal Java 3D default is -RELATIVE_TO_FIELD_OF_VIEW. When using a configuration file the -default is RELATIVE_TO_COEXISTENCE if -CoexistenceCenteringEnable is false, -otherwise the normal default applies. See the -setWindowEyepointPolicy View method. -

-For the RELATIVE_TO_SCREEN and RELATIVE_TO_WINDOW -policies, the eyepoint is set by using the setLeftManualEyeInImagePlate() and -setRightManualEyeInImagePlate() methods of Canvas3D. The configuration file -currently does not provide any mechanism for altering these properties from -their default values. These default values are (0.142, 0.135, 0.4572) for the -left eye and (0.208, 0.135, 0.4572) for the right eye.

-

-These polices are ignored if head tracking is enabled.

- -

-WindowMovementPolicy
-WindowResizePolicy

- -The string values for these properties may be either VIRTUAL_WORLD -or PHYSICAL_WORLD. The normal Java 3D default value for both is -PHYSICAL_WORLD. When using a configuration file the default -values are VIRTUAL_WORLD if -CoexistenceCenteringEnable is false, -otherwise the normal defaults apply. See the -setWindowMovementPolicy and -setWindowResizePolicy View methods.

- -

-CenterEyeInCoexistence

-A 3D point which specifies the location of the center eye relative to -coexistence coordinates. See -CoexistenceToTrackerBase. If stereo -viewing is enabled, then the left and right eye positions are set to offsets -from this position using the values specified by the PhysicalBody. This -property is ignored if head tracking is enabled or if WindowEyepointPolicy is -not RELATIVE_TO_COEXISTENCE. The default value is (0.0, 0.0, -0.4572). -

-This property is a simplified interface to setting the View's left -and right manual eyes in coexistence; there is no actual method in View -to set a center eye position.

- -

-ScreenScalePolicy

-The property value string may be either SCALE_SCREEN_SIZE -or SCALE_EXPLICIT and determines the source of the screen -scale, a factor in the scaling of view platform coordinates to physical -world coordinates. -

-If the value is SCALE_SCREEN_SIZE, then the screen scale is half -the physical screen width in meters. If WindowResizePolicy is -PHYSICAL_WORLD, then this scale is further multiplied by the ratio -of the window width to the width of the screen (the window scale) to -produce the scale from view platform coordinates to physical coordinates. This -allows a virtual world which spans a normalized width of [-1.0 .. 1.0] in view -platform coordinates to map directly to the physical width of the window or -screen, depending upon the resize policy.

-

-SCALE_EXPLICIT uses the value of the ScreenScale property as the -screen scale. It is also further multiplied by the window scale when using the -PHYSICAL_WORLD window resize policy to produce the scale from view -platform coordinates to physical coordinates. Viewing configurations -incorporating multiple screens should generally set the policy to -SCALE_EXPLICIT and choose a screen scale based on the aggregate -display size, but the default value of SCALE_SCREEN_SIZE will -usually work if all the screens are the same size and arranged in a linear -array.

-

-The view platform is positioned in the virtual world through a chain of -transforms to the root of the scene graph; this composite transform is its -localToVWorld transform and must be congruent. If we take the the inverse of -the scale factor in this transform and call it the view platform scale, -then the scale from virtual world units to physical world units can be computed -as the product of this view platform scale, the screen scale, and, when using a -resize policy of PHYSICAL_WORLD, the window scale. In the usual -case the view platform scale is 1.0.

- -

-ScreenScale

-The property value is a number specifying the explicit screen scale -factor. It is only used if ScreenScalePolicy is SCALE_EXPLICIT; -otherwise, the screen scale is half the physical width of the screen in meters. -The default value for this property is 1.0. - -

-BackClipPolicy
-FrontClipPolicy

-The string values of these properties may be either PHYSICAL_EYE, -PHYSICAL_SCREEN, VIRTUAL_EYE, or VIRTUAL_SCREEN. The -default policies are PHYSICAL_EYE. See the -setFrontClipPolicy and -setBackClipPolicy View methods. - -

-FrontClipDistance
-BackClipDistance

-These property values are numbers. The defaults are 0.1 and 10.0 -respectively. See the -setFrontClipDistance and -setBackClipDistance View methods.

-

-With the default clip policies of PHYSICAL_EYE the clip distances -are measured relative to the eye in physical units, so the clip distances -specified must be scaled to virtual world units in order to determine the -distances in the virtual world where they would effectively be applied. As -described in the discussion of -ScreenScalePolicy above, the scale from -virtual units to physical units is the product of the view platform scale -(usually 1.0), the screen scale, and the window scale (if the window resize -policy is PHYSICAL_WORLD), so normally the scale from physical -units to virtual units would be the inverse of that product.

-

-There is a quirk, however, with physical clip plane scaling when the -PHYSICAL_EYE or PHYSICAL_SCREEN clip policies are -used with the PHYSICAL_WORLD window resize policy. The locations -of the clip planes in physical units are not actually set to the physical -distances as specified, but are in fact scaled by the window scale. -This means that when determining where the specified physical clip distances -are in virtual units the scaling to be used is the inverse of the product of -the screen scale and view platform scale only.

-

-This quirk applies only to scaling physical clip plane distances, and only with -the PHYSICAL_WORLD resize policy. It was implemented in this -manner to prevent objects in the virtual world from getting clipped -unexpectedly when the virtual world scaling changed as the result of a window -resize. The quirk can be avoided by using the VIRTUAL_EYE or -VIRTUAL_SCREEN clip policies or by using the -VIRTUAL_WORLD resize policy, but in most cases the effect is -benign and doesn't lead to unexpected results.

- -

-FieldOfView

-This number is the view's horizontal field of view in radians. The default -value is PI/4. This value is ignored if WindowEyepointPolicy is not -RELATIVE_TO_FIELD_OF_VIEW or if head tracking is enabled. The -eyepoint for each canvas associated with the view is set such that it is -centered in X and Y, with the Z value at the appropriate distance to match the -specified field of view across the width of the canvas. - -

-StereoEnable

-Enable or disable stereo viewing for this view according to the boolean value -specified by the property value string. The default value is false. -

-There is no actual method in the core Java 3D View or utility Viewer class to -enable stereo. A true value for this property causes ConfigContainer to -attempt to create stereo-capable canvases for all the screens associated with -this view. Stereo will then be enabled for each canvas successfully created -with stereo capability.

- -

-TrackingEnable

-Enable or disable head tracking for this view according to the boolean value -specified by the property value string. The default value is false. -

-Setting this property true causes WindowEyepointPolicy to be ignored; it will -effectively be RELATIVE_TO_COEXISTENCE with the eyepoint in -coexistence coordinates computed from reading the head tracking sensor. -Tracking must be made available by registering an input device and a head -tracking sensor in PhysicalEnvironment.

- -

-AntialiasingEnable

-Enable or disable scene antialiasing for this view according to the boolean -value specified by the property value string. The default value is -false. -

-A true value for this property causes ConfigContainer to attempt to create -a canvas capable of scene antialiasing on each screen associated with this -view. The scene will then be antialiased on each canvas successfully created -with that capability.

-

-Line and point antialiasing are independent of scene antialiasing and are -controlled by the LineAttribute and PointAttribute components of an Appearance. -If line and point antialiasing is enabled, then they will be antialiased prior -to scene antialiasing; if scene antialiasing is turned off, then antialiased -lines and points will still be antialiased.

-
-
- -

-NewViewPlatform

-Syntax: -
(NewViewPlatform <instance name> -[Alias <alias name>]) -

-Creates a new view platform and binds it to the name given by instance -name. In the configuration file the term view platform refers to an -instance of the ViewingPlatform utility -class, which is an extension of BranchGroup containing an instance of a core -Java 3D ViewPlatform class.

-

-The last two arguments are optional and define an alias for instance -name. This is useful in providing a longer descriptive name for the -application to recognize, or conversely, to provide a shorter alias for a -longer instance name. Either name may be used to identify the instance.

-
- -

-ViewPlatformProperty

-Syntax: -
(ViewPlatformProperty <instance name> <property name> -<property value>) -

-Sets a ViewPlatform property. The instance is specified by instance -name, the property to be set by property name, and the value to be -set by property value. The following properties are configurable:

- -
-

-NominalViewingTransform

-The property value is a boolean string indicating whether or not -the view platform should be backed up in Z to allow objects at the origin to be -viewed. This only has effect if the ViewAttachPolicy is -NOMINAL_HEAD. The default value is false. See the -setNominalViewingTransform -method of ViewingPlatform. - -

-InitialViewingTransform

-Sets the initial transform of the view platform to the 4D matrix -specified by property value. The default value is identity. - -

-AllowPolicyRead

-The property value is a boolean string indicating whether or not reading -the ViewAttachPolicy is allowed. The default value is false. - -

-AllowLocalToVworldRead

-The property value is a boolean string indicating whether or not reading -the view platform's localToVworld transform is allowed. The default value is -false. - -

-ViewPlatformBehavior

-Attaches a ViewPlatformBehavior instantiated by -NewViewPlatformBehavior. -The property value string is the name bound to that instance. - -

-ViewAttachPolicy

-The property value string can be one of NOMINAL_SCREEN, -NOMINAL_HEAD, or NOMINAL_FEET. This establishes the point -in coexistence coordinates where the origin of view platform coordinates is -attached. The basis vectors of view platform coordinates are always aligned -with those of coexistence coordinates. -

-For a ViewAttachPolicy of NOMINAL_SCREEN, the ViewPlatform origin -is set directly to the origin of coexistence, so that ViewPlatform coordinates -and coexistence coordinates are identical except for scale.

-

-For a ViewAttachPolicy of NOMINAL_HEAD, the ViewPlatform origin is -set to the origin of the nominal head, the center eye halfway between the left -and right eyes. The nominal head origin is on the Z axis of coexistence -coordinates at some offset from the coexistence origin. If the -WindowEyepointPolicy is RELATIVE_TO_FIELD_OF_VIEW, then this is -the positive Z offset producing the required field of view relative to the -width of the canvas at the coexistence origin, tracking the Z offset of the -eyepoint defined by that policy; otherwise, the Z offset is the -NominalEyeOffsetFromNominalScreen property of PhysicalBody and is decoupled -from the actual eyepoint offset.

-

-For a ViewAttachPolicy of NOMINAL_FEET, the ViewPlatform origin is -at the ground plane, which is NominalEyeHeightFromGround meters along -Y from -the origin of the nominal head. NominalEyeHeightFromGround is a property of -PhysicalBody.

-

-Note: The normal Java 3D default is NOMINAL_HEAD. When -using a configuration file, the default is NOMINAL_HEAD only if -every view attached to the view platform has a WindowEyepointPolicy of -RELATIVE_TO_FIELD_OF_VIEW; otherwise, the default is -NOMINAL_SCREEN. If the view policy is HMD_VIEW, then -the ViewAttachPolicy is ignored and is always effectively -NOMINAL_SCREEN.

-
-
- -

-NewViewPlatformBehavior

-Syntax: -
(NewViewPlatformBehavior <instance name> <class name> -[Alias <alias name>]) -

-This command instantiates the concrete subclass of ViewPlatformBehavior -specified by the fully qualified class name and binds it to instance -name. The ViewPlatformBehavior is instantiated through introspection of -the class name. The subclass must provide a parameterless constructor. If no -such constructor is available, then the behavior must be extended or wrapped to -provide one and the derived class used instead.

-

-The last two arguments are optional and define an alias for instance -name. This is useful in providing a longer descriptive name for the -application to recognize, or conversely, to provide a shorter alias for a -longer instance name. Either name may be used to identify the instance.

-

-View platform behaviors often need sensors or canvases as event sources to -drive the behavior action. A subclass of ViewPlatformBehavior always gets the -current ViewingPlatform through its -setViewingPlatform -method. When the behavior is initialized, the canvases used by the -ViewingPlatform can be retrieved by calling its -getViewers method and -then calling each Viewer's -getCanvas3Ds method. Sensors -can be retrieved by calling the ViewingPlatform method -getUniverse, checking -to see if the returned SimpleUniverse is a ConfiguredUniverse, and then calling -its -getNamedSensors -method.

-

-Alternatively, the behavior implementation can define its own properties -and receive canvas and sensor instances directly through the -Canvas3D and Sensor built-in -commands.

-
- -

-ViewPlatformBehaviorProperty

-Syntax: -
(ViewPlatformBehaviorProperty <instance name> -<property name> <property value>) -

-Sets a property of a ViewPlatformBehavior. The instance is specified by -instance name, the property to be set by property name, and the -value to be set by property value. The following properties are -pre-defined by the abstract ViewPlatformBehavior superclass and may be -configured directly:

- -

-

-SchedulingBounds

-The scheduling bounds for this behavior. Use the -BoundingSphere built-in command to set this -property. The default is whatever the application or the concrete subclass -sets. - -

-SchedulingInterval

-A number indicating the scheduling interval for this behavior. See the -setSchedulingInterval -method of Behavior. - -

-HomeTransform

-See the ViewPlatformBehavior method -setHomeTransform. -The property value must be a 4D matrix. -
-

-The details of a concrete subclass of ViewPlatformBehavior are not known to -ConfigContainer, so any properties specific to the subclass are set by -using introspection to invoke property name as a method accepting an -array of Objects as its single parameter. The arguments following the property -name are evaluated and the results passed to the method through that array of -Objects. Such methods can usually be provided by extending or wrapping -existing ViewPlatformBehavior implementations.

-
- -

-NewObject

-Syntax: -
(NewObject <instance name> <class name> -[Alias <alias name>]) -

-This command instantiates a generic object specified by class -name and binds it to instance name. The object is instantiated -through introspection of the class name. The object must provide a -parameterless constructor; this can usually be done by extending or -wrapping existing objects.

-

-The last two arguments are optional and define an alias for instance -name. This is useful in providing a longer descriptive name for the -application to recognize, or conversely, to provide a shorter alias for a -longer instance name. Either name may be used to identify the instance.

-

-Objects so defined may be accessed from ConfigContainer through the -getNamedGenericObjects method.

-
- -

-ObjectProperty

-Syntax: -
(ObjectProperty <instance name> <method name> <arg0> -... <argn>) -

-Sets a property of a generic object. The details of the object specified by -instance name are not known to ConfigContainer, so any parameters to be -set through the configuration file are passed to the object instance by -invoking method name through introspection. The arguments following the -method name are evaluated and the results passed to the method as an array of -Objects. The required methods can usually be provided by extending or wrapping -existing objects.

-
- -

-JavaProperty

-Syntax: -
(JavaProperty <propertyName> [Default] -<propertyValue>) -

-Sets the Java system property propertyName to the string -propertyValue. If the optional Default keyword is supplied, then the -property is set only if it doesn't currently have a value.

-

-Java system properties which affect Java 3D are evaluated at the first -reference to a VirtualUniverse. Setting such properties in the configuration -file is therefore ineffective if a ConfiguredUniverse constructor which accepts -a URL directly is used; ConfigContainer must be used instead. Even then, care -must be taken to avoid static references to VirtualUniverse from objects such -as Transform3D.

-

-The special Java property substitution syntax ${<propertyName>} -may be used to access the value of a Java system property anywhere within a -configuration file.

-
- -

-Include

-Syntax: -
(Include <URL string>) -

-Retrieves the configuration file specified by URL string and includes it -into the current configuration file at the current line. The content of the -included file is evaluated exactly as if it were pasted into the current file -at that line. Included files may be arbitrarily nested.

-

-URL strings must be quoted.

-


- -

-Alias

-Syntax: -
(<baseName>Alias <aliasName> -<originalName>) -

-Creates an alias for the object specified by originalName (which itself -may be an alias). baseName may be Device, Object, PhysicalBody, -PhysicalEnvironment, Screen, Window, Sensor, View, ViewPlatform, or -ViewPlatformBehavior; it specifies the type of the object being aliased. -Original names and aliases must be unique within a type. Note that there is no -white space between baseName and Alias.

-

-Aliases are useful for providing shorter or longer descriptive names for an -original name. This function is also provided by the optional Alias keyword -available for all New top-level commands. This separate command can be -used to substitute new names for objects created by generic include files in -order to conform to the names expected by specific applications.

-
- - - - - - -
-Built-In Command Details
-

-Built-in commands are provided by the parser itself to help construct the -arguments to top-level commands. They cannot appear at the top level of -command nesting.

-

-Translate, Rotate, TranslateRotate, and RotateTranslate are useful for -computing simple affine transforms of the form SourceToTarget -(e.g., TrackerBaseToImagePlate). These transform points from the -Source coordinate system to the Target coordinate system by -concatenating translation and rotation matrices. Here is a general rule for -creating such transforms:

- -
-Subtract (translate) the target origin first if it can be conveniently measured -or computed relative to the source origin along the source X, Y, and Z basis -vectors. Then rotate with Euler angles that move the target basis vectors to -their corresponding source basis vectors. -

-If instead it is easier to measure or compute the source origin relative to the -target origin along the target basis vectors, rotate first with Euler angles -that move the target basis vectors to their corresponding source basis vectors, -and then add (translate) the source origin.

-
-

-The Canvas3D, Sensor, Device, PhysicalBody, PhysicalEnvironment, View, -ViewPlatform, ViewPlatformBehavior, and Object built-in commands return -references to the objects named by their arguments. These are mostly useful -for InputDevice and ViewPlatformBehavior implementations that define their own -properties. The return values of these built-in commands should not be passed -to commands that expect strings.

-
- -

-Translate

-Syntax: -
(Translate <x offset> <y offset> <z offset>) -

-Returns a 4D matrix that translates by the given X, Y, and Z values.

-
- -

-Rotate

-Syntax: -
(Rotate <x degrees> <y degrees> <z degrees>) -

-Returns a 4D matrix that rotates by the given Euler angles around static X, Y, -and Z basis vectors: first about X, then Y, and then Z. See the -setEuler -method of Transform3D.

-
- -

-Concatenate

-Syntax: -
(Concatenate <m1> <m2>) -

-Returns a 4D matrix that concatenates 4D matrices m1 and m2 in -that order. If a point is transformed by the resulting matrix, then in effect -the points are first transformed by m1 and then m2.

-
- -

-RotateTranslate

-Syntax: -
(RotateTranslate <m1> <m2>) -

-An alias for the Concatenate command. This is useful to make the -result of the concatenation explicit.

-
- -

-TranslateRotate

-Syntax: -
(TranslateRotate <m1> <m2>) -

-An alias for the Concatenate command. This is useful to make the -result of the concatenation explicit.

-
- -

-BoundingSphere

-Syntax: -
(BoundingSphere <center> <radius>) -

-Returns a BoundingSphere object using the 3D point center and the given -radius in meters. radius may be either a number or the string -Infinite.

-
- -

-Canvas3D

-Syntax: -
(Canvas3D <screen or window name>) -

-Returns the Canvas3D instance specified by the given name. A named Canvas3D is -created whenever any of the following configuration commands are used: - -

-(ViewProperty <view> Screen <screenName>)
-(ViewProperty <view> Window <windowName>) -
- -view is the name of a view created with the NewView command. The -argument to the Canvas3D built-in must be a screenName or -windowName parameter from one of the above commands.

-

-Note: the NewScreen and NewWindow commands do not create Canvas3D -instances themselves; they are created only by the above configuration -commands.

-
- -

-Sensor

-Syntax: -
(Sensor <sensor name>) -

-Returns the Sensor instance specified by the given name.

-
- -

-Device

-Syntax: -
(Device <device name>) -

-Returns the InputDevice instance specified by the given name.

-
- -

-PhysicalBody

-Syntax: -
(PhysicalBody <body name>) -

-Returns the PhysicalBody instance specified by the given name.

-
- -

-PhysicalEnvironment

-Syntax: -
(PhysicalEnvironment <environment name>) -

-Returns the PhysicalEnvironment instance specified by the given name.

-
- -

-View

-Syntax: -
(View <view name>) -

-Returns the Viewer instance specified by the given name.

-
- -

-ViewPlatform

-Syntax: -
(ViewPlatform <view platform name>) -

-Returns the ViewingPlatform instance specified by the given name.

-
- -

-ViewPlatformBehavior

-Syntax: -
(ViewPlatformBehavior <behavior name>) -

-Returns the ViewPlatformBehavior instance specified by the given name.

-
- -

-Object

-Syntax: -
(Object <generic object name>) -

-Returns the generic object instance specified by the given name. A generic -named object is created by the following configuration command: - -

-(NewObject <instance name> <class name> -[Alias <alias name>]) -
-
- -

-ConfigContainer

-Syntax: -
(ConfigContainer) -

-Returns a reference to the current ConfigContainer.

-
- -
- - - - -
-Command Index
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CommandType
Aliastop-level
BoundingSpherebuilt-in
Canvas3Dbuilt-in
Concatenatebuilt-in
ConfigContainerbuilt-in
Devicebuilt-in
DevicePropertytop-level
Includetop-level
JavaPropertytop-level
NewDevicetop-level
NewObjecttop-level
NewPhysicalBodytop-level
NewPhysicalEnvironmenttop-level
NewScreentop-level
NewSensortop-level
NewViewtop-level
NewViewPlatformtop-level
NewViewPlatformBehaviortop-level
NewWindowtop-level
Objectbuilt-in
ObjectPropertytop-level
PhysicalBodybuilt-in
PhysicalBodyPropertytop-level
PhysicalEnvironmentbuilt-in
PhysicalEnvironmentPropertytop-level
Rotatebuilt-in
RotateTranslatebuilt-in
ScreenPropertytop-level
Sensorbuilt-in
SensorPropertytop-level
Translatebuilt-in
TranslateRotatebuilt-in
Viewbuilt-in
ViewPlatformbuilt-in
ViewPlatformBehaviorbuilt-in
ViewPropertytop-level
ViewPlatformPropertytop-level
ViewPlatformBehaviorPropertytop-level
WindowPropertytop-level
-

- - - - - - -
-Property Index
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyCommand
AllowLocalToVworldReadViewPlatformProperty
AllowPolicyReadViewPlatformProperty
AntialiasingEnableViewProperty
BackClipDistanceViewProperty
BackClipPolicyViewProperty
CenterEyeInCoexistenceViewProperty
CoexistenceCenteringEnableViewProperty
CoexistenceToTrackerBasePhysicalEnvironmentProperty
FieldOfViewViewProperty
FrontClipDistanceViewProperty
FrontClipPolicyViewProperty
HeadToHeadTrackerPhysicalBodyProperty
HeadTrackerPhysicalEnvironmentProperty
HeadTrackerToLeftImagePlateScreenProperty
HeadTrackerToRightImagePlateScreenProperty
HomeTransformViewPlatformBehaviorProperty
HotspotSensorProperty
InitialViewingTransformViewPlatformProperty
InputDevicePhysicalEnvironmentProperty
LeftEarPositionPhysicalBodyProperty
MonoscopicViewPolicyScreenProperty
NominalEyeHeightFromGroundPhysicalBodyProperty
NominalEyeOffsetFromNominalScreenPhysicalBodyProperty
NominalViewingTransformViewPlatformProperty
PhysicalBodyViewProperty
PhysicalEnvironmentViewProperty
PhysicalScreenHeightScreenProperty
PhysicalScreenWidthScreenProperty
RightEarPositionPhysicalBodyProperty
SchedulingBoundsViewPlatformBehaviorProperty
SchedulingIntervalViewPlatformBehaviorProperty
ScreenViewProperty
ScreenScaleViewProperty
ScreenScalePolicyViewProperty
StereoEnableViewProperty
StereoEyeSeparationPhysicalBodyProperty
TrackerBaseToImagePlateScreenProperty
TrackingEnableViewProperty
ViewAttachPolicyViewPlatformProperty
ViewPlatformViewProperty
ViewPlatformBehaviorViewPlatformProperty
ViewPolicyViewProperty
WindowViewProperty
WindowEyepointPolicyViewProperty
WindowMovementPolicyViewProperty
WindowPositionWindowProperty
WindowResizePolicyViewProperty
WindowSizeWindowProperty
- - diff --git a/src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x1-behavior.html b/src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x1-behavior.html deleted file mode 100644 index 1c6598d..0000000 --- a/src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x1-behavior.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - j3d1x1-behavior config file - - - -
-/*
- ************************************************************************
- *  
- * Java 3D configuration file for single fullscreen desktop configuration.
- * A view platform behavior is created and configured here as well.
- *  
- ************************************************************************
- */
-
-(NewScreen center 0)
-(ScreenProperty center WindowSize NoBorderFullScreen)
-
-(NewView view0)
-(ViewProperty view0 Screen center)
-
-// Create a view platform behavior.  Here we use OrbitBehavior, although any
-// concrete subclass of the abstract ViewPlatformBehavior with a parameterless
-// constructor could be used.  The logical name to assign to this behavior is
-// specified by the 2nd argument to the NewViewPlatformBehavior command, while
-// the 3rd argument is the name of the ViewPlatformBehavior subclass.  It is
-// instantiated through introspection.
-// 
-(NewViewPlatformBehavior vpb org.jogamp.java3d.utils.behaviors.vp.OrbitBehavior)
-
-// Set the scheduling bounds to be a BoundingSphere with its center at 
-// (0.0 0.0 0.0) and an infinite radius.
-// 
-(ViewPlatformBehaviorProperty vpb SchedulingBounds
-                                  (BoundingSphere (0.0 0.0 0.0) infinite))
-
-// Set properties specific to OrbitBehavior.  All arguments following the
-// method name are wrapped and passed to the specified method as an array of
-// Objects.  Strings "true" and "false" get turned into Boolean, and number
-// strings get turned into Double.  Constructs such as (0.0 1.0 2.0) and
-// ((0.0 1.0 2.0 0.5) (3.0 4.0 5.0 1.0) (6.0 7.0 8.0 0.0)) get converted to
-// Point3d and Matrix4d respectively. Note that last row of a Matrix4d doesn't
-// need to be specified; it is implicitly (0.0 0.0 0.0 1.0).
-// 
-// The REVERSE_ALL flags are usually passed to the OrbitBehavior constructor.
-// Since it is being instantiated with its parameterless constructor the
-// reverse flags are set here explicitly.
-// 
-(ViewPlatformBehaviorProperty vpb ReverseTranslate true)
-(ViewPlatformBehaviorProperty vpb ReverseRotate    true)
-(ViewPlatformBehaviorProperty vpb ReverseZoom      true)
-
-// Create a new view platform and set the view platform behavior.
-// 
-(NewViewPlatform vp)
-(ViewPlatformProperty vp ViewPlatformBehavior vpb)
-
-// Attach the view to the view platform.
-(ViewProperty view0 ViewPlatform vp)
-
- - diff --git a/src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x1-stereo.html b/src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x1-stereo.html deleted file mode 100644 index 0a91eed..0000000 --- a/src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x1-stereo.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - j3d1x1-stereo config file - - - -
-/*
- ************************************************************************
- *  
- * Java 3D configuration file for single fullscreen stereo desktop
- * configuration with no head tracking.
- *  
- ************************************************************************
- */
-
-(NewScreen center 0)
-(ScreenProperty center WindowSize NoBorderFullScreen)
-
-// Define the physical body.
-//
-// The head origin is halfway between the eyes, with X extending to the right,
-// Y up, and positive Z extending into the skull.
-// 
-(NewPhysicalBody SiteUser)
-
-// Set the interpupilary distance.  This sets the LeftEyePosition and
-// RightEyePosition to offsets of half this distance along both directions of
-// the X axis.
-// 
-(PhysicalBodyProperty SiteUser StereoEyeSeparation 0.066)
-
-// Create a view using the defined screen and physical body.
-//
-(NewView view0)
-(ViewProperty view0 Screen       center)
-(ViewProperty view0 PhysicalBody SiteUser)
-
-// Enable stereo viewing.
-// 
-(ViewProperty view0 StereoEnable true)
-
- - diff --git a/src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x1-vr.html b/src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x1-vr.html deleted file mode 100644 index a2e07ac..0000000 --- a/src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x1-vr.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - - j3d1x1-vr config file - - - -
-/*
- ************************************************************************
- *  
- * Java 3D configuration file for a single screen stereo desktop display
- * using a head tracker and 6DOF mouse.
- *
- ************************************************************************
- */
-
-// Create a screen object and give it a logical name.
-(NewScreen center 0)
-
-// Set the actual available image area.
-(ScreenProperty center PhysicalScreenWidth     0.398)
-(ScreenProperty center PhysicalScreenHeight    0.282)
-(ScreenProperty center WindowSize              NoBorderFullScreen)
-
-// Set the TrackerBaseToImagePlate transform for this screen.
-(ScreenProperty center TrackerBaseToImagePlate
-                 (RotateTranslate (Rotate    50.000 0.000 0.000)
-                                  (Translate  0.199 0.376 0.000)))
-
-// Configure the head tracker.
-(NewDevice      tracker1 org.jogamp.java3d.input.LogitechTracker)
-(DeviceProperty tracker1 SerialPort "/dev/ttya")
-(DeviceProperty tracker1 ReceiverBaseline     0.1450)
-(DeviceProperty tracker1 ReceiverLeftLeg      0.0875)
-(DeviceProperty tracker1 ReceiverHeight       0.0470)
-(DeviceProperty tracker1 ReceiverTopOffset    0.0000)
-(DeviceProperty tracker1 RealtimeSerialBuffer true)
-
-// Configure the 6DOF wand.
-(NewDevice      tracker2 org.jogamp.java3d.input.LogitechTracker)
-(DeviceProperty tracker2 SerialPort "/dev/ttyb")
-(DeviceProperty tracker2 ReceiverBaseline     0.0700)
-(DeviceProperty tracker2 ReceiverLeftLeg      0.0625)
-(DeviceProperty tracker2 ReceiverHeight       0.0510)
-(DeviceProperty tracker2 ReceiverTopOffset    0.0000)
-(DeviceProperty tracker2 RealtimeSerialBuffer true)
-
-// Make the tracker2 device a slave of the tracker1 device.
-(DeviceProperty tracker1 Slave (Device tracker2))
-
-// Create a 2D mouse valuator.
-(NewDevice      mouse org.jogamp.java3d.input.Mouse2DValuator)
-(DeviceProperty mouse Components (Canvas3D center))
-
-// Create logical names for the available sensors.
-(NewSensor head    tracker1 0)
-(NewSensor mouse6d tracker2 0)
-(NewSensor mouse2d mouse    0)
-
-// Set the 6DOF mouse sensor hotspot in the local sensor coordinate system.
-(SensorProperty mouse6d Hotspot (0.00 0.00 -0.10))
-
-// Create a physical environment.
-(NewPhysicalEnvironment SampleSite)
-
-// Register the input devices and head tracker sensor.
-(PhysicalEnvironmentProperty SampleSite InputDevice tracker1)
-(PhysicalEnvironmentProperty SampleSite InputDevice tracker2)
-(PhysicalEnvironmentProperty SampleSite InputDevice mouse)
-(PhysicalEnvironmentProperty SampleSite HeadTracker head)
-
-// Define coexistence coordinates.
-(PhysicalEnvironmentProperty SampleSite CoexistenceToTrackerBase
-                              (TranslateRotate (Translate 0.0 -0.235 0.0)
-                                               (Rotate -50.0 0.0 0.0)))
-
-// Define the physical body.
-(NewPhysicalBody SiteUser)
-
-// Set the interpupilary distance.
-(PhysicalBodyProperty SiteUser StereoEyeSeparation 0.066)
-
-// Define the head location relative to the tracker mounted on the head.
-(PhysicalBodyProperty SiteUser HeadToHeadTracker ((1.0 0.0 0.0 0.000)
-                                                  (0.0 1.0 0.0 0.020)
-                                                  (0.0 0.0 1.0 0.018)))
-
-// Create a view platform behavior.  
-// 
-(NewViewPlatformBehavior vpb org.jogamp.java3d.utils.behaviors.vp.WandViewBehavior)
-
-(ViewPlatformBehaviorProperty vpb Sensor6D (Sensor mouse6d))
-(ViewPlatformBehaviorProperty vpb Sensor2D (Sensor mouse2d))
-
-(ViewPlatformBehaviorProperty vpb ButtonAction6D 1 GrabView)
-(ViewPlatformBehaviorProperty vpb ButtonAction6D 2 TranslateForward)
-(ViewPlatformBehaviorProperty vpb ButtonAction6D 0 TranslateBackward)
-
-(ViewPlatformBehaviorProperty vpb RotationCoords ViewPlatform)
-(ViewPlatformBehaviorProperty vpb ButtonAction2D 1 Translation)
-(ViewPlatformBehaviorProperty vpb ButtonAction2D 2 Scale)
-
-(ViewPlatformBehaviorProperty vpb EchoType Beam) 
-(ViewPlatformBehaviorProperty vpb EchoSize 0.004) 
-
-(ViewPlatformBehaviorProperty vpb EchoColor 1.0 0.7 0.0)
-(ViewPlatformBehaviorProperty vpb EchoTransparency 0.4)
-
-// Create a new view platform and set the view platform behavior.
-// 
-(NewViewPlatform vp)
-(ViewPlatformProperty vp ViewPlatformBehavior vpb)
-
-// Create a view.
-//
-(NewView       view0)
-(ViewProperty  view0   Screen                  center)
-(ViewProperty  view0   PhysicalEnvironment     SampleSite)
-(ViewProperty  view0   PhysicalBody            SiteUser)
-(ViewProperty  view0   ViewPlatform            vp)
-
-// Enable stereo viewing and head tracking.
-(ViewProperty  view0   StereoEnable            true)
-(ViewProperty  view0   TrackingEnable          True)
-
- - diff --git a/src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x1-window.html b/src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x1-window.html deleted file mode 100644 index 3ff401f..0000000 --- a/src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x1-window.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - - j3d1x1-window config file - - - -
-/*
- ************************************************************************
- *  
- * Java 3D configuration file for a conventional single screen, windowed
- * desktop configuration.
- *  
- ************************************************************************
- */
-
-(NewWindow window1 0)
-(WindowProperty window1 WindowSize (700.0 700.0))
-
-(NewView view1)
-(ViewProperty view1 Window window1)
-
- - diff --git a/src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x1.html b/src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x1.html deleted file mode 100644 index 1f7f17b..0000000 --- a/src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x1.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - j3d1x1 config file - - - -
-/*
- ************************************************************************
- *  
- * Java 3D configuration file for a single fullscreen desktop configuration.
- *  
- ************************************************************************
- */
-
-(NewWindow big 0)
-(WindowProperty big WindowSize NoBorderFullScreen)
-
-(NewView view0)
-(ViewProperty view0 Window big)
-
- - diff --git a/src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x2-flat.html b/src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x2-flat.html deleted file mode 100644 index 9391af2..0000000 --- a/src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x2-flat.html +++ /dev/null @@ -1,152 +0,0 @@ - - - - - j3d1x2-flat config file - - - -
-/*
- ************************************************************************
- *  
- * Java 3D configuration file for dual-screen (flat) desktop configuration
- * with no head tracking.
- *  
- ************************************************************************
- */
-
-// Create new screen objects and associate them with logical names and numbers.
-// These numbers are used as indices to retrieve the AWT GraphicsDevice from
-// the array that GraphicsEnvironment.getScreenDevices() returns.
-// 
-// NOTE: The GraphicsDevice order in the array is specific to the local
-// site and display system.
-// 
-(NewScreen left  0)
-(NewScreen right 1)
-
-// Set the screen dimensions.
-// 
-(ScreenProperty left  PhysicalScreenWidth  0.360)
-(ScreenProperty left  PhysicalScreenHeight 0.288)
-
-(ScreenProperty right PhysicalScreenWidth  0.360)
-(ScreenProperty right PhysicalScreenHeight 0.288)
-
-// Specify full screen windows.
-// 
-(ScreenProperty left  WindowSize NoBorderFullScreen)
-(ScreenProperty right WindowSize NoBorderFullScreen)
-
-// Set the TrackerBaseToImagePlate transforms for these screens.  This
-// transforms points in tracker base coordinates to each screen's image plate
-// coordinates, where the origin of the image plate is defined to be the lower
-// left corner of the screen with X increasing to the right, Y increasing to
-// the top, and Z increasing away from the screen.
-//
-// Without head or sensor tracking the tracker base is still needed as a fixed
-// frame of reference for describing the orientation and position of each
-// screen to the others.  The coexistence to tracker base transform is set to
-// identity by default, so the tracker base origin and orientation will also
-// set the origin and orientation of coexistence coordinates in the physical
-// world.
-//
-// The tracker base and center of coexistence is set here to the middle of the
-// edge shared by the two screens.
-//
-(ScreenProperty left  TrackerBaseToImagePlate
-                       (Translate 0.360 0.144 0.0))
-(ScreenProperty right TrackerBaseToImagePlate
-                       (Translate 0.000 0.144 0.0))
-
-// Sometimes it is desirable to include the bevels in between the monitors in
-// the TrackerBaseToImagePlate transforms, so that the abutting bevels obscure
-// the view of the virtual world instead of stretching it out between the
-// monitors.  For a bevel width of 4.5 cm on each monitor, the above commands
-// would become the following:
-// 
-// (ScreenProperty left  TrackerBaseToImagePlate
-//                        (Translate  0.405 0.144 0.0))
-// (ScreenProperty right TrackerBaseToImagePlate
-//                        (Translate -0.045 0.144 0.0))
-//
-// Conversely, a similar technique may be used to include overlap between the
-// screens.  This is useful for projection systems which use edge blending
-// to provide seamless integration between screens.
-
-
-// Create a view using the defined screens.
-// 
-(NewView view0)
-(ViewProperty view0 Screen left)
-(ViewProperty view0 Screen right)
-
-// Set the eyepoint relative to coexistence coordinates.  Here it is set 45cm
-// toward the user along Z, extending out from the midpoint of the edge shared
-// by the two screens.  This will create the appropriate skewed projection
-// frustums for each image plate.
-// 
-// If a planar display surface is all that is required, the same effect could
-// be achieved in a virtual screen enviroment such as Xinerama by simply
-// creating a canvas that spans both screens.  In some display environments the
-// use of a canvas that spans multiple physical screens may cause significant
-// performance degradation, however.
-// 
-// See j3d1x2-rot30 for an example of a non-planar configuration that cannot be
-// achieved through a single canvas spanning both screens.
-// 
-(ViewProperty view0 CenterEyeInCoexistence (0.0 0.0 0.45))
-
-(NewViewPlatform vp)
-(ViewPlatformProperty vp AllowPolicyRead true)
-(ViewPlatformProperty vp AllowLocalToVworldRead true)
-
-(ViewProperty view0 ViewPlatform vp)
-
- - diff --git a/src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x2-rot30.html b/src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x2-rot30.html deleted file mode 100644 index ca5fdd6..0000000 --- a/src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x2-rot30.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - j3d1x2-rot30 config file - - - -
-/*
- ************************************************************************
- *  
- * Java 3D configuration file for a dual-screen desktop configuration
- * with each screen rotated toward the other by 30 degrees about Y from
- * planar.  The inside angle between them is 120 degrees.
- *  
- ************************************************************************
- */
-
-// Create new screen objects and associate them with logical names and numbers.
-// These numbers are used as indices to retrieve the AWT GraphicsDevice from
-// the array that GraphicsEnvironment.getScreenDevices() returns.
-// 
-// NOTE: The GraphicsDevice order in the array is specific to the local
-// site and display system.
-// 
-(NewScreen left  0)
-(NewScreen right 1)
-
-// Set the available image areas for full screens.
-// 
-(ScreenProperty left  PhysicalScreenWidth  0.360)
-(ScreenProperty left  PhysicalScreenHeight 0.288)
-
-(ScreenProperty right PhysicalScreenWidth  0.360)
-(ScreenProperty right PhysicalScreenHeight 0.288)
-
-// Specify full screen windows.
-// 
-(ScreenProperty left  WindowSize NoBorderFullScreen)
-(ScreenProperty right WindowSize NoBorderFullScreen)
-
-// Set the TrackerBaseToImagePlate transforms for these screens.
-// 
-// The tracker base is set here to the middle of the edge shared by the two
-// screens.  Each screen is rotated 30 degrees toward the other about the
-// tracker base +Y axis, so that the tracker base +Z is centered between the
-// two screens.
-//
-(ScreenProperty left  TrackerBaseToImagePlate
-                       (RotateTranslate (Rotate     0.000 -30.000 0.0)
-                                        (Translate  0.360   0.144 0.0)))
-
-(ScreenProperty right TrackerBaseToImagePlate
-                       (RotateTranslate (Rotate     0.000  30.000 0.0)
-		                        (Translate  0.000   0.144 0.0)))
-
-
-// Create a view using the defined screens.
-// 
-(NewView view0)
-(ViewProperty view0 Screen left)
-(ViewProperty view0 Screen right)
-(ViewProperty view0 CenterEyeInCoexistence (0.0 0.0 0.45))
-
- - diff --git a/src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x3-cave-vr.html b/src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x3-cave-vr.html deleted file mode 100644 index 7ad30c4..0000000 --- a/src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x3-cave-vr.html +++ /dev/null @@ -1,243 +0,0 @@ - - - - - j3d1x3-cave-vr config file - - - -
-/*
- ************************************************************************
- *  
- * Java 3D configuration file for a cave environment with head tracking and
- * stereo viewing.  This cave consists of 3 projectors with 3 screens to the
- * left, front, and right of the user, all at 90 degrees to each other.
- * 
- * The projectors in Sun's VirtualPortal sample site are actually turned
- * on their sides to get more height.  Screen 0 is rotated 90 degrees
- * counter-clockwise, while screens 1 and 2 are rotated 90 degrees
- * clockwise.
- * 
- ************************************************************************
- */
-
-// Configure the head tracker.
-// 
-(NewDevice      tracker1 org.jogamp.java3d.input.LogitechTracker)
-(DeviceProperty tracker1 SerialPort "/dev/ttya") // Unix paths need quoting.
-(DeviceProperty tracker1 TransmitterBaseline            0.4600)
-(DeviceProperty tracker1 TransmitterLeftLeg             0.4400)
-(DeviceProperty tracker1 TransmitterCalibrationDistance 0.4120)
-
-// Configure an InputDevice to use for a 6 degree of freedom wand.
-// 
-(NewDevice      tracker2 org.jogamp.java3d.input.LogitechTracker)
-(DeviceProperty tracker2 SerialPort "/dev/ttyb")
-(DeviceProperty tracker2 ReceiverBaseline     0.0700)
-(DeviceProperty tracker2 ReceiverLeftLeg      0.0625)
-(DeviceProperty tracker2 ReceiverHeight       0.0510)
-(DeviceProperty tracker2 ReceiverTopOffset    0.0000)
-
-// Make the tracker2 device a slave of the tracker1 device.
-(DeviceProperty tracker1 Slave (Device tracker2))
-
-// Create logical names for the head tracker and wand sensors.  The last
-// argument is the sensor's index in the input device.
-// 
-(NewSensor head     tracker1 0)
-(NewSensor sensor6d tracker2 0)
-
-// Create new screen objects and associate them with logical names and numbers.
-// These numbers are used as indices to retrieve the AWT GraphicsDevice from
-// the array that GraphicsEnvironment.getScreenDevices() returns.
-// 
-// NOTE: The GraphicsDevice order in the array is specific to the local
-// site and display system.
-// 
-(NewScreen left    0)
-(NewScreen center  1)
-(NewScreen right   2)
-
-
-// Set the available image areas as well as their positition and orientation
-// relative to the tracker base.  From the orientation of a user standing
-// within this VirtualPortal site and facing the center screen, the tracker
-// base is along the vertical midline of the screen, 0.248 meters down from
-// the top edge, and 1.340 meters in front of it.  The tracker base is
-// oriented so that its +X axis points to the left, its +Y axis points toward
-// the screen, and its +Z axis points toward the floor.
-// 
-(ScreenProperty        left    PhysicalScreenWidth     2.480)
-(ScreenProperty        left    PhysicalScreenHeight    1.705)
-(ScreenProperty        left    WindowSize              NoBorderFullScreen)
-(ScreenProperty        left    TrackerBaseToImagePlate
-                                (( 0.0  0.0 -1.0  2.230)
-                                 ( 0.0 -1.0  0.0  1.340)
-                                 (-1.0  0.0  0.0  0.885)))
-
-(ScreenProperty        center  PhysicalScreenWidth     2.485)
-(ScreenProperty        center  PhysicalScreenHeight    1.745)
-(ScreenProperty        center  WindowSize              NoBorderFullScreen)
-(ScreenProperty        center  TrackerBaseToImagePlate
-                                (( 0.0  0.0  1.0  0.248)
-                                 (-1.0  0.0  0.0  0.885)
-                                 ( 0.0 -1.0  0.0  1.340)))
-
-(ScreenProperty        right   PhysicalScreenWidth     2.480)
-(ScreenProperty        right   PhysicalScreenHeight    1.775)
-(ScreenProperty        right   WindowSize              NoBorderFullScreen)
-(ScreenProperty        right   TrackerBaseToImagePlate
-                                (( 0.0  0.0  1.0  0.2488)
-                                 ( 0.0 -1.0  0.0  1.340)
-                                 ( 1.0  0.0  0.0  0.860)))
-
-// Create a physical environment.  This contains the available input devices,
-// audio devices, and sensors, and defines the coexistence coordinate system
-// for mapping between the virtual and physical worlds.
-// 
-(NewPhysicalEnvironment VirtualPortal)
-
-// Register the input device defined in this file and the sensor which will
-// drive head tracking.
-// 
-(PhysicalEnvironmentProperty VirtualPortal InputDevice tracker1)
-(PhysicalEnvironmentProperty VirtualPortal InputDevice tracker2)
-(PhysicalEnvironmentProperty VirtualPortal HeadTracker head)
-
-// Set the location of the center of coexistence relative to the tracker base.
-// Here it set to the center of the center screen.  The default view attach
-// policy of NOMINAL_SCREEN used by ConfiguredUniverse will place the origin of
-// the view platform in coexistence coordinates at the center of coexistence.
-// 
-(PhysicalEnvironmentProperty VirtualPortal
-                             CoexistenceToTrackerBase
-                                ((-1.0  0.0  0.0  0.000)
-                                 ( 0.0  0.0 -1.0  1.340)
-                                 ( 0.0 -1.0  0.0  0.994)))
-
-// Define the physical body.  The head origin is halfway between the eyes, with
-// X extending to the right, Y up, and positive Z extending into the skull.
-// 
-(NewPhysicalBody      LabRat)       
-(PhysicalBodyProperty LabRat StereoEyeSeparation .07)
-
-// Define the position and orientation of the head relative to the tracker
-// mounted on the head.
-// 
-(PhysicalBodyProperty LabRat HeadToHeadTracker 
-                                 ((-1.0  0.0  0.0 0.00)
-                                  ( 0.0  0.0 -1.0 0.05)
-                                  ( 0.0 -1.0  0.0 0.11)))
-
-// Create a view platform behavior for the 6DOF sensor.
-// 
-(NewViewPlatformBehavior vpb org.jogamp.java3d.utils.behaviors.vp.WandViewBehavior)
-
-(ViewPlatformBehaviorProperty vpb Sensor6D sensor6d)
-(ViewPlatformBehaviorProperty vpb ButtonAction6D 2 GrabView)
-(ViewPlatformBehaviorProperty vpb ButtonAction6D 1 TranslateForward)
-(ViewPlatformBehaviorProperty vpb ButtonAction6D 0 TranslateBackward)
-
-// Default normal translation speed is 0.1 physical meters per second.
-(ViewPlatformBehaviorProperty vpb TranslationSpeed
-                              1.0 PhysicalMeters PerSecond)
-
-// Default rotation coordinates are Sensor.
-(ViewPlatformBehaviorProperty vpb RotationCoords Head)
-
-// Nominal sensor transform for modified joystick RedBarron
-(SensorProperty sensor6d Hotspot (0.00 0.6 0.00))
-(ViewPlatformBehaviorProperty vpb NominalSensorRotation
-                                  ((-1.0  0.0  0.0)
-                                   ( 0.0  0.0 -1.0)
-                                   ( 0.0 -1.0  0.0)))
-
-// Default 6DOF sensor echo is Gnomon
-(ViewPlatformBehaviorProperty vpb EchoSize 0.015) 
-(ViewPlatformBehaviorProperty vpb EchoType Beam) 
-
-// Default 6DOF sensor echo color is white
-(ViewPlatformBehaviorProperty vpb EchoColor 1.0 0.7 0.0)
-
-// Default 6DOF sensor transparency is 0.0 (opaque)
-(ViewPlatformBehaviorProperty vpb EchoTransparency 0.4)
-
-// Create a new view platform and set the view platform behavior.
-// 
-(NewViewPlatform vp)
-(ViewPlatformProperty vp ViewPlatformBehavior vpb)
-
-// Now define the view.
-// 
-(NewView       view0)
-(ViewProperty  view0   Screen                  left)
-(ViewProperty  view0   Screen                  center)
-(ViewProperty  view0   Screen                  right)
-(ViewProperty  view0   PhysicalBody            LabRat)
-(ViewProperty  view0   PhysicalEnvironment     VirtualPortal)
-(ViewProperty  view0   ViewPlatform            vp)
-
-// Set the screen scale.  This is scale factor from virtual to physical
-// coordinates.
-// 
-(ViewProperty  view0   ScreenScalePolicy       SCALE_SCREEN_SIZE)
-
-// Alternative for explict scaling.
-// 
-//(ViewProperty  view0   ScreenScalePolicy       SCALE_EXPLICIT)
-//(ViewProperty  view0   ScreenScale             5.00)
-
-// Enable stereo viewing.  Enable head tracking to get the position of the eyes
-// with respect to coexistence.  Boolean values may be specified as either
-// true, True, false, or False.
-// 
-(ViewProperty    view0   StereoEnable            true)
-(ViewProperty    view0   TrackingEnable          True)
-
- - diff --git a/src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x3-cave.html b/src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x3-cave.html deleted file mode 100644 index 9b0298b..0000000 --- a/src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x3-cave.html +++ /dev/null @@ -1,156 +0,0 @@ - - - - - j3d1x3-cave config file - - - -
-/*
- ************************************************************************
- *  
- * Java 3D configuration file for a cave environment.  This cave
- * consists of 3 projectors with 3 screens to the left, front, and right
- * of the user, all at 90 degrees to each other.
- * 
- * The projectors in the VirtualPortal sample site are actually turned
- * on their sides to get more height.  Screen 0 is rotated 90 degrees
- * counter-clockwise, while screens 1 and 2 are rotated 90 degrees
- * clockwise.
- * 
- ************************************************************************
- */
-
-// Create new screen objects and associate them with logical names and numbers.
-// These numbers are used as indices to retrieve the AWT GraphicsDevice from
-// the array that GraphicsEnvironment.getScreenDevices() returns.
-// 
-// NOTE: The GraphicsDevice order in the array is specific to the local
-// site and display system.
-// 
-(NewScreen              left    0)
-(NewScreen              center  1)
-(NewScreen              right   2)
-
-
-// Set the available image areas as well as their positition and orientation
-// relative to the tracker base.   Although this config file doesn't enable
-// head tracking, the tracker base is still needed as a point of reference to
-// describe the position and orientation of the screens relative to the
-// environment. 
-// 
-// From the orientation of a user standing within this VirtualPortal site and
-// facing the center screen, the tracker base is along the vertical midline of
-// the screen, 0.248 meters down from the top edge, and 1.340 meters in front
-// of it.  The tracker base is oriented so that its +X axis points to the left,
-// its +Y axis points toward the screen, and its +Z axis points toward the
-// floor.
-// 
-(ScreenProperty        left    PhysicalScreenWidth     2.480)
-(ScreenProperty        left    PhysicalScreenHeight    1.705)
-(ScreenProperty        left    WindowSize              NoBorderFullScreen)
-(ScreenProperty        left    TrackerBaseToImagePlate
-                                (( 0.0  0.0 -1.0  2.230)
-                                 ( 0.0 -1.0  0.0  1.340)
-                                 (-1.0  0.0  0.0  0.885)))
-
-(ScreenProperty        center  PhysicalScreenWidth     2.485)
-(ScreenProperty        center  PhysicalScreenHeight    1.745)
-(ScreenProperty        center  WindowSize              NoBorderFullScreen)
-(ScreenProperty        center  TrackerBaseToImagePlate
-                                (( 0.0  0.0  1.0  0.248)
-                                 (-1.0  0.0  0.0  0.885)
-                                 ( 0.0 -1.0  0.0  1.340)))
-
-(ScreenProperty        right   PhysicalScreenWidth     2.480)
-(ScreenProperty        right   PhysicalScreenHeight    1.775)
-(ScreenProperty        right   WindowSize              NoBorderFullScreen)
-(ScreenProperty        right   TrackerBaseToImagePlate
-                                (( 0.0  0.0  1.0  0.2488)
-                                 ( 0.0 -1.0  0.0  1.340)
-                                 ( 1.0  0.0  0.0  0.860)))
-
-// Set the location of the center of coexistence relative to the tracker base.
-// Here it set to the center of the center screen.  This config file will set
-// the location of the user's eyes relative to this point.  The default view
-// attach policy of NOMINAL_SCREEN used by ConfiguredUniverse will place the
-// origin of the view platform in coexistence coordinates at the center of
-// coexistence. 
-// 
-(NewPhysicalEnvironment      VirtualPortal)
-(PhysicalEnvironmentProperty VirtualPortal
-                             CoexistenceToTrackerBase
-                                ((-1.0  0.0  0.0  0.000)
-                                 ( 0.0  0.0 -1.0  1.340)
-                                 ( 0.0 -1.0  0.0  0.994)))
-
-// Now define the view.
-// 
-(NewView       view0)
-(ViewProperty  view0   Screen                  left)
-(ViewProperty  view0   Screen                  center)
-(ViewProperty  view0   Screen                  right)
-(ViewProperty  view0   PhysicalEnvironment     VirtualPortal)
-
-// Set the user eye position in the display environment.  It is set here to
-// 1.340 meters back from the center screen (directly under the tracker), and
-// 1.737 meters from the floor (about 5 ft 8.4 inches).
-//
-(ViewProperty  view0   CenterEyeInCoexistence  (0.0 0.494 1.340))
-
-// Explict scaling.
-// 
-(ViewProperty  view0   ScreenScalePolicy       SCALE_EXPLICIT)
-(ViewProperty  view0   ScreenScale             0.30)
-
-// No stereo viewing for this configuration.
-// 
-(ViewProperty  view0   StereoEnable            False)
-
- - diff --git a/src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x3-rot45.html b/src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x3-rot45.html deleted file mode 100644 index 927dbd8..0000000 --- a/src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d1x3-rot45.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - j3d1x3-rot45 config file - - - -
-/*
- ************************************************************************
- *  
- * Java 3D configuration file for 3 screens.  Left and right screens are
- * rotated 45 degrees from the center screen.
- *  
- ************************************************************************
- */
-
-// Create new screen objects and associate them with logical names and numbers.
-// These numbers are used as indices to retrieve the AWT GraphicsDevice from
-// the array that GraphicsEnvironment.getScreenDevices() returns.
-// 
-// NOTE: The GraphicsDevice order in the array is specific to the local
-// site and display system.
-// 
-(NewScreen left   0)
-(NewScreen center 1)
-(NewScreen right  2)
-
-// Set the available image areas for full screens.  
-// 
-(ScreenProperty left   PhysicalScreenWidth  0.360)
-(ScreenProperty left   PhysicalScreenHeight 0.288)
-
-(ScreenProperty center PhysicalScreenWidth  0.360)
-(ScreenProperty center PhysicalScreenHeight 0.288)
-
-(ScreenProperty right  PhysicalScreenWidth  0.360)
-(ScreenProperty right  PhysicalScreenHeight 0.288)
-
-// Specify full screen windows.
-// 
-(ScreenProperty left   WindowSize NoBorderFullScreen)
-(ScreenProperty center WindowSize NoBorderFullScreen)
-(ScreenProperty right  WindowSize NoBorderFullScreen)
-
-// Set the TrackerBaseToImagePlate transforms for these screens.
-// 
-// The tracker base and center of coexistence are set here to the middle of the
-// center screen. The basis vectors are aligned with the center screen image
-// plate.  The left and right screens are rotated 45 degrees toward each other
-// about their shared edges with the center screen.
-//
-(ScreenProperty center TrackerBaseToImagePlate
-                        (Translate 0.180000    0.144000 0.000000))
-
-// cos(45) * 0.360 * 0.5 = 0.127279; 0.360 + 0.127279 = 0.487279
-(ScreenProperty left  TrackerBaseToImagePlate
-                       (RotateTranslate
-		        (Rotate     0.000000 -45.000000 0.000000)
-                        (Translate  0.487279   0.144000 0.127279)))
-
-// cos(45) * 0.360 * 0.5 = 0.127279
-(ScreenProperty right TrackerBaseToImagePlate
-                       (RotateTranslate
-		        (Rotate     0.000000  45.000000 0.000000)
-                        (Translate -0.127279   0.144000 0.127279)))
-
-// Create a view using the defined screens.
-// 
-(NewView      view0)
-(ViewProperty view0 Screen left)
-(ViewProperty view0 Screen center)
-(ViewProperty view0 Screen right)
-(ViewProperty view0 CenterEyeInCoexistence (0.0 0.0 0.5))
-
- - diff --git a/src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d2x2-flat.html b/src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d2x2-flat.html deleted file mode 100644 index af6f62f..0000000 --- a/src/main/java/org/jogamp/java3d/utils/universe/doc-files/j3d2x2-flat.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - - j3d2x2-flat config file - - - -
-/*
- ************************************************************************
- *  
- * Java 3D configuration file for 4 screen projection configuration
- * arranged in a 2x2 power wall.
- *  
- ************************************************************************
- */
-
-// Create new screen objects and associate them with logical names and numbers.
-// These numbers are used as indices to retrieve the AWT GraphicsDevice from
-// the array that GraphicsEnvironment.getScreenDevices() returns.
-// 
-// NOTE: The GraphicsDevice order in the array is specific to the local
-// site and display system.
-// 
-(NewScreen topleft     0)
-(NewScreen topright    1)
-(NewScreen bottomleft  3)
-(NewScreen bottomright 2)
-
-// Set the available image areas for full screens.  This is important when
-// precise scaling between objects in the virtual world and their projections
-// into the physical world is desired through use of explicit ScreenScale view
-// attributes.  The defaults are 0.365 meters for width and 0.292 meters for
-// height.
-// 
-(ScreenProperty topleft     PhysicalScreenWidth  0.912)
-(ScreenProperty topleft     PhysicalScreenHeight 0.680)
-
-(ScreenProperty topright    PhysicalScreenWidth  0.912)
-(ScreenProperty topright    PhysicalScreenHeight 0.680)
-
-(ScreenProperty bottomleft  PhysicalScreenWidth  0.912)
-(ScreenProperty bottomleft  PhysicalScreenHeight 0.685)
-
-(ScreenProperty bottomright PhysicalScreenWidth  0.912)
-(ScreenProperty bottomright PhysicalScreenHeight 0.685)
-
-
-// Specify full screen windows.
-//
-(ScreenProperty topleft     WindowSize NoBorderFullScreen)
-(ScreenProperty topright    WindowSize NoBorderFullScreen)
-(ScreenProperty bottomleft  WindowSize NoBorderFullScreen)
-(ScreenProperty bottomright WindowSize NoBorderFullScreen)
-
-// Set the TrackerBaseToImagePlate transforms for these screens.  This
-// transforms points in tracker base coordinates to each screen's image plate
-// coordinates, where the origin of the image plate is defined to be the lower
-// left corner of the screen with X increasing to the right, Y increasing to
-// the top, and Z increasing away from the screen.
-//
-// Without head or sensor tracking the tracker base is still needed as a point
-// of reference for describing the orientation and position of each screen to
-// the others.  The coexistence to tracker base transform is set to identity by
-// default, so the tracker base origin and orientation will also set the origin
-// and orientation of coexistence coordinates in the physical world.
-//
-// The tracker base and center of coexistence are set here to the center of the
-// 2x2 array with its basis vectors aligned to image plate coordinates.
-//
-(ScreenProperty topleft     TrackerBaseToImagePlate
-                             (Translate 0.912 0.000 0.0))
-(ScreenProperty topright    TrackerBaseToImagePlate
-                             (Translate 0.000 0.000 0.0))
-(ScreenProperty bottomleft  TrackerBaseToImagePlate
-                             (Translate 0.912 0.685 0.0))
-(ScreenProperty bottomright TrackerBaseToImagePlate
-                             (Translate 0.000 0.685 0.0))
-
-// Create a view using the defined screens.
-// 
-(NewView      view0)
-(ViewProperty view0 Screen  topleft)
-(ViewProperty view0 Screen  topright)
-(ViewProperty view0 Screen  bottomleft)
-(ViewProperty view0 Screen  bottomright)
-
-// Set the screen scale.  This is scale factor from virtual to physical
-// coordinates.  The default policy of SCALE_SCREEN_SIZE doesn't work well here
-// since in the 2x2 arrangement the individual screens are too small.  The
-// explicit scale factor below assumes a normalized range of object coordinates
-// of [-1.0 .. +1.0].
-// 
-(ViewProperty view0 ScreenScalePolicy       SCALE_EXPLICIT)
-(ViewProperty view0 ScreenScale             0.912)
-
-// Set the user eye position in the display environment.
-//
-(ViewProperty view0 CenterEyeInCoexistence  (0.0 0.0 1.0))
-
- - diff --git a/src/main/java/org/jogamp/java3d/utils/universe/package.html b/src/main/java/org/jogamp/java3d/utils/universe/package.html deleted file mode 100644 index 06c31db..0000000 --- a/src/main/java/org/jogamp/java3d/utils/universe/package.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - org.jogamp.java3d.utils.universe - - -

Provides utility classes for setting up the Java 3D universe, -including the viewing configuration.

- - diff --git a/src/main/javadoc/org/jogamp/java3d/audioengines/javasound/package.html b/src/main/javadoc/org/jogamp/java3d/audioengines/javasound/package.html new file mode 100644 index 0000000..05122f4 --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/audioengines/javasound/package.html @@ -0,0 +1,11 @@ + + + + + org.jogamp.java3d.audioengines.javasound + + +

Provides a JavaSound-based implementation of a Java 3D audio device.

+ + diff --git a/src/main/javadoc/org/jogamp/java3d/audioengines/package.html b/src/main/javadoc/org/jogamp/java3d/audioengines/package.html new file mode 100644 index 0000000..4ad0001 --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/audioengines/package.html @@ -0,0 +1,11 @@ + + + + + org.jogamp.java3d.audioengines + + +

Provides abstract classes for creating Java 3D audio devices.

+ + diff --git a/src/main/javadoc/org/jogamp/java3d/exp/swing/package.html b/src/main/javadoc/org/jogamp/java3d/exp/swing/package.html new file mode 100644 index 0000000..8b1db83 --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/exp/swing/package.html @@ -0,0 +1,13 @@ + + + + + org.jogamp.java3d.exp.swing + + +

EXPERIMENTAL: Provides a lightweight JCanvas3D class. +Note that the API in this package is highly experimental and +subject to change at any time.

+ + diff --git a/src/main/javadoc/org/jogamp/java3d/loaders/lw3d/package.html b/src/main/javadoc/org/jogamp/java3d/loaders/lw3d/package.html new file mode 100644 index 0000000..241bf5b --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/loaders/lw3d/package.html @@ -0,0 +1,11 @@ + + + + + org.jogamp.java3d.loaders.lw3d + + +

Provides a Java 3D loader for Lightwave 3D scene files.

+ + diff --git a/src/main/javadoc/org/jogamp/java3d/loaders/objectfile/package.html b/src/main/javadoc/org/jogamp/java3d/loaders/objectfile/package.html new file mode 100644 index 0000000..9930bb7 --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/loaders/objectfile/package.html @@ -0,0 +1,11 @@ + + + + + org.jogamp.java3d.loaders.objectfile + + +

Provides a Java 3D loader for Wavefront .obj files.

+ + diff --git a/src/main/javadoc/org/jogamp/java3d/loaders/package.html b/src/main/javadoc/org/jogamp/java3d/loaders/package.html new file mode 100644 index 0000000..c7a9f12 --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/loaders/package.html @@ -0,0 +1,11 @@ + + + + + org.jogamp.java3d.loaders + + +

Provides interfaces and abstract classes for writing Java 3D loaders.

+ + diff --git a/src/main/javadoc/org/jogamp/java3d/utils/applet/package.html b/src/main/javadoc/org/jogamp/java3d/utils/applet/package.html new file mode 100644 index 0000000..17fd1b1 --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/utils/applet/package.html @@ -0,0 +1,12 @@ + + + + + org.jogamp.java3d.utils.applet + + +

Provides utility classes for running applets as stand-alone +applications.

+ + diff --git a/src/main/javadoc/org/jogamp/java3d/utils/audio/package.html b/src/main/javadoc/org/jogamp/java3d/utils/audio/package.html new file mode 100644 index 0000000..ecb71e8 --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/utils/audio/package.html @@ -0,0 +1,11 @@ + + + + + org.jogamp.java3d.utils.audio + + +

Provides audio utility classes.

+ + diff --git a/src/main/javadoc/org/jogamp/java3d/utils/behaviors/interpolators/package.html b/src/main/javadoc/org/jogamp/java3d/utils/behaviors/interpolators/package.html new file mode 100644 index 0000000..19ef214 --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/utils/behaviors/interpolators/package.html @@ -0,0 +1,11 @@ + + + + + org.jogamp.java3d.utils.behaviors.interpolators + + +

Provides spline-based interpolation behaviors.

+ + diff --git a/src/main/javadoc/org/jogamp/java3d/utils/behaviors/keyboard/package.html b/src/main/javadoc/org/jogamp/java3d/utils/behaviors/keyboard/package.html new file mode 100644 index 0000000..efe76d5 --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/utils/behaviors/keyboard/package.html @@ -0,0 +1,11 @@ + + + + + org.jogamp.java3d.utils.behaviors.keyboard + + +

Provides keyboard navigation utility classes.

+ + diff --git a/src/main/javadoc/org/jogamp/java3d/utils/behaviors/mouse/package.html b/src/main/javadoc/org/jogamp/java3d/utils/behaviors/mouse/package.html new file mode 100644 index 0000000..6eb2142 --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/utils/behaviors/mouse/package.html @@ -0,0 +1,11 @@ + + + + + org.jogamp.java3d.utils.behaviors.mouse + + +

Provides mouse navigation utility classes.

+ + diff --git a/src/main/javadoc/org/jogamp/java3d/utils/behaviors/picking/package.html b/src/main/javadoc/org/jogamp/java3d/utils/behaviors/picking/package.html new file mode 100644 index 0000000..66a7fd0 --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/utils/behaviors/picking/package.html @@ -0,0 +1,13 @@ + + + + + org.jogamp.java3d.utils.behaviors.picking + + +

Deprecated: Use org.jogamp.java3d.utils.pickfast.behaviors +instead.

+ + diff --git a/src/main/javadoc/org/jogamp/java3d/utils/behaviors/sensor/package.html b/src/main/javadoc/org/jogamp/java3d/utils/behaviors/sensor/package.html new file mode 100644 index 0000000..754890d --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/utils/behaviors/sensor/package.html @@ -0,0 +1,11 @@ + + + + + org.jogamp.java3d.utils.behaviors.sensor + + +

Provides 6DOF sensor behavior classes.

+ + diff --git a/src/main/javadoc/org/jogamp/java3d/utils/behaviors/vp/package.html b/src/main/javadoc/org/jogamp/java3d/utils/behaviors/vp/package.html new file mode 100644 index 0000000..81534d3 --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/utils/behaviors/vp/package.html @@ -0,0 +1,11 @@ + + + + + org.jogamp.java3d.utils.behaviors.vp + + +

Provides ViewPlatform navigation utility classes.

+ + diff --git a/src/main/javadoc/org/jogamp/java3d/utils/compression/package.html b/src/main/javadoc/org/jogamp/java3d/utils/compression/package.html new file mode 100644 index 0000000..639ad1a --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/utils/compression/package.html @@ -0,0 +1,13 @@ + + + + + org.jogamp.java3d.utils.compression + + +

Deprecated: Use org.jogamp.java3d.utils.geometry.compression +instead.

+ + diff --git a/src/main/javadoc/org/jogamp/java3d/utils/geometry/compression/package.html b/src/main/javadoc/org/jogamp/java3d/utils/geometry/compression/package.html new file mode 100644 index 0000000..948d235 --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/utils/geometry/compression/package.html @@ -0,0 +1,13 @@ + + + + + org.jogamp.java3d.utils.geometry.compression + + +

Provides compressed geometry utility classes. + This package supersedes the org.jogamp.java3d.CompressedGeometry class and + the org.jogamp.java3d.utils.compression package.

+ + diff --git a/src/main/javadoc/org/jogamp/java3d/utils/geometry/package.html b/src/main/javadoc/org/jogamp/java3d/utils/geometry/package.html new file mode 100644 index 0000000..271424e --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/utils/geometry/package.html @@ -0,0 +1,12 @@ + + + + + org.jogamp.java3d.utils.geometry + + +

Provides geometry construction, triangulation, and optimization +utility classes.

+ + diff --git a/src/main/javadoc/org/jogamp/java3d/utils/image/package.html b/src/main/javadoc/org/jogamp/java3d/utils/image/package.html new file mode 100644 index 0000000..27b3560 --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/utils/image/package.html @@ -0,0 +1,11 @@ + + + + + org.jogamp.java3d.utils.image + + +

Provides texture image utility classes.

+ + diff --git a/src/main/javadoc/org/jogamp/java3d/utils/pickfast/behaviors/package.html b/src/main/javadoc/org/jogamp/java3d/utils/pickfast/behaviors/package.html new file mode 100644 index 0000000..e814f82 --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/utils/pickfast/behaviors/package.html @@ -0,0 +1,11 @@ + + + + + org.jogamp.java3d.utils.pickfast.behaviors + + +

Provides picking behaviors for the new core picking methods.

+ + diff --git a/src/main/javadoc/org/jogamp/java3d/utils/pickfast/package.html b/src/main/javadoc/org/jogamp/java3d/utils/pickfast/package.html new file mode 100644 index 0000000..044927f --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/utils/pickfast/package.html @@ -0,0 +1,11 @@ + + + + + org.jogamp.java3d.utils.pickfast + + +

Provides picking utility classes for the new core picking methods.

+ + diff --git a/src/main/javadoc/org/jogamp/java3d/utils/picking/behaviors/package.html b/src/main/javadoc/org/jogamp/java3d/utils/picking/behaviors/package.html new file mode 100644 index 0000000..32ba40f --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/utils/picking/behaviors/package.html @@ -0,0 +1,12 @@ + + + + + org.jogamp.java3d.utils.picking.behaviors + + +

OBSOLETE: provides picking behaviors for the old picking +methods.

+ + diff --git a/src/main/javadoc/org/jogamp/java3d/utils/picking/package.html b/src/main/javadoc/org/jogamp/java3d/utils/picking/package.html new file mode 100644 index 0000000..1571e03 --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/utils/picking/package.html @@ -0,0 +1,12 @@ + + + + + org.jogamp.java3d.utils.picking + + +

OBSOLETE: provides picking utility classes for the old +picking methods.

+ + diff --git a/src/main/javadoc/org/jogamp/java3d/utils/scenegraph/io/doc-files/extensibility.html b/src/main/javadoc/org/jogamp/java3d/utils/scenegraph/io/doc-files/extensibility.html new file mode 100644 index 0000000..d77e9bd --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/utils/scenegraph/io/doc-files/extensibility.html @@ -0,0 +1,189 @@ + + + + + + + + Java 3D scenegraph.io Extensibility + + +

+Using your own Classes with scenegraph.io +

+

The scenegraph.io APIs will handle the IO for all the core Java3D +SceneGraphObjects. However, if you create a subclass of one of these +objects and add it to your Scene Graph, the IO system, by default, +will not store any state information specific to your class.

+

The default behavior when an unrecognized SceneGraphObject class +is encountered is to traverse up the superclasses of the object until +a recognized Java3D class is located. The data structures for this +class are then used for IO. The system does store the class name of +the original object. +

For example: +


+public class MyBranchGroup extends org.jogamp.java3d.BranchGroup {
+    private int myData;
+    ....
+}
+
+

When the Scene Graph is written to a file and this node is +encountered, the superclass org.jogamp.java3d.BranchGroup will be used +to store all the state for the object so any children of +MyBranchGroup, the capabilities, etc. will be stored, but myData will +be lost. When the scene graph is loaded, MyBranchGroup will be +instantiated and will be populated with all the state from +BranchGroup but myData will have been lost.

+

To overcome this, the scenegraph.io API provides an interface for +you to implement in your own classes that provides the opportunity +for you to save the state of your classes during the IO processes. +This is the SceneGraphIO interface.

+

When the scenegraph is saved, the methods of SceneGraphIO are +called in this order +

+
    +
  1. createSceneGraphObjectReferences

    +
  2. saveChildren

    +
  3. writeSceneGraphObject

    +
+

During the load cycle the method call order is

+
    +
  1. Instantiate Object using default constructor

    +
  2. Populate object with state from superclasses

    +
  3. readSceneGraphObject

    +
  4. restoreSceneGraphObjectReferences

    +
+

Within each method you need to perform the following actions: +

+

Here are some examples. Only the parts of the source pertaining to +IO are show....

+

Behavior Example

+
+public class BehaviorIO extends org.jogamp.java3d.Behavior implements SceneGraphIO + private TransformGroup target; // The TG on which this behavior acts + private int targetRef; // Object Reference for target + + public void createSceneGraphObjectReferences( SceneGraphObjectReferenceControl ref ) { + targetRef = ref.addReference( target ); + } + + public void restoreSceneGraphObjectReferences( SceneGraphObjectReferenceControl ref ) { + target = (TransformGroup)ref.resolveReference( targetRef ); + } + + public void writeSceneGraphObject( java.io.DataOutput out ) throws IOException { + out.writeInt( targetRef ); + } + + public void readSceneGraphObject( java.io.DataInput in ) throws IOException { + targetRef = in.readInt(); + } + + // This has no effect as this is not a subclass of Group + public boolean saveChildren() { + return true; + } +
+

+`BlackBox' Group Example +

+This example is a Group node that creates its subgraph during +its instantiation. An example where you might use this is to +represent some geometry that is loaded from an external file format +such a OpenFLT. +

+public class House extends Group implements SceneGraphIO {
+    public House() {
+        super();
+        this.addChild( OpenFlightLoader.load( "/dir/house.flt" );
+    }
+
+    public void createSceneGraphObjectReferences( SceneGraphObjectReferenceControl ref ) {
+        // No references
+    }
+
+    public void restoreSceneGraphObjectReferences( SceneGraphObjectReferenceControl ref ) {
+        // No references
+    }
+
+    public void writeSceneGraphObject( java.io.DataOutput out ) throws IOException {
+        // No local state
+    }
+
+    public void readSceneGraphObject( java.io.DataInput in ) throws IOException {
+        // No local state
+    }
+
+    public boolean saveChildren() {
+        // Don't save the children as they will be restored by the openflightloader
+        return false;
+    }
+
+ + diff --git a/src/main/javadoc/org/jogamp/java3d/utils/scenegraph/io/package.html b/src/main/javadoc/org/jogamp/java3d/utils/scenegraph/io/package.html new file mode 100644 index 0000000..73e795c --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/utils/scenegraph/io/package.html @@ -0,0 +1,105 @@ + + + + + + + + + + +

This package provides a Java3D SceneGraph IO capability. +The API supports IO of a scenegraph to and from a Java Stream and/or +RandomAccessFile. The features offered for these two io systems are +somewhat different.

+

The SceneGraphFileReader and SceneGraphFileWriter classes provide +IO to and from a RandomAccessFile. They allow a universe and/or +multiple BranchGraphs to be written to the file with Node's and +NodeComponent's shared between the separate graphs. The graphs can be +read in any order.

+

SceneGraphStreamReader and SceneGraphStreamWriter classes provide +IO to and from a Stream. These classes allow a universe and/or +multiple BranchGraphs to be passed over stream. In contrast to the +FileReader/Writer sharing of Node's is NOT supported between graphs +by the API. Sharing of node components is supported. If your +application requires references to Nodes in other graphs (such as +SharedGroups) the application must handle the references using the +namedObjects constructs.

+

Note : If you use SceneGraphStreamWriter class to write to a +FileOutputStream the resulting file cannot be read using the +SceneGraphFileReader, the converse is also true, you can not use a +FileInputStream to load a file written by SceneGraphFileWriter. +

+The package supports the IO of all the Java3D 1.3 core classes +and many of the utilities. It also includes interfaces which can be +implemented to allow user defined subclasses of SceneGraphObjects to +be stored. Information on the extensibility can be found +here +

+The package has a number of properties which can be used to control the IO +behavior

+ +

+j3d.io.UseSuperClassIfNoChildClass when this property is present the load +operation will attempt to avoid failure if Scene Graph nodes are not present +in the classpath. For example if a developer has subclassed BranchGroup with a +class called MyBG but has not +implemented the SceneGraphIO interface when the API saves the graph the +superclass (ie BranchGroup) data will be stored. When the scene is loaded +normally MyBG must be in the classpath otherwise the load will fail. If this +property is set then the superclass node (ie BranchGroup) will be instantiated +when MyBG is missing. Obviously, if MyBG contained any state information +then this will be lost.

+ +j3d.io.ImageCompression this can be set to None, GZIP, JPEG and tells the +IO system to compress images in the .j3f file using the prescribed technique. In +the future this will be extended to support all the formats available in +javax.imageio in JDK 1.4. +

+

+ + diff --git a/src/main/javadoc/org/jogamp/java3d/utils/scenegraph/transparency/package.html b/src/main/javadoc/org/jogamp/java3d/utils/scenegraph/transparency/package.html new file mode 100644 index 0000000..c7669ec --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/utils/scenegraph/transparency/package.html @@ -0,0 +1,11 @@ + + + + + org.jogamp.java3d.utils.scenegraph.transparency + + +

Provides transparency sorting utility classes.

+ + diff --git a/src/main/javadoc/org/jogamp/java3d/utils/shader/package.html b/src/main/javadoc/org/jogamp/java3d/utils/shader/package.html new file mode 100644 index 0000000..fe01b81 --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/utils/shader/package.html @@ -0,0 +1,11 @@ + + + + + org.jogamp.java3d.utils.shader + + +

Provides shader utility classes.

+ + diff --git a/src/main/javadoc/org/jogamp/java3d/utils/timer/package.html b/src/main/javadoc/org/jogamp/java3d/utils/timer/package.html new file mode 100644 index 0000000..a3af6aa --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/utils/timer/package.html @@ -0,0 +1,11 @@ + + + + + org.jogamp.java3d.utils.timer + + +

Deprecated: Use java.lang.System.nanoTime() instead.

+ + diff --git a/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/config-examples.html b/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/config-examples.html new file mode 100644 index 0000000..bab913b --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/config-examples.html @@ -0,0 +1,85 @@ + + + + + + + + + + +  +

+Example Configuration Files

+ +


j3d1x1  A single fullscreen +desktop configuration. +

j3d1x1-behavior  A single +fullscreen desktop configuration with a configurable view platform behavior. +

j3d1x1-stereo  A single +fullscreen desktop configuration with stereo viewing. +

j3d1x1-vr  A single fullscreen +desktop configuration with head tracker, stereo viewing, and 6 degree of +freedom mouse. +

j3d1x1-window  A single screen +desktop configuration with a conventional window. +

j3d1x2-flat  A dual-screen planar +desktop configuration. +

j3d1x2-rot30  A dual-screen +desktop configuration with each screen rotated toward the other by 30 degrees. +

j3d1x3-cave  A three-projector cave +configuration. +

j3d1x3-cave-vr  A +three-projector cave configuration with head tracking and stereo viewing. +

j3d1x3-rot45  A three-screen +desktop configuration with left and right screens rotated 45 degrees from the +center screen. +

j3d2x2-flat  A four-projector +configuration arranged in a 2x2 array. +
  + + diff --git a/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/config-syntax.html b/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/config-syntax.html new file mode 100644 index 0000000..e725146 --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/config-syntax.html @@ -0,0 +1,1973 @@ + + + + + + + The Java 3D Configuration File + + + + + + + + + + +
+The Java 3D Configuration File
+
+ +Syntax Description
+Command Overview
+ + Overview of Relevant View Model Parameters
+Top-Level Command Details
+Built-In Command Details
+Command Index
+Property Index
+ +

+This document is an informal description of the syntax of the Java 3D +configuration file and a tutorial of the semantics of its various commands. +Such a file is written by a user or site administrator to describe the physical +configuration of a local interactive viewing environment. Configuration +properties that can be described in the file include the sizes, positions, and +orientations of displays in either fixed screen environments or head mounted +displays (HMD devices), as well as the input devices and sensors +available for user interaction apart from the keyboard and mouse abstractions +provided by the AWT.

+

+A configuration file is used by passing its URL to either a ConfigContainer or +a ConfiguredUniverse constructor. The method by which a user specifies the +file is up to the application, but the universe utilities do provide a few +means to easily enable an application to perform this task. These depend upon +a Java 3D property, j3d.configURL, that the user can set on the java +command line with the -D option. Its value should be a URL string +indicating the location of the desired file. The application can then either +call the static ConfigContainer methods +getConfigURL +to retrieve the value of the property, or + +getConfigURL(String) to specify a default file to be used in case the +property is not set. Applications are encouraged to devise their own +user-friendly mechanisms to retrieve the configuration file, although the +setting of the j3d.configURL property should be honored if at all +possible.

+

+If the attempt to open the resource indicated by the URL is successful, then a +parser will be invoked to read and evaluate the commands it contains and +deposit the results in the ConfigContainer. The parser will detect syntax +errors, invalid commands, and bad references, printing descriptive messages to +System.out, including the line number and text of the offending command. In +general the parser attempts to continue processing as much of the file as it +can when encountering an error. Some errors can only be detected after the +entire file has been evaluated; in those cases an exception will be thrown.

+

+An application may choose to override the settings of the configuration file by +accessing view-side scenegraph components directly from the ConfigContainer +once the file is evaluated. Applications should avoid this in general, as most +settings are physical calibration constants specific to the local interactive +viewing environment. Nonetheless, application overrides are still sometimes +appropriate; for example, the application may have knowledge of the contents of +the scenegraph that enables it to make a better judgement of where the view's +clipping planes should be.

+
+ + + + + + +
+Syntax Description
+

+The configuration file syntax is very simple; scanning any of the +sample configuration files should provide +the general idea. At the broadest level there are two main types of +constructs: comments and commands.

+

+Comments can be either C or C++ style. In a C-style +comment all text between successive occurances of /* and */ is ignored. +A C++ comment begins with // and continues to the end of the line.

+

+A command begins with an opening parenthesis and ends with a closing +parenthesis. The elements between the parentheses can be of four types: +alphanumeric strings, numbers, quoted strings, or other commands. During the +evaluation of a command, any nested command encountered is itself evaluated, +and the result of that evaluation replaces the nested command within the +original outer command.

+

+Strings that contain embedded white space, forward slashes, or invalid +tokens must be enclosed in quotes (either single or double). Common cases are +URL strings and Unix path names. Numbers are any non-quoted strings that can +be parsed as double-precision floating point numbers. The strings true, +True, false, and False are converted to their corresponding boolean +values. Strings, quoted strings, and numbers are delimited from each other by +white space.

+

+Commands in the configuration file have four special forms: point, +matrix, top-level, and built-in commands.

+ +
+

+Points

+ +A command that consists entirely of two, three, or four numbers is a 2D point, +a 3D point, or a 4D point respectively. Any other command that starts with a +number is a syntax error. +

+Don't pass 2D, 3D, or 4D points to commands that expect two, three, or four +numbers instead. This will generate a syntax error indicating an invalid +number of arguments.

+ +

+Matrices

+ +A 3D matrix is a command that consists entirely of three 3D points. A 4D +matrix consists entirely of either three or four 4D points; if there are only +three 4D points then the fourth is implicitly considered to be (0.0 0.0 0.0 +1.0). The points define the row elements of each type of matrix. Any other +command that starts with a point is a syntax error. + +

+Top-level and built-in commands

+ +All other commands start with an alphanumeric string, the command name +which identifies it. The remaining elements of the command are its arguments. +

+Command names can either specify top-level or built-in commands. Top-level +commands generally configure Java 3D core and utility classes and can only +appear at the outermost level of parentheses. Built-in commands are provided +by the parser itself to help construct the arguments to top-level commands. +Points, matrices, and built-in commands can only be nested within other +commands.

+

+An error will result if points, matrices, or built-in commands are invoked at +the outermost level of nesting. Sometimes this error is caused by prematurely +closing the opening parenthesis of the current top-level command. Such an +error is usually preceded by an error from the command indicating an invalid +number of arguments.

+

+Similarly, errors will be generated if top-level commands are nested. Errors +to this effect are sometimes caused by failing to close all the open +parentheses of the preceding top-level command.

+
+ +

+Java property substitution syntax

+ +All strings are additionally scanned for text enclosed by a starting ${ and a +matching }. Such text is looked up as a Java system property name and the +result is substituted back into the string after eliding the starting and +ending delimiters. For example, the command: +

+(Include "file:${user.home}/myBody.cfg")

+

+would evaluate the contents of the file "myBody.cfg" in the user's home +directory on Unix systems. An error is issued if no Java property exists with +the specified name.

+

+Java property substitution happens early, after tokenization but before command +evaluation. Substitution can occur any number of times anywhere within any +quoted or non-quoted string, including command names, property names, and +property values, as long as the property substitution syntax is not nested.

+
+ + + + + + +
+Command Overview
+

+Most top-level commands configure concrete Java 3D core and utility classes. +These include PhysicalBody, PhysicalEnvironment, Screen, Sensor, View, and +ViewPlatform. The Screen, View, and ViewPlatform commands also implicitly +configure the Canvas3D core class and the Viewer and ViewingPlatform utility +classes respectively.

+

+These commands come in two forms: the New<class name> and +<class name>Property commands. All New commands except +NewSensor create new class instances and bind names to +them, while the Property commands refer to these names and configure +their corresponding class instances with the parameters specified by the +command arguments. All references must be to objects previously instantiated +in the file; forward referencing is not supported. Names must be unique within +each class.

+

+Implementations of the Java 3D InputDevice interface and concrete subclasses of +the abstract ViewPlatformBehavior utility class can also be instantiated and +configured with the same command forms. The New commands for these +objects accept class names as command arguments and instantiate the objects +through introspection. Since the details of the implementations are not known, +configuration parameters are passed through methods which are invoked through +introspection of the method names specified in the Property command +arguments.

+

+A method invoked through introspection with a Property command gets its +arguments as a single array of Objects. Boolean strings get wrapped into +Boolean objects, and number strings get wrapped into Double. 2D, 3D, and 4D +points get wrapped into Point2d, Point3d, and Point4d objects respectively, +while 3D and 4D matrices get wrapped into Matrix3d and Matrix4d +respectively.

+
+ + + + + + +
+Overview of Relevant View Model Parameters
+

+The sample configuration files are annotated to assist users in modifying them +to suit their particular viewing environments, but it can be helpful to know +some of the basics of the Java 3D view model that are relevant to writing a +configuration file. This overview should only be considered an informal +adjunct to the detailed description in the Java 3D Specification. Reading the +source code to the ViewInfo utility (a public +implementation of the Java 3D view model) may also be helpful in understanding +the details of the view model.

+ + + + + +
+The Camera View Model
+

+In the traditional camera model the camera or eyepoint is positioned and +oriented with respect to the virtual world via a view transform. Objects +contained within the field of view are projected onto an image plane, which is +then mapped onto a display surface, usually a window on a desktop display +system. While the view direction and camera position can be freely oriented +and placed anywhere in the virtual world, the projection is accomplished using +a static frustum defined by the field of view and a flat image plane centered +about and normal to the view direction.

+

+This model emulates a typical physical camera quite well, but there are many +viewing configurations that cannot be implemented using image planes that are +fixed with respect to the view direction. In a multiple screen environment the +projection frustum for each screen is skewed with respect to the image plane, +based on the user's nominal viewing position. Realistic stereo views on fixed +displays use skewed projection frustums derived from the offsets of the two +eyes from the center of the image plane, while head tracking with fixed +displays involves dynamically adjusting projection frustums in response to +varying eye positions relative to the image plane.

+

+In a low-level API such as OpenGL these situations are handled by concatenating +all defined model and viewing transforms into a single modelview matrix, +and for a fixed-screen environment explicitly computing the projection +matrix for each eye, each display surface, and each new head +position. Every application handling such viewing configurations typically +reimplements the framework for computing those matrices itself. In these cases +it would be useful to be able to separate the projection components out of the +view transform in some representation based on display and eye locations.

+ + + + + +
+The Java 3D View Model
+

+Based on these requirements, a high-level view model should provide standard +mechanisms to 1) define a screen's position and orientation in relation to +other screens in the viewing environment; 2) specify the position of the user's +eyes or an HMD relative to the physical space in which the screens or nominal +user position are defined, and to have them updated automatically if tracking +hardware exists; and 3) describe where the whole physical space is placed and +oriented in the virtual world. In such a model the appropriate images could +then be rendered without further computation in application code.

+

+In the Java 3D view model, screen (image plate) positions and +orientations are defined relative to a fixed frame of reference in the physical +world, the tracker base, through the +TrackerBaseToImagePlate property. The +tracker base is somewhat abstract in that it is always used to define that +fixed frame of reference, even if no physical tracking hardware is being +used. If the ViewPolicy is HMD_VIEW, then the left +and right image plates for head mounted displays are defined relative to the +head tracking sensor, which reports head orientation and position relative to +the tracker base.

+

+Coexistence coordinates are defined with the +CoexistenceToTrackerBase property. It +provides a frame of reference in the physical world which can be set up by the +user or application in whatever way is most convenient for positioning and +orienting screens, physical body attributes, and sensing devices in the virtual +world. If tracking is enabled, then the eye positions in coexistence are +computed from the position and orientation of the head tracking sensor and the +HeadToHeadTracker matrix; otherwise the eye +positions in coexistence are set according to the +CenterEyeInCoexistence property. In HMD +mode the eye positions are fixed with respect to the image plates.

+

+The mapping of coexistence coordinates into the virtual world is accomplished +through the ViewAttachPolicy, which specifies +the point in coexistence coordinates to which the origin of the view +platform should be mapped. The view platform is positioned in the virtual +world by manipulating its view transform, the composite of all the +transforms from the view platform up to its Locale. The basis vectors (X, Y, +and Z directions) of the view platform are always aligned with coexistence +coordinates, and the scaling between view platform coordinates and physical +coordinates is specified by the +ScreenScalePolicy, so this +establishes the complete mapping of the physical world into the virtual world. +The projection of the virtual world onto the physical display surfaces is then +performed automatically by the Java 3D renderer.

+

+By default Java 3D tries to emulate the familiar camera model as much as +possible to make it easy to run in a conventional windowed desktop display +environment. It accomplishes this through the following default settings:

+ + +When a configuration file is being used the defaults are oriented towards +making the setup of multiple screen environments as easy as possible. If the +coexistence centering enable has not been explicitly set, and either the +CoexistenceToTrackerBase transform for the view has been set or +TrackerBaseToImagePlate has been set for any screen, then the following +defaults are used instead:

+ + +The avove defaults are also used if coexistence centering enable has been +explictly set false. +


+ + + + + + +
+Top-Level Command Details
+

+Top-level commands can only appear at the outermost command nesting level.

+
+ +

+NewDevice

+Syntax: +
(NewDevice <instance name> <class name> +[Alias <alias name>]) +

+This command instantiates the InputDevice implementation specified by the fully +qualified class name and binds it to instance name. The +InputDevice is instantiated through introspection of the class name. The +implementation must provide a parameterless constructor; this can usually be +done by extending or wrapping available InputDevice implementations.

+

+The last two arguments are optional and define an alias for instance +name. This is useful in providing a longer descriptive name for the +application to recognize, or conversely, to provide a shorter alias for a +longer instance name. Either name may be used to identify the instance.

+

+At the conclusion of configuration file processing all InputDevice +implementations so defined will be initialized and registered with any +PhysicalEnvironments that reference them.

+


+ +

+DeviceProperty

+Syntax: +
(DeviceProperty <instance name> <method name> <arg0> +... <argn>) +

+The details of the InputDevice implementation specified by instance name +are not known to ConfigContainer, so any parameters to be set through the +configuration file are passed to the InputDevice instance by invoking method +name through introspection. The arguments following the method name are +evaluated and the results passed to the method as an array of Objects.

+

+The required methods can usually be provided by extending or wrapping existing +InputDevice implementations.

+
+ +

+NewSensor

+Syntax: +
(NewSensor <instance name> <device name> +<sensor index> [Alias <alias name>]) +

+Retrieves the Sensor at index sensor index in the InputDevice device +name and binds it to the name specified by instance name. The +sensor index is a number truncated to its integer value. The InputDevice +implementation is responsible for creating its own Sensor objects, so this +command does not create any new instances.

+

+Instance name is used by other commands to reference the indicated +Sensor. In addition, the name and its associated Sensor instance is made +available to applications through a Map returned by the ConfigContainer +method +getNamedSensors. +

+

+The last two arguments are optional and define an alias for instance +name. This is useful in providing a longer descriptive name for the +application to recognize, or conversely, to provide a shorter alias for a +longer instance name. Either name may be used to identify the instance.

+

+If the Sensor is to be used for head tracking, or tracking the position and +orientation of other objects in the physical world, then it must generate 6 +degree of freedom data relative to the tracker base.

+
+ +

+SensorProperty

+Syntax: +
(SensorProperty <instance name> <property name> +<property value>) +

+Sets a Sensor property. The sensor instance is specified by instance +name, the property to be set by property name, and the value to be +set by property value. The following sole property may be +configured:

+ +
+

+Hotspot

+A 3D point in the sensor's local coordinate system. The hotspot specifies the +"active" point which should interact with the virtual world, such as a point +used for picking or grabbing an object. Its actual interpretation is up to the +sensor behavior which uses it. Its value is ignored for head tracking sensors. +
+
+ +

+NewScreen
+NewWindow

+Syntax: +
(NewScreen <instance name> <device index> +[Alias <alias name>]) +
(NewWindow <instance name> <device index> +[Alias <alias name>]) +

+The above two commands are equivalent. Both create new window resources and +associate them with the name specified by instance name. The device +index is a number truncated to its integer value. This integer is the +index at which the desired AWT GraphicsDevice appears in the array returned by +the static getScreenDevices() method of GraphicsEnvironment, and specifies the +physical screen upon which the window should be created. The GraphicsDevice +order in the array is specific to the local viewing site and display +system.

+

+The last two arguments are optional and define an alias for instance +name. This is useful in providing a longer descriptive name for the +application to recognize, or conversely, to provide a shorter alias for a +longer instance name. Either name may be used to identify the instance.

+
+ +

+ScreenProperty
+WindowProperty

+Syntax: +
(ScreenProperty <instance name> <property name> +<property value>) +
(WindowProperty <instance name> <property name> +<property value>) +

+The above two commands are equivalent. The screen or window instance is +specified by instance name, the property to be set by property +name, and the value to be set by property value. The following +properties are configurable:

+ +
+

+PhysicalScreenWidth

+A number specifying the screen's image area width in meters. When using a +configuration file the default is 0.365. For head mounted displays this should +be the apparent width of the display at the focal plane. + +

+PhysicalScreenHeight

+A number specifying the screen's image area height in meters. When using a +configuration file the default is 0.292. For head mounted displays this should +be the apparent height of the display at the focal plane. + +

+WindowSize

+This property's value can be a 2D point to create a window with the specified +X width and Y height in pixels, or it can be either of the strings FullScreen +or NoBorderFullScreen to specify a full screen canvas with visible frame +borders or one with no frame borders. A NoBorderFullScreen canvas uses the +entire physical display surface for its image. The default value is 512 x 512 +pixels. For multiple screen virtual reality installations or head mounted +displays NoBorderFullScreen should be used. + +

+WindowPosition

+This property's value is a 2D point used to create a window with the specified +X and Y position. These are offsets of the window's upper left corner from the +screen's upper left corner. + +

+TrackerBaseToImagePlate

+A 4D matrix which transforms points from tracker base coordinates to the image +plate coordinates for the specified screen. This is only used when a +ViewPolicy of SCREEN_VIEW is in effect. The matrix value is +identity by default. +

+Image plate dimensions are expressed in meters. The origin of the image plate +is the lower left corner of the screen's image area, with X increasing to the +right, Y increasing to the top, and Z increasing away from the screen.

+

+The tracker base is somewhat abstract. It is used as a local fixed frame of +reference for specifying the orientation and position of a screen even when +tracking hardware is not being used. It is also the frame of reference for +defining coexistence coordinates with the +CoexistenceToTrackerBase matrix.

+

+The built-in commands Translate, +Rotate, RotateTranslate, and TranslateRotate are available to make it easier +to create transforms of this type. + +

+HeadTrackerToLeftImagePlate
+HeadTrackerToRightImagePlate

+4D matrices which transform points in the head tracking sensor's local +coordinate system to a head mounted display's left and right image plates +respectively. The default value for each is the identity matrix.

+

+These are only used when a ViewPolicy of HMD_VIEW is in effect. +As with physical screen dimensions, these matrices should indicate the +apparent location and orientation of the screen images as viewed through +the head mounted display's optics.

+

+The HMD manufacturer's specifications in terms of angle of view, distance to +the focal plane, aspect ratio, and percentage of image overlap between the left +and right views can be used to derive the apparent screen positions with +respect to the head, and from there the positions with respect to the head +tracker mounted on the head. In most cases there is 100% overlap between the +two stereo images, so the matrices for both the left and right screens should +be identical.

+

+Some HMD devices support field-sequential stereo and are driven as if they were +a single screen. In that case, only a single screen should be defined, but +both the left and right head tracker to image plate transforms need to +be specified for that same screen.

+ +

+MonoscopicViewPolicy

+This property may have the following string values: CYCLOPEAN_EYE_VIEW, +LEFT_EYE_VIEW, or RIGHT_EYE_VIEW. The default value is +CYCLOPEAN_EYE_VIEW. This default works for non-stereo displays +and field-sequential stereo displays where the two stereo images are generated +on the same canvas.

+

+Some HMD devices can be driven as a single screen if the HMD supports +field-sequential stereo, so the default policy will work for them as well if a +stereo view is enabled. If stereo is not enabled, an IllegalStateException will +be thrown when the ViewPolicy is set to HMD_VIEW with the default +CYCLOPEAN_EYE_VIEW policy in effect.

+

+The LEFT_EYE_VIEW and RIGHT_EYE_VIEW monoscopic view +policies are used for generating stereo pairs on separate monoscopic canvases, +including the left and right canvases needed by HMD devices that are driven by +two video channels. When using these policies, stereo should not be +enabled.

+
+
+ +

+NewPhysicalEnvironment

+Syntax: +
(NewPhysicalEnvironment <instance name> +[Alias <alias name>]) +

+Creates a new PhysicalEnvironment and binds it to the name given by instance +name. This specifies the available input devices, which Sensor to use as +the head tracker, and defines the coexistence coordinate system. Note that +aside from the head tracker, the configuration file does not provide a way to +place Sensors into the array maintained by the PhysicalEnvironment. See the +getNamedSensors +method of ConfigContainer.

+

+The last two arguments are optional and define an alias for instance +name. This is useful in providing a longer descriptive name for the +application to recognize, or conversely, to provide a shorter alias for a +longer instance name. Either name may be used to identify the instance.

+
+ +

+PhysicalEnvironmentProperty

+Syntax: +
(PhysicalEnvironmentProperty <instance name> +<property name> <property value>) +

+Sets a PhysicalEnvironment property. The instance is specified by instance +name, the property to be set by property name, and the value to be +set by property value. The following properties are configurable:

+ +
+

+InputDevice

+Register an InputDevice implementation instantiated by +NewDevice. The InputDevice instance name is specified +by the property value string. If an InputDevice is not registered then +it will not be scheduled to run. + +

+HeadTracker

+Register the Sensor which will be used for head tracking. It must provide 6 +degree of freedom position and orientation reads relative to the tracker base. +The Sensor instance name is specified by the property value string. +Its corresponding input device must be registered with the InputDevice +property. +

+There is no actual method in the core PhysicalEnvironment class to set the head +tracker. This property is a simplified interface for setting the +PhysicalEnvironment head index and assigning the head tracking sensor to that +index. Direct access to the PhysicalEnvironment Sensor array is not supported +by the configuration file.

+ +

+CoexistenceToTrackerBase

+A 4D matrix which transforms points in coexistence coordinates to tracker base +coordinates. This defines the position and orientation of coexistence +coordinates relative to the tracker base. Its default value is the identity +matrix, so if it is not set then coexistence coordinates will be the same as +tracker base coordinates. See +TrackerBaseToImagePlate. +

+The coexistence origin (center of coexistence) positions the physical +world with respect to the origin of the ViewPlatform in the virtual world. +This is established through the +ViewAttachPolicy, which attaches the view +platform to either the center of coexistence, the nominal head, or the nominal +feet. Coexistence coordinates can essentially be thought of as physical +coordinates, but the real purpose is to define the space in which coordinates +systems in the physical world - such as tracker base, image plate, and physical +body - coexist and interact with the virtual world coordinate systems.

+

+The basis vectors (X, Y, and Z directions) of coexistence coordinates are +always aligned with the basis vectors of the ViewPlatform in the virtual world, +and the scale factor going from ViewPlatform coordinates to coexistence +coordinates is set by the ScreenScalePolicy. +Together with the ViewPlatform's view attach policy and view transform this +establishes the complete mapping of the physical world into the virtual +world.

+

+The positioning and orientation of coexistence coordinates with respect to the +physical environment is up to the user or application. In a fixed screen +environment it usually makes most sense to define it in a convenient +relationship to the primary screen or some intersection of the available +screens, such that the coexistence origin is in front of and aligned with the +user's nominal forward gaze direction. This is because the -Z axis of +coexistence coordinates always points along the view direction defined by the +view platform's -Z axis.

+

+For example, when using a single screen, the most common mapping puts the +center of coexistence in the middle of the screen with its basis vectors +aligned with the screen's image plate coordinate system. With a dual-screen +system it is usually most convenient to place the center of coexistence in the +middle of the edge shared by both screens, with its Z axis extending +perpendicular to the shared edge and maintaining an equal angle to both +screens. For a 2x2 array of four screens putting the center of coexistence at +the center of the array is usually a good choice. In a cave configuration +having the center of coexistence in the middle of the viewing environment can +facilitate the sense of immersion.

+

+In HMD mode the view attach policy is ignored and is always effectively +NOMINAL_SCREEN. Coexistence coordinates and view platform +coordinates are then equivalent except for scale. For HMD configurations +placing the coexistence coordinate system aligned with some nominal +front-facing user position works well.

+

+Note: the normal Java 3D default is to place the center of coexistence +in the middle of the screen or canvas by setting +CoexistenceCenteringEnable true by +default. This only works for a single screen and if both the +TrackerBaseToImagePlate and CoexistenceToTrackerBase matrices are identity. If +either of these matrices are set from their default identity values in the +configuration file, and CoexistenceCenteringEnable has not been set, then the +centering property will be set false by default.

+

+
+ +

+NewPhysicalBody

+Syntax: +
(NewPhysicalBody <instance name> +[Alias <alias name>]) +

+Creates a new PhysicalBody and binds it to the name given by instance +name. The PhysicalBody is essentiallly the users's head, with the origin +halfway between the eyes in the plane of the face. Positive X extends to the +right eye, positive Y up, and positive Z extends into the skull opposite to the +forward gaze direction. Dimensions are expressed in meters.

+

+The last two arguments are optional and define an alias for instance +name. This is useful in providing a longer descriptive name for the +application to recognize, or conversely, to provide a shorter alias for a +longer instance name. Either name may be used to identify the instance.

+
+ +

+PhysicalBodyProperty

+Syntax: +
(PhysicalBodyProperty <instance name> <property name> +<property value>) +

+Sets a PhysicalBody property. The instance is specified by instance +name, the property to be set by property name, and the value to be +set by property value. The following properties are configurable:

+ +
+

+StereoEyeSeparation

+A number indicating the interpupilary distance in meters. This will set the +left and right eye positions to offsets of half this distance from the head +origin along its X axis. The default is 0.066 meters. +

+This property is a simplified interface to setting the PhysicalBody's separate +left and right eye positions; there is no actual method in PhysicalBody to set +stereo eye separation, but the results are exactly equivalent.

+ +

+LeftEarPosition

+A 3D point which sets the left ear position relative to head coordinates. +The default is (-0.08, -0.03, 0.09). + +

+RightEarPosition

+A 3D point which sets the right ear position relative to head coordinates. +The default is (0.08, -0.03, 0.09). + +

+HeadToHeadTracker

+A 4D matrix which transforms points from head coordinates to the local +coordinate system of the head tracking sensor. This allows the positions +of the eyes and ears to be determined from the position and orientation +of the head tracker. The default is the identity matrix. + +

+ +NominalEyeOffsetFromNominalScreen

+A distance in meters used as a calibration parameter for +ViewAttachPolicy. It does not actually set +the position of the eyes. The property is ignored if ViewAttachPolicy is +NOMINAL_SCREEN. The default value is 0.4572 meters. + +

+NominalEyeHeightFromGround

+A distance in meters used as a calibration parameter for +ViewAttachPolicy. +It does not actually set the position of the eyes. This property is +ignored if ViewAttachPolicy is not NOMINAL_FEET. The default value is 1.68 +meters. +
+
+ +

+NewView

+Syntax: +
(NewView <instance name> +[Alias <alias name>]) +

+Creates a new view and binds it to the name given by instance name. +In the configuration file the term view refers to an instance of the +Viewer utility class, which contains both an +instance of a core Java 3D View class and an array of Canvas3D instances into +which to render.

+

+The last two arguments are optional and define an alias for instance +name. This is useful in providing a longer descriptive name for the +application to recognize, or conversely, to provide a shorter alias for a +longer instance name. Either name may be used to identify the instance.

+

+ConfiguredUniverse requires that at least one view be defined. If a view +platform is not provided, then ConfiguredUniverse will create a default one and +attach the view to that. If multiple views are defined, then at least one view +platform must be explicitly provided by the configuration, and the +ViewPlatform property must be used to attach each view to a view platform.

+
+ +

+ViewProperty

+Syntax:
+(NewView <instance name> <property name> +<property value>) +

+Sets a View property. The view instance is specified by instance name, +the property to be set by property name, and the value to be set by +property value. The following properties are configurable:

+ +
+

+Screen
+Window

+These two properties are equivalent. They include a screen created by +NewScreen or a window created by +NewWindow into +this view. The screen or window name is specified by the property value +string. Multiple-screen or multiple-window views are created by calling this +command with each window or screen to be used. If no windows or screens are +defined for this view then an IllegalArgumentException will be thrown after the +configuration file has been processed. + +

+PhysicalEnvironment

+Sets the PhysicalEnvironment to be used for this view. The property +value string specifies the name of a PhysicalEnvironment instance created +by the NewPhysicalEnvironment command. +If no PhysicalEnvironment is specified for this view then one with default +values will be created. + +

+PhysicalBody

+Sets the PhysicalBody to be used for this view. The property +value string specifies the name of a PhysicalBody instance created +by the NewPhysicalBody command. If +no PhysicalBody is specified for this view then one with default values +will be created. + +

+ViewPlatform

+The property value string is the name of a view platform defined by a +previous NewViewPlatform command. This +specifies that the view should be attached to the given view platform. +ConfiguredUniverse requires that a view platform be specified for every defined +view unless only a single view without a view platform is provided; in that +case a view platform is created by default and the view is attached to that. +If one or more view platforms are defined then the view attachments must be +made explicitly. + +

+ViewPolicy

+The property value string may be either SCREEN_VIEW or +HMD_VIEW to indicate whether fixed room-mounted screens are being +used or a head mounted display. The default value is SCREEN_VIEW. + +

+CoexistenceCenteringEnable

+The property value is a boolean string. If true, then the origin of the +coexistence coordinate system is set to either the middle of the canvas or the +middle of the screen depending upon whether the WindowMovementPolicy is +PHYSICAL_WORLD or VIRTUAL_WORLD respectively. The X, +Y, and Z directions of coexistence coordinates will point in the same +directions as those of the screen's image plate. +

+This only works if a single screen is being used and if both the +TrackerBaseToImagePlate and +CoexistenceToTrackerBase matrices are +identity. If CoexistenceCenteringEnable is not explicitly set, and either the +CoexistenceToTrackerBase transform for the view has been set or +TrackerBaseToImagePlate has been set for any screen, then the centering enable +will be set to false by default; otherwise, the normal default is true. This +property is also effectively false whenever the ViewPolicy is set to +HMD_VIEW.

+ +

+WindowEyepointPolicy

+The string value for this property may be either RELATIVE_TO_SCREEN, +RELATIVE_TO_COEXISTENCE, RELATIVE_TO_WINDOW, or +RELATIVE_TO_FIELD_OF_VIEW. The normal Java 3D default is +RELATIVE_TO_FIELD_OF_VIEW. When using a configuration file the +default is RELATIVE_TO_COEXISTENCE if +CoexistenceCenteringEnable is false, +otherwise the normal default applies. See the +setWindowEyepointPolicy View method. +

+For the RELATIVE_TO_SCREEN and RELATIVE_TO_WINDOW +policies, the eyepoint is set by using the setLeftManualEyeInImagePlate() and +setRightManualEyeInImagePlate() methods of Canvas3D. The configuration file +currently does not provide any mechanism for altering these properties from +their default values. These default values are (0.142, 0.135, 0.4572) for the +left eye and (0.208, 0.135, 0.4572) for the right eye.

+

+These polices are ignored if head tracking is enabled.

+ +

+WindowMovementPolicy
+WindowResizePolicy

+ +The string values for these properties may be either VIRTUAL_WORLD +or PHYSICAL_WORLD. The normal Java 3D default value for both is +PHYSICAL_WORLD. When using a configuration file the default +values are VIRTUAL_WORLD if +CoexistenceCenteringEnable is false, +otherwise the normal defaults apply. See the +setWindowMovementPolicy and +setWindowResizePolicy View methods.

+ +

+CenterEyeInCoexistence

+A 3D point which specifies the location of the center eye relative to +coexistence coordinates. See +CoexistenceToTrackerBase. If stereo +viewing is enabled, then the left and right eye positions are set to offsets +from this position using the values specified by the PhysicalBody. This +property is ignored if head tracking is enabled or if WindowEyepointPolicy is +not RELATIVE_TO_COEXISTENCE. The default value is (0.0, 0.0, +0.4572). +

+This property is a simplified interface to setting the View's left +and right manual eyes in coexistence; there is no actual method in View +to set a center eye position.

+ +

+ScreenScalePolicy

+The property value string may be either SCALE_SCREEN_SIZE +or SCALE_EXPLICIT and determines the source of the screen +scale, a factor in the scaling of view platform coordinates to physical +world coordinates. +

+If the value is SCALE_SCREEN_SIZE, then the screen scale is half +the physical screen width in meters. If WindowResizePolicy is +PHYSICAL_WORLD, then this scale is further multiplied by the ratio +of the window width to the width of the screen (the window scale) to +produce the scale from view platform coordinates to physical coordinates. This +allows a virtual world which spans a normalized width of [-1.0 .. 1.0] in view +platform coordinates to map directly to the physical width of the window or +screen, depending upon the resize policy.

+

+SCALE_EXPLICIT uses the value of the ScreenScale property as the +screen scale. It is also further multiplied by the window scale when using the +PHYSICAL_WORLD window resize policy to produce the scale from view +platform coordinates to physical coordinates. Viewing configurations +incorporating multiple screens should generally set the policy to +SCALE_EXPLICIT and choose a screen scale based on the aggregate +display size, but the default value of SCALE_SCREEN_SIZE will +usually work if all the screens are the same size and arranged in a linear +array.

+

+The view platform is positioned in the virtual world through a chain of +transforms to the root of the scene graph; this composite transform is its +localToVWorld transform and must be congruent. If we take the the inverse of +the scale factor in this transform and call it the view platform scale, +then the scale from virtual world units to physical world units can be computed +as the product of this view platform scale, the screen scale, and, when using a +resize policy of PHYSICAL_WORLD, the window scale. In the usual +case the view platform scale is 1.0.

+ +

+ScreenScale

+The property value is a number specifying the explicit screen scale +factor. It is only used if ScreenScalePolicy is SCALE_EXPLICIT; +otherwise, the screen scale is half the physical width of the screen in meters. +The default value for this property is 1.0. + +

+BackClipPolicy
+FrontClipPolicy

+The string values of these properties may be either PHYSICAL_EYE, +PHYSICAL_SCREEN, VIRTUAL_EYE, or VIRTUAL_SCREEN. The +default policies are PHYSICAL_EYE. See the +setFrontClipPolicy and +setBackClipPolicy View methods. + +

+FrontClipDistance
+BackClipDistance

+These property values are numbers. The defaults are 0.1 and 10.0 +respectively. See the +setFrontClipDistance and +setBackClipDistance View methods.

+

+With the default clip policies of PHYSICAL_EYE the clip distances +are measured relative to the eye in physical units, so the clip distances +specified must be scaled to virtual world units in order to determine the +distances in the virtual world where they would effectively be applied. As +described in the discussion of +ScreenScalePolicy above, the scale from +virtual units to physical units is the product of the view platform scale +(usually 1.0), the screen scale, and the window scale (if the window resize +policy is PHYSICAL_WORLD), so normally the scale from physical +units to virtual units would be the inverse of that product.

+

+There is a quirk, however, with physical clip plane scaling when the +PHYSICAL_EYE or PHYSICAL_SCREEN clip policies are +used with the PHYSICAL_WORLD window resize policy. The locations +of the clip planes in physical units are not actually set to the physical +distances as specified, but are in fact scaled by the window scale. +This means that when determining where the specified physical clip distances +are in virtual units the scaling to be used is the inverse of the product of +the screen scale and view platform scale only.

+

+This quirk applies only to scaling physical clip plane distances, and only with +the PHYSICAL_WORLD resize policy. It was implemented in this +manner to prevent objects in the virtual world from getting clipped +unexpectedly when the virtual world scaling changed as the result of a window +resize. The quirk can be avoided by using the VIRTUAL_EYE or +VIRTUAL_SCREEN clip policies or by using the +VIRTUAL_WORLD resize policy, but in most cases the effect is +benign and doesn't lead to unexpected results.

+ +

+FieldOfView

+This number is the view's horizontal field of view in radians. The default +value is PI/4. This value is ignored if WindowEyepointPolicy is not +RELATIVE_TO_FIELD_OF_VIEW or if head tracking is enabled. The +eyepoint for each canvas associated with the view is set such that it is +centered in X and Y, with the Z value at the appropriate distance to match the +specified field of view across the width of the canvas. + +

+StereoEnable

+Enable or disable stereo viewing for this view according to the boolean value +specified by the property value string. The default value is false. +

+There is no actual method in the core Java 3D View or utility Viewer class to +enable stereo. A true value for this property causes ConfigContainer to +attempt to create stereo-capable canvases for all the screens associated with +this view. Stereo will then be enabled for each canvas successfully created +with stereo capability.

+ +

+TrackingEnable

+Enable or disable head tracking for this view according to the boolean value +specified by the property value string. The default value is false. +

+Setting this property true causes WindowEyepointPolicy to be ignored; it will +effectively be RELATIVE_TO_COEXISTENCE with the eyepoint in +coexistence coordinates computed from reading the head tracking sensor. +Tracking must be made available by registering an input device and a head +tracking sensor in PhysicalEnvironment.

+ +

+AntialiasingEnable

+Enable or disable scene antialiasing for this view according to the boolean +value specified by the property value string. The default value is +false. +

+A true value for this property causes ConfigContainer to attempt to create +a canvas capable of scene antialiasing on each screen associated with this +view. The scene will then be antialiased on each canvas successfully created +with that capability.

+

+Line and point antialiasing are independent of scene antialiasing and are +controlled by the LineAttribute and PointAttribute components of an Appearance. +If line and point antialiasing is enabled, then they will be antialiased prior +to scene antialiasing; if scene antialiasing is turned off, then antialiased +lines and points will still be antialiased.

+
+
+ +

+NewViewPlatform

+Syntax: +
(NewViewPlatform <instance name> +[Alias <alias name>]) +

+Creates a new view platform and binds it to the name given by instance +name. In the configuration file the term view platform refers to an +instance of the ViewingPlatform utility +class, which is an extension of BranchGroup containing an instance of a core +Java 3D ViewPlatform class.

+

+The last two arguments are optional and define an alias for instance +name. This is useful in providing a longer descriptive name for the +application to recognize, or conversely, to provide a shorter alias for a +longer instance name. Either name may be used to identify the instance.

+
+ +

+ViewPlatformProperty

+Syntax: +
(ViewPlatformProperty <instance name> <property name> +<property value>) +

+Sets a ViewPlatform property. The instance is specified by instance +name, the property to be set by property name, and the value to be +set by property value. The following properties are configurable:

+ +
+

+NominalViewingTransform

+The property value is a boolean string indicating whether or not +the view platform should be backed up in Z to allow objects at the origin to be +viewed. This only has effect if the ViewAttachPolicy is +NOMINAL_HEAD. The default value is false. See the +setNominalViewingTransform +method of ViewingPlatform. + +

+InitialViewingTransform

+Sets the initial transform of the view platform to the 4D matrix +specified by property value. The default value is identity. + +

+AllowPolicyRead

+The property value is a boolean string indicating whether or not reading +the ViewAttachPolicy is allowed. The default value is false. + +

+AllowLocalToVworldRead

+The property value is a boolean string indicating whether or not reading +the view platform's localToVworld transform is allowed. The default value is +false. + +

+ViewPlatformBehavior

+Attaches a ViewPlatformBehavior instantiated by +NewViewPlatformBehavior. +The property value string is the name bound to that instance. + +

+ViewAttachPolicy

+The property value string can be one of NOMINAL_SCREEN, +NOMINAL_HEAD, or NOMINAL_FEET. This establishes the point +in coexistence coordinates where the origin of view platform coordinates is +attached. The basis vectors of view platform coordinates are always aligned +with those of coexistence coordinates. +

+For a ViewAttachPolicy of NOMINAL_SCREEN, the ViewPlatform origin +is set directly to the origin of coexistence, so that ViewPlatform coordinates +and coexistence coordinates are identical except for scale.

+

+For a ViewAttachPolicy of NOMINAL_HEAD, the ViewPlatform origin is +set to the origin of the nominal head, the center eye halfway between the left +and right eyes. The nominal head origin is on the Z axis of coexistence +coordinates at some offset from the coexistence origin. If the +WindowEyepointPolicy is RELATIVE_TO_FIELD_OF_VIEW, then this is +the positive Z offset producing the required field of view relative to the +width of the canvas at the coexistence origin, tracking the Z offset of the +eyepoint defined by that policy; otherwise, the Z offset is the +NominalEyeOffsetFromNominalScreen property of PhysicalBody and is decoupled +from the actual eyepoint offset.

+

+For a ViewAttachPolicy of NOMINAL_FEET, the ViewPlatform origin is +at the ground plane, which is NominalEyeHeightFromGround meters along -Y from +the origin of the nominal head. NominalEyeHeightFromGround is a property of +PhysicalBody.

+

+Note: The normal Java 3D default is NOMINAL_HEAD. When +using a configuration file, the default is NOMINAL_HEAD only if +every view attached to the view platform has a WindowEyepointPolicy of +RELATIVE_TO_FIELD_OF_VIEW; otherwise, the default is +NOMINAL_SCREEN. If the view policy is HMD_VIEW, then +the ViewAttachPolicy is ignored and is always effectively +NOMINAL_SCREEN.

+
+
+ +

+NewViewPlatformBehavior

+Syntax: +
(NewViewPlatformBehavior <instance name> <class name> +[Alias <alias name>]) +

+This command instantiates the concrete subclass of ViewPlatformBehavior +specified by the fully qualified class name and binds it to instance +name. The ViewPlatformBehavior is instantiated through introspection of +the class name. The subclass must provide a parameterless constructor. If no +such constructor is available, then the behavior must be extended or wrapped to +provide one and the derived class used instead.

+

+The last two arguments are optional and define an alias for instance +name. This is useful in providing a longer descriptive name for the +application to recognize, or conversely, to provide a shorter alias for a +longer instance name. Either name may be used to identify the instance.

+

+View platform behaviors often need sensors or canvases as event sources to +drive the behavior action. A subclass of ViewPlatformBehavior always gets the +current ViewingPlatform through its +setViewingPlatform +method. When the behavior is initialized, the canvases used by the +ViewingPlatform can be retrieved by calling its +getViewers method and +then calling each Viewer's +getCanvas3Ds method. Sensors +can be retrieved by calling the ViewingPlatform method +getUniverse, checking +to see if the returned SimpleUniverse is a ConfiguredUniverse, and then calling +its +getNamedSensors +method.

+

+Alternatively, the behavior implementation can define its own properties +and receive canvas and sensor instances directly through the +Canvas3D and Sensor built-in +commands.

+
+ +

+ViewPlatformBehaviorProperty

+Syntax: +
(ViewPlatformBehaviorProperty <instance name> +<property name> <property value>) +

+Sets a property of a ViewPlatformBehavior. The instance is specified by +instance name, the property to be set by property name, and the +value to be set by property value. The following properties are +pre-defined by the abstract ViewPlatformBehavior superclass and may be +configured directly:

+ +

+

+SchedulingBounds

+The scheduling bounds for this behavior. Use the +BoundingSphere built-in command to set this +property. The default is whatever the application or the concrete subclass +sets. + +

+SchedulingInterval

+A number indicating the scheduling interval for this behavior. See the +setSchedulingInterval +method of Behavior. + +

+HomeTransform

+See the ViewPlatformBehavior method +setHomeTransform. +The property value must be a 4D matrix. +
+

+The details of a concrete subclass of ViewPlatformBehavior are not known to +ConfigContainer, so any properties specific to the subclass are set by +using introspection to invoke property name as a method accepting an +array of Objects as its single parameter. The arguments following the property +name are evaluated and the results passed to the method through that array of +Objects. Such methods can usually be provided by extending or wrapping +existing ViewPlatformBehavior implementations.

+
+ +

+NewObject

+Syntax: +
(NewObject <instance name> <class name> +[Alias <alias name>]) +

+This command instantiates a generic object specified by class +name and binds it to instance name. The object is instantiated +through introspection of the class name. The object must provide a +parameterless constructor; this can usually be done by extending or +wrapping existing objects.

+

+The last two arguments are optional and define an alias for instance +name. This is useful in providing a longer descriptive name for the +application to recognize, or conversely, to provide a shorter alias for a +longer instance name. Either name may be used to identify the instance.

+

+Objects so defined may be accessed from ConfigContainer through the +getNamedGenericObjects method.

+
+ +

+ObjectProperty

+Syntax: +
(ObjectProperty <instance name> <method name> <arg0> +... <argn>) +

+Sets a property of a generic object. The details of the object specified by +instance name are not known to ConfigContainer, so any parameters to be +set through the configuration file are passed to the object instance by +invoking method name through introspection. The arguments following the +method name are evaluated and the results passed to the method as an array of +Objects. The required methods can usually be provided by extending or wrapping +existing objects.

+
+ +

+JavaProperty

+Syntax: +
(JavaProperty <propertyName> [Default] +<propertyValue>) +

+Sets the Java system property propertyName to the string +propertyValue. If the optional Default keyword is supplied, then the +property is set only if it doesn't currently have a value.

+

+Java system properties which affect Java 3D are evaluated at the first +reference to a VirtualUniverse. Setting such properties in the configuration +file is therefore ineffective if a ConfiguredUniverse constructor which accepts +a URL directly is used; ConfigContainer must be used instead. Even then, care +must be taken to avoid static references to VirtualUniverse from objects such +as Transform3D.

+

+The special Java property substitution syntax ${<propertyName>} +may be used to access the value of a Java system property anywhere within a +configuration file.

+
+ +

+Include

+Syntax: +
(Include <URL string>) +

+Retrieves the configuration file specified by URL string and includes it +into the current configuration file at the current line. The content of the +included file is evaluated exactly as if it were pasted into the current file +at that line. Included files may be arbitrarily nested.

+

+URL strings must be quoted.

+


+ +

+Alias

+Syntax: +
(<baseName>Alias <aliasName> +<originalName>) +

+Creates an alias for the object specified by originalName (which itself +may be an alias). baseName may be Device, Object, PhysicalBody, +PhysicalEnvironment, Screen, Window, Sensor, View, ViewPlatform, or +ViewPlatformBehavior; it specifies the type of the object being aliased. +Original names and aliases must be unique within a type. Note that there is no +white space between baseName and Alias.

+

+Aliases are useful for providing shorter or longer descriptive names for an +original name. This function is also provided by the optional Alias keyword +available for all New top-level commands. This separate command can be +used to substitute new names for objects created by generic include files in +order to conform to the names expected by specific applications.

+
+ + + + + + +
+Built-In Command Details
+

+Built-in commands are provided by the parser itself to help construct the +arguments to top-level commands. They cannot appear at the top level of +command nesting.

+

+Translate, Rotate, TranslateRotate, and RotateTranslate are useful for +computing simple affine transforms of the form SourceToTarget +(e.g., TrackerBaseToImagePlate). These transform points from the +Source coordinate system to the Target coordinate system by +concatenating translation and rotation matrices. Here is a general rule for +creating such transforms:

+ +
+Subtract (translate) the target origin first if it can be conveniently measured +or computed relative to the source origin along the source X, Y, and Z basis +vectors. Then rotate with Euler angles that move the target basis vectors to +their corresponding source basis vectors. +

+If instead it is easier to measure or compute the source origin relative to the +target origin along the target basis vectors, rotate first with Euler angles +that move the target basis vectors to their corresponding source basis vectors, +and then add (translate) the source origin.

+
+

+The Canvas3D, Sensor, Device, PhysicalBody, PhysicalEnvironment, View, +ViewPlatform, ViewPlatformBehavior, and Object built-in commands return +references to the objects named by their arguments. These are mostly useful +for InputDevice and ViewPlatformBehavior implementations that define their own +properties. The return values of these built-in commands should not be passed +to commands that expect strings.

+
+ +

+Translate

+Syntax: +
(Translate <x offset> <y offset> <z offset>) +

+Returns a 4D matrix that translates by the given X, Y, and Z values.

+
+ +

+Rotate

+Syntax: +
(Rotate <x degrees> <y degrees> <z degrees>) +

+Returns a 4D matrix that rotates by the given Euler angles around static X, Y, +and Z basis vectors: first about X, then Y, and then Z. See the +setEuler +method of Transform3D.

+
+ +

+Concatenate

+Syntax: +
(Concatenate <m1> <m2>) +

+Returns a 4D matrix that concatenates 4D matrices m1 and m2 in +that order. If a point is transformed by the resulting matrix, then in effect +the points are first transformed by m1 and then m2.

+
+ +

+RotateTranslate

+Syntax: +
(RotateTranslate <m1> <m2>) +

+An alias for the Concatenate command. This is useful to make the +result of the concatenation explicit.

+
+ +

+TranslateRotate

+Syntax: +
(TranslateRotate <m1> <m2>) +

+An alias for the Concatenate command. This is useful to make the +result of the concatenation explicit.

+
+ +

+BoundingSphere

+Syntax: +
(BoundingSphere <center> <radius>) +

+Returns a BoundingSphere object using the 3D point center and the given +radius in meters. radius may be either a number or the string +Infinite.

+
+ +

+Canvas3D

+Syntax: +
(Canvas3D <screen or window name>) +

+Returns the Canvas3D instance specified by the given name. A named Canvas3D is +created whenever any of the following configuration commands are used: + +

+(ViewProperty <view> Screen <screenName>)
+(ViewProperty <view> Window <windowName>) +
+ +view is the name of a view created with the NewView command. The +argument to the Canvas3D built-in must be a screenName or +windowName parameter from one of the above commands.

+

+Note: the NewScreen and NewWindow commands do not create Canvas3D +instances themselves; they are created only by the above configuration +commands.

+
+ +

+Sensor

+Syntax: +
(Sensor <sensor name>) +

+Returns the Sensor instance specified by the given name.

+
+ +

+Device

+Syntax: +
(Device <device name>) +

+Returns the InputDevice instance specified by the given name.

+
+ +

+PhysicalBody

+Syntax: +
(PhysicalBody <body name>) +

+Returns the PhysicalBody instance specified by the given name.

+
+ +

+PhysicalEnvironment

+Syntax: +
(PhysicalEnvironment <environment name>) +

+Returns the PhysicalEnvironment instance specified by the given name.

+
+ +

+View

+Syntax: +
(View <view name>) +

+Returns the Viewer instance specified by the given name.

+
+ +

+ViewPlatform

+Syntax: +
(ViewPlatform <view platform name>) +

+Returns the ViewingPlatform instance specified by the given name.

+
+ +

+ViewPlatformBehavior

+Syntax: +
(ViewPlatformBehavior <behavior name>) +

+Returns the ViewPlatformBehavior instance specified by the given name.

+
+ +

+Object

+Syntax: +
(Object <generic object name>) +

+Returns the generic object instance specified by the given name. A generic +named object is created by the following configuration command: + +

+(NewObject <instance name> <class name> +[Alias <alias name>]) +
+
+ +

+ConfigContainer

+Syntax: +
(ConfigContainer) +

+Returns a reference to the current ConfigContainer.

+
+ +
+ + + + +
+Command Index
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CommandType
Aliastop-level
BoundingSpherebuilt-in
Canvas3Dbuilt-in
Concatenatebuilt-in
ConfigContainerbuilt-in
Devicebuilt-in
DevicePropertytop-level
Includetop-level
JavaPropertytop-level
NewDevicetop-level
NewObjecttop-level
NewPhysicalBodytop-level
NewPhysicalEnvironmenttop-level
NewScreentop-level
NewSensortop-level
NewViewtop-level
NewViewPlatformtop-level
NewViewPlatformBehaviortop-level
NewWindowtop-level
Objectbuilt-in
ObjectPropertytop-level
PhysicalBodybuilt-in
PhysicalBodyPropertytop-level
PhysicalEnvironmentbuilt-in
PhysicalEnvironmentPropertytop-level
Rotatebuilt-in
RotateTranslatebuilt-in
ScreenPropertytop-level
Sensorbuilt-in
SensorPropertytop-level
Translatebuilt-in
TranslateRotatebuilt-in
Viewbuilt-in
ViewPlatformbuilt-in
ViewPlatformBehaviorbuilt-in
ViewPropertytop-level
ViewPlatformPropertytop-level
ViewPlatformBehaviorPropertytop-level
WindowPropertytop-level
+

+ + + + + + +
+Property Index
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyCommand
AllowLocalToVworldReadViewPlatformProperty
AllowPolicyReadViewPlatformProperty
AntialiasingEnableViewProperty
BackClipDistanceViewProperty
BackClipPolicyViewProperty
CenterEyeInCoexistenceViewProperty
CoexistenceCenteringEnableViewProperty
CoexistenceToTrackerBasePhysicalEnvironmentProperty
FieldOfViewViewProperty
FrontClipDistanceViewProperty
FrontClipPolicyViewProperty
HeadToHeadTrackerPhysicalBodyProperty
HeadTrackerPhysicalEnvironmentProperty
HeadTrackerToLeftImagePlateScreenProperty
HeadTrackerToRightImagePlateScreenProperty
HomeTransformViewPlatformBehaviorProperty
HotspotSensorProperty
InitialViewingTransformViewPlatformProperty
InputDevicePhysicalEnvironmentProperty
LeftEarPositionPhysicalBodyProperty
MonoscopicViewPolicyScreenProperty
NominalEyeHeightFromGroundPhysicalBodyProperty
NominalEyeOffsetFromNominalScreenPhysicalBodyProperty
NominalViewingTransformViewPlatformProperty
PhysicalBodyViewProperty
PhysicalEnvironmentViewProperty
PhysicalScreenHeightScreenProperty
PhysicalScreenWidthScreenProperty
RightEarPositionPhysicalBodyProperty
SchedulingBoundsViewPlatformBehaviorProperty
SchedulingIntervalViewPlatformBehaviorProperty
ScreenViewProperty
ScreenScaleViewProperty
ScreenScalePolicyViewProperty
StereoEnableViewProperty
StereoEyeSeparationPhysicalBodyProperty
TrackerBaseToImagePlateScreenProperty
TrackingEnableViewProperty
ViewAttachPolicyViewPlatformProperty
ViewPlatformViewProperty
ViewPlatformBehaviorViewPlatformProperty
ViewPolicyViewProperty
WindowViewProperty
WindowEyepointPolicyViewProperty
WindowMovementPolicyViewProperty
WindowPositionWindowProperty
WindowResizePolicyViewProperty
WindowSizeWindowProperty
+ + diff --git a/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x1-behavior.html b/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x1-behavior.html new file mode 100644 index 0000000..1c6598d --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x1-behavior.html @@ -0,0 +1,109 @@ + + + + + j3d1x1-behavior config file + + + +
+/*
+ ************************************************************************
+ *  
+ * Java 3D configuration file for single fullscreen desktop configuration.
+ * A view platform behavior is created and configured here as well.
+ *  
+ ************************************************************************
+ */
+
+(NewScreen center 0)
+(ScreenProperty center WindowSize NoBorderFullScreen)
+
+(NewView view0)
+(ViewProperty view0 Screen center)
+
+// Create a view platform behavior.  Here we use OrbitBehavior, although any
+// concrete subclass of the abstract ViewPlatformBehavior with a parameterless
+// constructor could be used.  The logical name to assign to this behavior is
+// specified by the 2nd argument to the NewViewPlatformBehavior command, while
+// the 3rd argument is the name of the ViewPlatformBehavior subclass.  It is
+// instantiated through introspection.
+// 
+(NewViewPlatformBehavior vpb org.jogamp.java3d.utils.behaviors.vp.OrbitBehavior)
+
+// Set the scheduling bounds to be a BoundingSphere with its center at 
+// (0.0 0.0 0.0) and an infinite radius.
+// 
+(ViewPlatformBehaviorProperty vpb SchedulingBounds
+                                  (BoundingSphere (0.0 0.0 0.0) infinite))
+
+// Set properties specific to OrbitBehavior.  All arguments following the
+// method name are wrapped and passed to the specified method as an array of
+// Objects.  Strings "true" and "false" get turned into Boolean, and number
+// strings get turned into Double.  Constructs such as (0.0 1.0 2.0) and
+// ((0.0 1.0 2.0 0.5) (3.0 4.0 5.0 1.0) (6.0 7.0 8.0 0.0)) get converted to
+// Point3d and Matrix4d respectively. Note that last row of a Matrix4d doesn't
+// need to be specified; it is implicitly (0.0 0.0 0.0 1.0).
+// 
+// The REVERSE_ALL flags are usually passed to the OrbitBehavior constructor.
+// Since it is being instantiated with its parameterless constructor the
+// reverse flags are set here explicitly.
+// 
+(ViewPlatformBehaviorProperty vpb ReverseTranslate true)
+(ViewPlatformBehaviorProperty vpb ReverseRotate    true)
+(ViewPlatformBehaviorProperty vpb ReverseZoom      true)
+
+// Create a new view platform and set the view platform behavior.
+// 
+(NewViewPlatform vp)
+(ViewPlatformProperty vp ViewPlatformBehavior vpb)
+
+// Attach the view to the view platform.
+(ViewProperty view0 ViewPlatform vp)
+
+ + diff --git a/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x1-stereo.html b/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x1-stereo.html new file mode 100644 index 0000000..0a91eed --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x1-stereo.html @@ -0,0 +1,90 @@ + + + + + j3d1x1-stereo config file + + + +
+/*
+ ************************************************************************
+ *  
+ * Java 3D configuration file for single fullscreen stereo desktop
+ * configuration with no head tracking.
+ *  
+ ************************************************************************
+ */
+
+(NewScreen center 0)
+(ScreenProperty center WindowSize NoBorderFullScreen)
+
+// Define the physical body.
+//
+// The head origin is halfway between the eyes, with X extending to the right,
+// Y up, and positive Z extending into the skull.
+// 
+(NewPhysicalBody SiteUser)
+
+// Set the interpupilary distance.  This sets the LeftEyePosition and
+// RightEyePosition to offsets of half this distance along both directions of
+// the X axis.
+// 
+(PhysicalBodyProperty SiteUser StereoEyeSeparation 0.066)
+
+// Create a view using the defined screen and physical body.
+//
+(NewView view0)
+(ViewProperty view0 Screen       center)
+(ViewProperty view0 PhysicalBody SiteUser)
+
+// Enable stereo viewing.
+// 
+(ViewProperty view0 StereoEnable true)
+
+ + diff --git a/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x1-vr.html b/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x1-vr.html new file mode 100644 index 0000000..a2e07ac --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x1-vr.html @@ -0,0 +1,173 @@ + + + + + j3d1x1-vr config file + + + +
+/*
+ ************************************************************************
+ *  
+ * Java 3D configuration file for a single screen stereo desktop display
+ * using a head tracker and 6DOF mouse.
+ *
+ ************************************************************************
+ */
+
+// Create a screen object and give it a logical name.
+(NewScreen center 0)
+
+// Set the actual available image area.
+(ScreenProperty center PhysicalScreenWidth     0.398)
+(ScreenProperty center PhysicalScreenHeight    0.282)
+(ScreenProperty center WindowSize              NoBorderFullScreen)
+
+// Set the TrackerBaseToImagePlate transform for this screen.
+(ScreenProperty center TrackerBaseToImagePlate
+                 (RotateTranslate (Rotate    50.000 0.000 0.000)
+                                  (Translate  0.199 0.376 0.000)))
+
+// Configure the head tracker.
+(NewDevice      tracker1 org.jogamp.java3d.input.LogitechTracker)
+(DeviceProperty tracker1 SerialPort "/dev/ttya")
+(DeviceProperty tracker1 ReceiverBaseline     0.1450)
+(DeviceProperty tracker1 ReceiverLeftLeg      0.0875)
+(DeviceProperty tracker1 ReceiverHeight       0.0470)
+(DeviceProperty tracker1 ReceiverTopOffset    0.0000)
+(DeviceProperty tracker1 RealtimeSerialBuffer true)
+
+// Configure the 6DOF wand.
+(NewDevice      tracker2 org.jogamp.java3d.input.LogitechTracker)
+(DeviceProperty tracker2 SerialPort "/dev/ttyb")
+(DeviceProperty tracker2 ReceiverBaseline     0.0700)
+(DeviceProperty tracker2 ReceiverLeftLeg      0.0625)
+(DeviceProperty tracker2 ReceiverHeight       0.0510)
+(DeviceProperty tracker2 ReceiverTopOffset    0.0000)
+(DeviceProperty tracker2 RealtimeSerialBuffer true)
+
+// Make the tracker2 device a slave of the tracker1 device.
+(DeviceProperty tracker1 Slave (Device tracker2))
+
+// Create a 2D mouse valuator.
+(NewDevice      mouse org.jogamp.java3d.input.Mouse2DValuator)
+(DeviceProperty mouse Components (Canvas3D center))
+
+// Create logical names for the available sensors.
+(NewSensor head    tracker1 0)
+(NewSensor mouse6d tracker2 0)
+(NewSensor mouse2d mouse    0)
+
+// Set the 6DOF mouse sensor hotspot in the local sensor coordinate system.
+(SensorProperty mouse6d Hotspot (0.00 0.00 -0.10))
+
+// Create a physical environment.
+(NewPhysicalEnvironment SampleSite)
+
+// Register the input devices and head tracker sensor.
+(PhysicalEnvironmentProperty SampleSite InputDevice tracker1)
+(PhysicalEnvironmentProperty SampleSite InputDevice tracker2)
+(PhysicalEnvironmentProperty SampleSite InputDevice mouse)
+(PhysicalEnvironmentProperty SampleSite HeadTracker head)
+
+// Define coexistence coordinates.
+(PhysicalEnvironmentProperty SampleSite CoexistenceToTrackerBase
+                              (TranslateRotate (Translate 0.0 -0.235 0.0)
+                                               (Rotate -50.0 0.0 0.0)))
+
+// Define the physical body.
+(NewPhysicalBody SiteUser)
+
+// Set the interpupilary distance.
+(PhysicalBodyProperty SiteUser StereoEyeSeparation 0.066)
+
+// Define the head location relative to the tracker mounted on the head.
+(PhysicalBodyProperty SiteUser HeadToHeadTracker ((1.0 0.0 0.0 0.000)
+                                                  (0.0 1.0 0.0 0.020)
+                                                  (0.0 0.0 1.0 0.018)))
+
+// Create a view platform behavior.  
+// 
+(NewViewPlatformBehavior vpb org.jogamp.java3d.utils.behaviors.vp.WandViewBehavior)
+
+(ViewPlatformBehaviorProperty vpb Sensor6D (Sensor mouse6d))
+(ViewPlatformBehaviorProperty vpb Sensor2D (Sensor mouse2d))
+
+(ViewPlatformBehaviorProperty vpb ButtonAction6D 1 GrabView)
+(ViewPlatformBehaviorProperty vpb ButtonAction6D 2 TranslateForward)
+(ViewPlatformBehaviorProperty vpb ButtonAction6D 0 TranslateBackward)
+
+(ViewPlatformBehaviorProperty vpb RotationCoords ViewPlatform)
+(ViewPlatformBehaviorProperty vpb ButtonAction2D 1 Translation)
+(ViewPlatformBehaviorProperty vpb ButtonAction2D 2 Scale)
+
+(ViewPlatformBehaviorProperty vpb EchoType Beam) 
+(ViewPlatformBehaviorProperty vpb EchoSize 0.004) 
+
+(ViewPlatformBehaviorProperty vpb EchoColor 1.0 0.7 0.0)
+(ViewPlatformBehaviorProperty vpb EchoTransparency 0.4)
+
+// Create a new view platform and set the view platform behavior.
+// 
+(NewViewPlatform vp)
+(ViewPlatformProperty vp ViewPlatformBehavior vpb)
+
+// Create a view.
+//
+(NewView       view0)
+(ViewProperty  view0   Screen                  center)
+(ViewProperty  view0   PhysicalEnvironment     SampleSite)
+(ViewProperty  view0   PhysicalBody            SiteUser)
+(ViewProperty  view0   ViewPlatform            vp)
+
+// Enable stereo viewing and head tracking.
+(ViewProperty  view0   StereoEnable            true)
+(ViewProperty  view0   TrackingEnable          True)
+
+ + diff --git a/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x1-window.html b/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x1-window.html new file mode 100644 index 0000000..3ff401f --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x1-window.html @@ -0,0 +1,70 @@ + + + + + j3d1x1-window config file + + + +
+/*
+ ************************************************************************
+ *  
+ * Java 3D configuration file for a conventional single screen, windowed
+ * desktop configuration.
+ *  
+ ************************************************************************
+ */
+
+(NewWindow window1 0)
+(WindowProperty window1 WindowSize (700.0 700.0))
+
+(NewView view1)
+(ViewProperty view1 Window window1)
+
+ + diff --git a/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x1.html b/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x1.html new file mode 100644 index 0000000..1f7f17b --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x1.html @@ -0,0 +1,69 @@ + + + + + j3d1x1 config file + + + +
+/*
+ ************************************************************************
+ *  
+ * Java 3D configuration file for a single fullscreen desktop configuration.
+ *  
+ ************************************************************************
+ */
+
+(NewWindow big 0)
+(WindowProperty big WindowSize NoBorderFullScreen)
+
+(NewView view0)
+(ViewProperty view0 Window big)
+
+ + diff --git a/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x2-flat.html b/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x2-flat.html new file mode 100644 index 0000000..9391af2 --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x2-flat.html @@ -0,0 +1,152 @@ + + + + + j3d1x2-flat config file + + + +
+/*
+ ************************************************************************
+ *  
+ * Java 3D configuration file for dual-screen (flat) desktop configuration
+ * with no head tracking.
+ *  
+ ************************************************************************
+ */
+
+// Create new screen objects and associate them with logical names and numbers.
+// These numbers are used as indices to retrieve the AWT GraphicsDevice from
+// the array that GraphicsEnvironment.getScreenDevices() returns.
+// 
+// NOTE: The GraphicsDevice order in the array is specific to the local
+// site and display system.
+// 
+(NewScreen left  0)
+(NewScreen right 1)
+
+// Set the screen dimensions.
+// 
+(ScreenProperty left  PhysicalScreenWidth  0.360)
+(ScreenProperty left  PhysicalScreenHeight 0.288)
+
+(ScreenProperty right PhysicalScreenWidth  0.360)
+(ScreenProperty right PhysicalScreenHeight 0.288)
+
+// Specify full screen windows.
+// 
+(ScreenProperty left  WindowSize NoBorderFullScreen)
+(ScreenProperty right WindowSize NoBorderFullScreen)
+
+// Set the TrackerBaseToImagePlate transforms for these screens.  This
+// transforms points in tracker base coordinates to each screen's image plate
+// coordinates, where the origin of the image plate is defined to be the lower
+// left corner of the screen with X increasing to the right, Y increasing to
+// the top, and Z increasing away from the screen.
+//
+// Without head or sensor tracking the tracker base is still needed as a fixed
+// frame of reference for describing the orientation and position of each
+// screen to the others.  The coexistence to tracker base transform is set to
+// identity by default, so the tracker base origin and orientation will also
+// set the origin and orientation of coexistence coordinates in the physical
+// world.
+//
+// The tracker base and center of coexistence is set here to the middle of the
+// edge shared by the two screens.
+//
+(ScreenProperty left  TrackerBaseToImagePlate
+                       (Translate 0.360 0.144 0.0))
+(ScreenProperty right TrackerBaseToImagePlate
+                       (Translate 0.000 0.144 0.0))
+
+// Sometimes it is desirable to include the bevels in between the monitors in
+// the TrackerBaseToImagePlate transforms, so that the abutting bevels obscure
+// the view of the virtual world instead of stretching it out between the
+// monitors.  For a bevel width of 4.5 cm on each monitor, the above commands
+// would become the following:
+// 
+// (ScreenProperty left  TrackerBaseToImagePlate
+//                        (Translate  0.405 0.144 0.0))
+// (ScreenProperty right TrackerBaseToImagePlate
+//                        (Translate -0.045 0.144 0.0))
+//
+// Conversely, a similar technique may be used to include overlap between the
+// screens.  This is useful for projection systems which use edge blending
+// to provide seamless integration between screens.
+
+
+// Create a view using the defined screens.
+// 
+(NewView view0)
+(ViewProperty view0 Screen left)
+(ViewProperty view0 Screen right)
+
+// Set the eyepoint relative to coexistence coordinates.  Here it is set 45cm
+// toward the user along Z, extending out from the midpoint of the edge shared
+// by the two screens.  This will create the appropriate skewed projection
+// frustums for each image plate.
+// 
+// If a planar display surface is all that is required, the same effect could
+// be achieved in a virtual screen enviroment such as Xinerama by simply
+// creating a canvas that spans both screens.  In some display environments the
+// use of a canvas that spans multiple physical screens may cause significant
+// performance degradation, however.
+// 
+// See j3d1x2-rot30 for an example of a non-planar configuration that cannot be
+// achieved through a single canvas spanning both screens.
+// 
+(ViewProperty view0 CenterEyeInCoexistence (0.0 0.0 0.45))
+
+(NewViewPlatform vp)
+(ViewPlatformProperty vp AllowPolicyRead true)
+(ViewPlatformProperty vp AllowLocalToVworldRead true)
+
+(ViewProperty view0 ViewPlatform vp)
+
+ + diff --git a/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x2-rot30.html b/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x2-rot30.html new file mode 100644 index 0000000..ca5fdd6 --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x2-rot30.html @@ -0,0 +1,111 @@ + + + + + j3d1x2-rot30 config file + + + +
+/*
+ ************************************************************************
+ *  
+ * Java 3D configuration file for a dual-screen desktop configuration
+ * with each screen rotated toward the other by 30 degrees about Y from
+ * planar.  The inside angle between them is 120 degrees.
+ *  
+ ************************************************************************
+ */
+
+// Create new screen objects and associate them with logical names and numbers.
+// These numbers are used as indices to retrieve the AWT GraphicsDevice from
+// the array that GraphicsEnvironment.getScreenDevices() returns.
+// 
+// NOTE: The GraphicsDevice order in the array is specific to the local
+// site and display system.
+// 
+(NewScreen left  0)
+(NewScreen right 1)
+
+// Set the available image areas for full screens.
+// 
+(ScreenProperty left  PhysicalScreenWidth  0.360)
+(ScreenProperty left  PhysicalScreenHeight 0.288)
+
+(ScreenProperty right PhysicalScreenWidth  0.360)
+(ScreenProperty right PhysicalScreenHeight 0.288)
+
+// Specify full screen windows.
+// 
+(ScreenProperty left  WindowSize NoBorderFullScreen)
+(ScreenProperty right WindowSize NoBorderFullScreen)
+
+// Set the TrackerBaseToImagePlate transforms for these screens.
+// 
+// The tracker base is set here to the middle of the edge shared by the two
+// screens.  Each screen is rotated 30 degrees toward the other about the
+// tracker base +Y axis, so that the tracker base +Z is centered between the
+// two screens.
+//
+(ScreenProperty left  TrackerBaseToImagePlate
+                       (RotateTranslate (Rotate     0.000 -30.000 0.0)
+                                        (Translate  0.360   0.144 0.0)))
+
+(ScreenProperty right TrackerBaseToImagePlate
+                       (RotateTranslate (Rotate     0.000  30.000 0.0)
+		                        (Translate  0.000   0.144 0.0)))
+
+
+// Create a view using the defined screens.
+// 
+(NewView view0)
+(ViewProperty view0 Screen left)
+(ViewProperty view0 Screen right)
+(ViewProperty view0 CenterEyeInCoexistence (0.0 0.0 0.45))
+
+ + diff --git a/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x3-cave-vr.html b/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x3-cave-vr.html new file mode 100644 index 0000000..7ad30c4 --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x3-cave-vr.html @@ -0,0 +1,243 @@ + + + + + j3d1x3-cave-vr config file + + + +
+/*
+ ************************************************************************
+ *  
+ * Java 3D configuration file for a cave environment with head tracking and
+ * stereo viewing.  This cave consists of 3 projectors with 3 screens to the
+ * left, front, and right of the user, all at 90 degrees to each other.
+ * 
+ * The projectors in Sun's VirtualPortal sample site are actually turned
+ * on their sides to get more height.  Screen 0 is rotated 90 degrees
+ * counter-clockwise, while screens 1 and 2 are rotated 90 degrees
+ * clockwise.
+ * 
+ ************************************************************************
+ */
+
+// Configure the head tracker.
+// 
+(NewDevice      tracker1 org.jogamp.java3d.input.LogitechTracker)
+(DeviceProperty tracker1 SerialPort "/dev/ttya") // Unix paths need quoting.
+(DeviceProperty tracker1 TransmitterBaseline            0.4600)
+(DeviceProperty tracker1 TransmitterLeftLeg             0.4400)
+(DeviceProperty tracker1 TransmitterCalibrationDistance 0.4120)
+
+// Configure an InputDevice to use for a 6 degree of freedom wand.
+// 
+(NewDevice      tracker2 org.jogamp.java3d.input.LogitechTracker)
+(DeviceProperty tracker2 SerialPort "/dev/ttyb")
+(DeviceProperty tracker2 ReceiverBaseline     0.0700)
+(DeviceProperty tracker2 ReceiverLeftLeg      0.0625)
+(DeviceProperty tracker2 ReceiverHeight       0.0510)
+(DeviceProperty tracker2 ReceiverTopOffset    0.0000)
+
+// Make the tracker2 device a slave of the tracker1 device.
+(DeviceProperty tracker1 Slave (Device tracker2))
+
+// Create logical names for the head tracker and wand sensors.  The last
+// argument is the sensor's index in the input device.
+// 
+(NewSensor head     tracker1 0)
+(NewSensor sensor6d tracker2 0)
+
+// Create new screen objects and associate them with logical names and numbers.
+// These numbers are used as indices to retrieve the AWT GraphicsDevice from
+// the array that GraphicsEnvironment.getScreenDevices() returns.
+// 
+// NOTE: The GraphicsDevice order in the array is specific to the local
+// site and display system.
+// 
+(NewScreen left    0)
+(NewScreen center  1)
+(NewScreen right   2)
+
+
+// Set the available image areas as well as their positition and orientation
+// relative to the tracker base.  From the orientation of a user standing
+// within this VirtualPortal site and facing the center screen, the tracker
+// base is along the vertical midline of the screen, 0.248 meters down from
+// the top edge, and 1.340 meters in front of it.  The tracker base is
+// oriented so that its +X axis points to the left, its +Y axis points toward
+// the screen, and its +Z axis points toward the floor.
+// 
+(ScreenProperty        left    PhysicalScreenWidth     2.480)
+(ScreenProperty        left    PhysicalScreenHeight    1.705)
+(ScreenProperty        left    WindowSize              NoBorderFullScreen)
+(ScreenProperty        left    TrackerBaseToImagePlate
+                                (( 0.0  0.0 -1.0  2.230)
+                                 ( 0.0 -1.0  0.0  1.340)
+                                 (-1.0  0.0  0.0  0.885)))
+
+(ScreenProperty        center  PhysicalScreenWidth     2.485)
+(ScreenProperty        center  PhysicalScreenHeight    1.745)
+(ScreenProperty        center  WindowSize              NoBorderFullScreen)
+(ScreenProperty        center  TrackerBaseToImagePlate
+                                (( 0.0  0.0  1.0  0.248)
+                                 (-1.0  0.0  0.0  0.885)
+                                 ( 0.0 -1.0  0.0  1.340)))
+
+(ScreenProperty        right   PhysicalScreenWidth     2.480)
+(ScreenProperty        right   PhysicalScreenHeight    1.775)
+(ScreenProperty        right   WindowSize              NoBorderFullScreen)
+(ScreenProperty        right   TrackerBaseToImagePlate
+                                (( 0.0  0.0  1.0  0.2488)
+                                 ( 0.0 -1.0  0.0  1.340)
+                                 ( 1.0  0.0  0.0  0.860)))
+
+// Create a physical environment.  This contains the available input devices,
+// audio devices, and sensors, and defines the coexistence coordinate system
+// for mapping between the virtual and physical worlds.
+// 
+(NewPhysicalEnvironment VirtualPortal)
+
+// Register the input device defined in this file and the sensor which will
+// drive head tracking.
+// 
+(PhysicalEnvironmentProperty VirtualPortal InputDevice tracker1)
+(PhysicalEnvironmentProperty VirtualPortal InputDevice tracker2)
+(PhysicalEnvironmentProperty VirtualPortal HeadTracker head)
+
+// Set the location of the center of coexistence relative to the tracker base.
+// Here it set to the center of the center screen.  The default view attach
+// policy of NOMINAL_SCREEN used by ConfiguredUniverse will place the origin of
+// the view platform in coexistence coordinates at the center of coexistence.
+// 
+(PhysicalEnvironmentProperty VirtualPortal
+                             CoexistenceToTrackerBase
+                                ((-1.0  0.0  0.0  0.000)
+                                 ( 0.0  0.0 -1.0  1.340)
+                                 ( 0.0 -1.0  0.0  0.994)))
+
+// Define the physical body.  The head origin is halfway between the eyes, with
+// X extending to the right, Y up, and positive Z extending into the skull.
+// 
+(NewPhysicalBody      LabRat)       
+(PhysicalBodyProperty LabRat StereoEyeSeparation .07)
+
+// Define the position and orientation of the head relative to the tracker
+// mounted on the head.
+// 
+(PhysicalBodyProperty LabRat HeadToHeadTracker 
+                                 ((-1.0  0.0  0.0 0.00)
+                                  ( 0.0  0.0 -1.0 0.05)
+                                  ( 0.0 -1.0  0.0 0.11)))
+
+// Create a view platform behavior for the 6DOF sensor.
+// 
+(NewViewPlatformBehavior vpb org.jogamp.java3d.utils.behaviors.vp.WandViewBehavior)
+
+(ViewPlatformBehaviorProperty vpb Sensor6D sensor6d)
+(ViewPlatformBehaviorProperty vpb ButtonAction6D 2 GrabView)
+(ViewPlatformBehaviorProperty vpb ButtonAction6D 1 TranslateForward)
+(ViewPlatformBehaviorProperty vpb ButtonAction6D 0 TranslateBackward)
+
+// Default normal translation speed is 0.1 physical meters per second.
+(ViewPlatformBehaviorProperty vpb TranslationSpeed
+                              1.0 PhysicalMeters PerSecond)
+
+// Default rotation coordinates are Sensor.
+(ViewPlatformBehaviorProperty vpb RotationCoords Head)
+
+// Nominal sensor transform for modified joystick RedBarron
+(SensorProperty sensor6d Hotspot (0.00 0.6 0.00))
+(ViewPlatformBehaviorProperty vpb NominalSensorRotation
+                                  ((-1.0  0.0  0.0)
+                                   ( 0.0  0.0 -1.0)
+                                   ( 0.0 -1.0  0.0)))
+
+// Default 6DOF sensor echo is Gnomon
+(ViewPlatformBehaviorProperty vpb EchoSize 0.015) 
+(ViewPlatformBehaviorProperty vpb EchoType Beam) 
+
+// Default 6DOF sensor echo color is white
+(ViewPlatformBehaviorProperty vpb EchoColor 1.0 0.7 0.0)
+
+// Default 6DOF sensor transparency is 0.0 (opaque)
+(ViewPlatformBehaviorProperty vpb EchoTransparency 0.4)
+
+// Create a new view platform and set the view platform behavior.
+// 
+(NewViewPlatform vp)
+(ViewPlatformProperty vp ViewPlatformBehavior vpb)
+
+// Now define the view.
+// 
+(NewView       view0)
+(ViewProperty  view0   Screen                  left)
+(ViewProperty  view0   Screen                  center)
+(ViewProperty  view0   Screen                  right)
+(ViewProperty  view0   PhysicalBody            LabRat)
+(ViewProperty  view0   PhysicalEnvironment     VirtualPortal)
+(ViewProperty  view0   ViewPlatform            vp)
+
+// Set the screen scale.  This is scale factor from virtual to physical
+// coordinates.
+// 
+(ViewProperty  view0   ScreenScalePolicy       SCALE_SCREEN_SIZE)
+
+// Alternative for explict scaling.
+// 
+//(ViewProperty  view0   ScreenScalePolicy       SCALE_EXPLICIT)
+//(ViewProperty  view0   ScreenScale             5.00)
+
+// Enable stereo viewing.  Enable head tracking to get the position of the eyes
+// with respect to coexistence.  Boolean values may be specified as either
+// true, True, false, or False.
+// 
+(ViewProperty    view0   StereoEnable            true)
+(ViewProperty    view0   TrackingEnable          True)
+
+ + diff --git a/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x3-cave.html b/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x3-cave.html new file mode 100644 index 0000000..9b0298b --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x3-cave.html @@ -0,0 +1,156 @@ + + + + + j3d1x3-cave config file + + + +
+/*
+ ************************************************************************
+ *  
+ * Java 3D configuration file for a cave environment.  This cave
+ * consists of 3 projectors with 3 screens to the left, front, and right
+ * of the user, all at 90 degrees to each other.
+ * 
+ * The projectors in the VirtualPortal sample site are actually turned
+ * on their sides to get more height.  Screen 0 is rotated 90 degrees
+ * counter-clockwise, while screens 1 and 2 are rotated 90 degrees
+ * clockwise.
+ * 
+ ************************************************************************
+ */
+
+// Create new screen objects and associate them with logical names and numbers.
+// These numbers are used as indices to retrieve the AWT GraphicsDevice from
+// the array that GraphicsEnvironment.getScreenDevices() returns.
+// 
+// NOTE: The GraphicsDevice order in the array is specific to the local
+// site and display system.
+// 
+(NewScreen              left    0)
+(NewScreen              center  1)
+(NewScreen              right   2)
+
+
+// Set the available image areas as well as their positition and orientation
+// relative to the tracker base.   Although this config file doesn't enable
+// head tracking, the tracker base is still needed as a point of reference to
+// describe the position and orientation of the screens relative to the
+// environment. 
+// 
+// From the orientation of a user standing within this VirtualPortal site and
+// facing the center screen, the tracker base is along the vertical midline of
+// the screen, 0.248 meters down from the top edge, and 1.340 meters in front
+// of it.  The tracker base is oriented so that its +X axis points to the left,
+// its +Y axis points toward the screen, and its +Z axis points toward the
+// floor.
+// 
+(ScreenProperty        left    PhysicalScreenWidth     2.480)
+(ScreenProperty        left    PhysicalScreenHeight    1.705)
+(ScreenProperty        left    WindowSize              NoBorderFullScreen)
+(ScreenProperty        left    TrackerBaseToImagePlate
+                                (( 0.0  0.0 -1.0  2.230)
+                                 ( 0.0 -1.0  0.0  1.340)
+                                 (-1.0  0.0  0.0  0.885)))
+
+(ScreenProperty        center  PhysicalScreenWidth     2.485)
+(ScreenProperty        center  PhysicalScreenHeight    1.745)
+(ScreenProperty        center  WindowSize              NoBorderFullScreen)
+(ScreenProperty        center  TrackerBaseToImagePlate
+                                (( 0.0  0.0  1.0  0.248)
+                                 (-1.0  0.0  0.0  0.885)
+                                 ( 0.0 -1.0  0.0  1.340)))
+
+(ScreenProperty        right   PhysicalScreenWidth     2.480)
+(ScreenProperty        right   PhysicalScreenHeight    1.775)
+(ScreenProperty        right   WindowSize              NoBorderFullScreen)
+(ScreenProperty        right   TrackerBaseToImagePlate
+                                (( 0.0  0.0  1.0  0.2488)
+                                 ( 0.0 -1.0  0.0  1.340)
+                                 ( 1.0  0.0  0.0  0.860)))
+
+// Set the location of the center of coexistence relative to the tracker base.
+// Here it set to the center of the center screen.  This config file will set
+// the location of the user's eyes relative to this point.  The default view
+// attach policy of NOMINAL_SCREEN used by ConfiguredUniverse will place the
+// origin of the view platform in coexistence coordinates at the center of
+// coexistence. 
+// 
+(NewPhysicalEnvironment      VirtualPortal)
+(PhysicalEnvironmentProperty VirtualPortal
+                             CoexistenceToTrackerBase
+                                ((-1.0  0.0  0.0  0.000)
+                                 ( 0.0  0.0 -1.0  1.340)
+                                 ( 0.0 -1.0  0.0  0.994)))
+
+// Now define the view.
+// 
+(NewView       view0)
+(ViewProperty  view0   Screen                  left)
+(ViewProperty  view0   Screen                  center)
+(ViewProperty  view0   Screen                  right)
+(ViewProperty  view0   PhysicalEnvironment     VirtualPortal)
+
+// Set the user eye position in the display environment.  It is set here to
+// 1.340 meters back from the center screen (directly under the tracker), and
+// 1.737 meters from the floor (about 5 ft 8.4 inches).
+//
+(ViewProperty  view0   CenterEyeInCoexistence  (0.0 0.494 1.340))
+
+// Explict scaling.
+// 
+(ViewProperty  view0   ScreenScalePolicy       SCALE_EXPLICIT)
+(ViewProperty  view0   ScreenScale             0.30)
+
+// No stereo viewing for this configuration.
+// 
+(ViewProperty  view0   StereoEnable            False)
+
+ + diff --git a/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x3-rot45.html b/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x3-rot45.html new file mode 100644 index 0000000..927dbd8 --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d1x3-rot45.html @@ -0,0 +1,122 @@ + + + + + j3d1x3-rot45 config file + + + +
+/*
+ ************************************************************************
+ *  
+ * Java 3D configuration file for 3 screens.  Left and right screens are
+ * rotated 45 degrees from the center screen.
+ *  
+ ************************************************************************
+ */
+
+// Create new screen objects and associate them with logical names and numbers.
+// These numbers are used as indices to retrieve the AWT GraphicsDevice from
+// the array that GraphicsEnvironment.getScreenDevices() returns.
+// 
+// NOTE: The GraphicsDevice order in the array is specific to the local
+// site and display system.
+// 
+(NewScreen left   0)
+(NewScreen center 1)
+(NewScreen right  2)
+
+// Set the available image areas for full screens.  
+// 
+(ScreenProperty left   PhysicalScreenWidth  0.360)
+(ScreenProperty left   PhysicalScreenHeight 0.288)
+
+(ScreenProperty center PhysicalScreenWidth  0.360)
+(ScreenProperty center PhysicalScreenHeight 0.288)
+
+(ScreenProperty right  PhysicalScreenWidth  0.360)
+(ScreenProperty right  PhysicalScreenHeight 0.288)
+
+// Specify full screen windows.
+// 
+(ScreenProperty left   WindowSize NoBorderFullScreen)
+(ScreenProperty center WindowSize NoBorderFullScreen)
+(ScreenProperty right  WindowSize NoBorderFullScreen)
+
+// Set the TrackerBaseToImagePlate transforms for these screens.
+// 
+// The tracker base and center of coexistence are set here to the middle of the
+// center screen. The basis vectors are aligned with the center screen image
+// plate.  The left and right screens are rotated 45 degrees toward each other
+// about their shared edges with the center screen.
+//
+(ScreenProperty center TrackerBaseToImagePlate
+                        (Translate 0.180000    0.144000 0.000000))
+
+// cos(45) * 0.360 * 0.5 = 0.127279; 0.360 + 0.127279 = 0.487279
+(ScreenProperty left  TrackerBaseToImagePlate
+                       (RotateTranslate
+		        (Rotate     0.000000 -45.000000 0.000000)
+                        (Translate  0.487279   0.144000 0.127279)))
+
+// cos(45) * 0.360 * 0.5 = 0.127279
+(ScreenProperty right TrackerBaseToImagePlate
+                       (RotateTranslate
+		        (Rotate     0.000000  45.000000 0.000000)
+                        (Translate -0.127279   0.144000 0.127279)))
+
+// Create a view using the defined screens.
+// 
+(NewView      view0)
+(ViewProperty view0 Screen left)
+(ViewProperty view0 Screen center)
+(ViewProperty view0 Screen right)
+(ViewProperty view0 CenterEyeInCoexistence (0.0 0.0 0.5))
+
+ + diff --git a/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d2x2-flat.html b/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d2x2-flat.html new file mode 100644 index 0000000..af6f62f --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/utils/universe/doc-files/j3d2x2-flat.html @@ -0,0 +1,147 @@ + + + + + j3d2x2-flat config file + + + +
+/*
+ ************************************************************************
+ *  
+ * Java 3D configuration file for 4 screen projection configuration
+ * arranged in a 2x2 power wall.
+ *  
+ ************************************************************************
+ */
+
+// Create new screen objects and associate them with logical names and numbers.
+// These numbers are used as indices to retrieve the AWT GraphicsDevice from
+// the array that GraphicsEnvironment.getScreenDevices() returns.
+// 
+// NOTE: The GraphicsDevice order in the array is specific to the local
+// site and display system.
+// 
+(NewScreen topleft     0)
+(NewScreen topright    1)
+(NewScreen bottomleft  3)
+(NewScreen bottomright 2)
+
+// Set the available image areas for full screens.  This is important when
+// precise scaling between objects in the virtual world and their projections
+// into the physical world is desired through use of explicit ScreenScale view
+// attributes.  The defaults are 0.365 meters for width and 0.292 meters for
+// height.
+// 
+(ScreenProperty topleft     PhysicalScreenWidth  0.912)
+(ScreenProperty topleft     PhysicalScreenHeight 0.680)
+
+(ScreenProperty topright    PhysicalScreenWidth  0.912)
+(ScreenProperty topright    PhysicalScreenHeight 0.680)
+
+(ScreenProperty bottomleft  PhysicalScreenWidth  0.912)
+(ScreenProperty bottomleft  PhysicalScreenHeight 0.685)
+
+(ScreenProperty bottomright PhysicalScreenWidth  0.912)
+(ScreenProperty bottomright PhysicalScreenHeight 0.685)
+
+
+// Specify full screen windows.
+//
+(ScreenProperty topleft     WindowSize NoBorderFullScreen)
+(ScreenProperty topright    WindowSize NoBorderFullScreen)
+(ScreenProperty bottomleft  WindowSize NoBorderFullScreen)
+(ScreenProperty bottomright WindowSize NoBorderFullScreen)
+
+// Set the TrackerBaseToImagePlate transforms for these screens.  This
+// transforms points in tracker base coordinates to each screen's image plate
+// coordinates, where the origin of the image plate is defined to be the lower
+// left corner of the screen with X increasing to the right, Y increasing to
+// the top, and Z increasing away from the screen.
+//
+// Without head or sensor tracking the tracker base is still needed as a point
+// of reference for describing the orientation and position of each screen to
+// the others.  The coexistence to tracker base transform is set to identity by
+// default, so the tracker base origin and orientation will also set the origin
+// and orientation of coexistence coordinates in the physical world.
+//
+// The tracker base and center of coexistence are set here to the center of the
+// 2x2 array with its basis vectors aligned to image plate coordinates.
+//
+(ScreenProperty topleft     TrackerBaseToImagePlate
+                             (Translate 0.912 0.000 0.0))
+(ScreenProperty topright    TrackerBaseToImagePlate
+                             (Translate 0.000 0.000 0.0))
+(ScreenProperty bottomleft  TrackerBaseToImagePlate
+                             (Translate 0.912 0.685 0.0))
+(ScreenProperty bottomright TrackerBaseToImagePlate
+                             (Translate 0.000 0.685 0.0))
+
+// Create a view using the defined screens.
+// 
+(NewView      view0)
+(ViewProperty view0 Screen  topleft)
+(ViewProperty view0 Screen  topright)
+(ViewProperty view0 Screen  bottomleft)
+(ViewProperty view0 Screen  bottomright)
+
+// Set the screen scale.  This is scale factor from virtual to physical
+// coordinates.  The default policy of SCALE_SCREEN_SIZE doesn't work well here
+// since in the 2x2 arrangement the individual screens are too small.  The
+// explicit scale factor below assumes a normalized range of object coordinates
+// of [-1.0 .. +1.0].
+// 
+(ViewProperty view0 ScreenScalePolicy       SCALE_EXPLICIT)
+(ViewProperty view0 ScreenScale             0.912)
+
+// Set the user eye position in the display environment.
+//
+(ViewProperty view0 CenterEyeInCoexistence  (0.0 0.0 1.0))
+
+ + diff --git a/src/main/javadoc/org/jogamp/java3d/utils/universe/package.html b/src/main/javadoc/org/jogamp/java3d/utils/universe/package.html new file mode 100644 index 0000000..06c31db --- /dev/null +++ b/src/main/javadoc/org/jogamp/java3d/utils/universe/package.html @@ -0,0 +1,12 @@ + + + + + org.jogamp.java3d.utils.universe + + +

Provides utility classes for setting up the Java 3D universe, +including the viewing configuration.

+ + -- cgit v1.2.3