/*
 ************************************************************************
 *  
 * 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)