home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.5 Applications 2004 May / SGI IRIX 6.5 Applications 2004 May.iso / dist / java3d.idb / usr / demos / java / j3d / programs / examples / ConfiguredUniverse / j3d2x2-flat.z / j3d2x2-flat
Encoding:
Text File  |  2003-08-08  |  5.6 KB  |  131 lines

  1. /*
  2.  *    @(#)j3d2x2-flat 1.2 01/10/29 15:47:10
  3.  *
  4.  * Copyright (c) 1996-2001 Sun Microsystems, Inc. All Rights Reserved.
  5.  *
  6.  * Redistribution and use in source and binary forms, with or without
  7.  * modification, are permitted provided that the following conditions
  8.  * are met:
  9.  *
  10.  * - Redistributions of source code must retain the above copyright
  11.  *   notice, this list of conditions and the following disclaimer.
  12.  *
  13.  * - Redistribution in binary form must reproduce the above copyright
  14.  *   notice, this list of conditions and the following disclaimer in
  15.  *   the documentation and/or other materials provided with the
  16.  *   distribution.
  17.  *
  18.  * Neither the name of Sun Microsystems, Inc. or the names of
  19.  * contributors may be used to endorse or promote products derived
  20.  * from this software without specific prior written permission.
  21.  *
  22.  * This software is provided "AS IS," without a warranty of any
  23.  * kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND
  24.  * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,
  25.  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY
  26.  * EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES
  27.  * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
  28.  * DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN
  29.  * OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR
  30.  * FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR
  31.  * PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF
  32.  * LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE,
  33.  * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
  34.  *
  35.  * You acknowledge that Software is not designed,licensed or intended
  36.  * for use in the design, construction, operation or maintenance of
  37.  * any nuclear facility.
  38.  */
  39.  
  40. /*
  41.  ************************************************************************
  42.  *  
  43.  * Java 3D configuration file for 4 screen projection configuration
  44.  * arranged in a 2x2 power wall.
  45.  *  
  46.  ************************************************************************
  47.  */
  48.  
  49. // Create new screen objects and associate them with logical names and numbers.
  50. // These numbers are used as indices to retrieve the AWT GraphicsDevice from
  51. // the array that GraphicsEnvironment.getScreenDevices() returns.
  52. // 
  53. // NOTE: The GraphicsDevice order in the array is specific to the local
  54. // site and display system.
  55. // 
  56. (NewScreen topleft     0)
  57. (NewScreen topright    1)
  58. (NewScreen bottomleft  3)
  59. (NewScreen bottomright 2)
  60.  
  61. // Set the available image areas for full screens.  This is important when
  62. // precise scaling between objects in the virtual world and their projections
  63. // into the physical world is desired through use of explicit ScreenScale view
  64. // attributes.  The defaults are 0.365 meters for width and 0.292 meters for
  65. // height.
  66. // 
  67. (ScreenAttribute topleft     PhysicalScreenWidth  0.912)
  68. (ScreenAttribute topleft     PhysicalScreenHeight 0.680)
  69.  
  70. (ScreenAttribute topright    PhysicalScreenWidth  0.912)
  71. (ScreenAttribute topright    PhysicalScreenHeight 0.680)
  72.  
  73. (ScreenAttribute bottomleft  PhysicalScreenWidth  0.912)
  74. (ScreenAttribute bottomleft  PhysicalScreenHeight 0.685)
  75.  
  76. (ScreenAttribute bottomright PhysicalScreenWidth  0.912)
  77. (ScreenAttribute bottomright PhysicalScreenHeight 0.685)
  78.  
  79.  
  80. // Specify full screen windows.
  81. //
  82. (ScreenAttribute topleft     WindowSize NoBorderFullScreen)
  83. (ScreenAttribute topright    WindowSize NoBorderFullScreen)
  84. (ScreenAttribute bottomleft  WindowSize NoBorderFullScreen)
  85. (ScreenAttribute bottomright WindowSize NoBorderFullScreen)
  86.  
  87. // Set the TrackerBaseToImagePlate transforms for these screens.  This
  88. // transforms points in tracker base coordinates to each screen's image plate
  89. // coordinates, where the origin of the image plate is defined to be the lower
  90. // left corner of the screen with X increasing to the right, Y increasing to
  91. // the top, and Z increasing away from the screen.
  92. //
  93. // Without head or sensor tracking the tracker base is still needed as a point
  94. // of reference for describing the orientation and position of each screen to
  95. // the others.  The coexistence to tracker base transform is set to identity by
  96. // default, so the tracker base origin and orientation will also set the origin
  97. // and orientation of coexistence coordinates in the physical world.
  98. //
  99. // The tracker base and center of coexistence are set here to the center of the
  100. // 2x2 array with its basis vectors aligned to image plate coordinates.
  101. //
  102. (ScreenAttribute topleft     TrackerBaseToImagePlate
  103.                              (Translate 0.912 0.000 0.0))
  104. (ScreenAttribute topright    TrackerBaseToImagePlate
  105.                              (Translate 0.000 0.000 0.0))
  106. (ScreenAttribute bottomleft  TrackerBaseToImagePlate
  107.                              (Translate 0.912 0.685 0.0))
  108. (ScreenAttribute bottomright TrackerBaseToImagePlate
  109.                              (Translate 0.000 0.685 0.0))
  110.  
  111. // Create a view using the defined screens.
  112. // 
  113. (NewView       view0)
  114. (ViewAttribute view0 Screen  topleft)
  115. (ViewAttribute view0 Screen  topright)
  116. (ViewAttribute view0 Screen  bottomleft)
  117. (ViewAttribute view0 Screen  bottomright)
  118.  
  119. // Set the screen scale.  This is scale factor from virtual to physical
  120. // coordinates.  The default policy of SCALE_SCREEN_SIZE doesn't work well here
  121. // since in the 2x2 arrangement the individual screens are too small.  The
  122. // explicit scale factor below assumes a normalized range of object coordinates
  123. // of [-1.0 .. +1.0].
  124. // 
  125. (ViewAttribute view0 ScreenScalePolicy       SCALE_EXPLICIT)
  126. (ViewAttribute view0 ScreenScale             0.912)
  127.  
  128. // Set the user eye position in the display environment.
  129. //
  130. (ViewAttribute view0 CenterEyeInCoexistence  (0.0 0.0 1.0))
  131.