aboutsummaryrefslogtreecommitdiffstats
path: root/src/ConfiguredUniverse/j3d1x1-behavior
diff options
context:
space:
mode:
Diffstat (limited to 'src/ConfiguredUniverse/j3d1x1-behavior')
-rw-r--r--src/ConfiguredUniverse/j3d1x1-behavior144
1 files changed, 144 insertions, 0 deletions
diff --git a/src/ConfiguredUniverse/j3d1x1-behavior b/src/ConfiguredUniverse/j3d1x1-behavior
new file mode 100644
index 0000000..403b221
--- /dev/null
+++ b/src/ConfiguredUniverse/j3d1x1-behavior
@@ -0,0 +1,144 @@
+/*
+ * @(#)j3d1x1-behavior 1.2 01/10/29 15:32:55
+ *
+ * Copyright (c) 1996-2001 Sun Microsystems, Inc. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistribution in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Sun Microsystems, Inc. or the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * This software is provided "AS IS," without a warranty of any
+ * kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND
+ * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY
+ * EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES
+ * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
+ * DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN
+ * OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR
+ * FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR
+ * PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF
+ * LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE,
+ * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+ *
+ * You acknowledge that Software is not designed,licensed or intended
+ * for use in the design, construction, operation or maintenance of
+ * any nuclear facility.
+ */
+
+/*
+ ************************************************************************
+ *
+ * Java 3D configuration file for single fullscreen desktop configuration.
+ * A view platform behavior is created and configured here as well.
+ *
+ ************************************************************************
+ */
+
+// Create a new screen object and associate it with a logical name and a
+// number. This number is used as an index 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 center 0)
+
+// Create a fullscreen window
+//
+(ScreenAttribute center WindowSize NoBorderFullScreen)
+
+// Set the available image area for the full screen.
+//
+(ScreenAttribute center PhysicalScreenWidth 0.360)
+(ScreenAttribute center PhysicalScreenHeight 0.288)
+
+// Set the TrackerBaseToImagePlate transform for this screen. The coexistence
+// to tracker base transform is identity by default, so the tracker base origin
+// and orientation will also set the origin and orientation of coexistence
+// coordinates in the physical world. This is the primary purpose of setting
+// this transform when neither head tracking nor multiple screens are being
+// used.
+//
+// The tracker base and center of coexistence are set here to the middle of the
+// screen's image plate. Their basis vectors are aligned with the image plate
+// basis vectors. The physical eyepoint position will be set relative to
+// coexistence coordinates below.
+//
+(ScreenAttribute center TrackerBaseToImagePlate
+ (Translate 0.180 0.144 0.000))
+
+// Create a view using the defined screen.
+//
+(NewView view0)
+(ViewAttribute view0 Screen center)
+
+// Set the eyepoint relative to coexistence coordinates. Here it is set 45cm
+// toward the user along +Z. Skewed projections can be set by by offsetting
+// the eyepoint along X and Y.
+//
+(ViewAttribute view0 CenterEyeInCoexistence (0.0 0.0 0.45))
+
+// 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.
+//
+// Attributes defined by the abstract ViewPlatformBehavior superclass itself
+// can be set directly with the ViewPlatformBehaviorAttribute command. The
+// details of the subclass implementation are not known to ConfiguredUniverse,
+// so any configuration information needed by such a subclass is set by the
+// ViewPlatformBehaviorProperty command. The property name specified by that
+// command is taken to be a method name of the subclass and invoked through
+// introspection.
+//
+// View platform behaviors often need sensors or canvases as event sources to
+// drive the behavior action. An implementation of ViewPlatformBehavior always
+// gets the current ViewingPlatform through the setViewingPlatform() method.
+// 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 retrived by calling the ViewingPlatform method
+// getUniverse(), checking to see if the returned SimpleUniverse is a
+// ConfiguredUniverse, and then calling its getNamedSensors() method.
+//
+(NewViewPlatformBehavior vpb com.sun.j3d.utils.behaviors.vp.OrbitBehavior)
+
+// Set the scheduling bounds to be a BoundingSphere with its center at
+// (0.0 0.0 0.0) and a radius of 100 meters.
+//
+(ViewPlatformBehaviorAttribute vpb SchedulingBounds
+ (BoundingSphere (0.0 0.0 0.0) 100.0))
+
+// 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)
+(ViewPlatformAttribute vp ViewPlatformBehavior vpb)