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 / j3d1x3-rot45.z / j3d1x3-rot45
Encoding:
Text File  |  2003-08-08  |  4.2 KB  |  106 lines

  1. /*
  2.  *    @(#)j3d1x3-rot45 1.1 01/10/19 20:24:38
  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 3 screens.  Left and right screens are
  44.  * rotated 45 degrees from the center screen.
  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 left   0)
  57. (NewScreen center 1)
  58. (NewScreen right  2)
  59.  
  60. // Set the available image areas for full screens.  
  61. // 
  62. (ScreenAttribute left   PhysicalScreenWidth  0.360)
  63. (ScreenAttribute left   PhysicalScreenHeight 0.288)
  64.  
  65. (ScreenAttribute center PhysicalScreenWidth  0.360)
  66. (ScreenAttribute center PhysicalScreenHeight 0.288)
  67.  
  68. (ScreenAttribute right  PhysicalScreenWidth  0.360)
  69. (ScreenAttribute right  PhysicalScreenHeight 0.288)
  70.  
  71. // Specify full screen windows.
  72. // 
  73. (ScreenAttribute left   WindowSize NoBorderFullScreen)
  74. (ScreenAttribute center WindowSize NoBorderFullScreen)
  75. (ScreenAttribute right  WindowSize NoBorderFullScreen)
  76.  
  77. // Set the TrackerBaseToImagePlate transforms for these screens.
  78. // 
  79. // The tracker base and center of coexistence are set here to the middle of the
  80. // center screen. The basis vectors are aligned with the center screen image
  81. // plate.  The left and right screens are rotated 45 degrees toward each other
  82. // about their shared edges with the center screen.
  83. //
  84. (ScreenAttribute center TrackerBaseToImagePlate
  85.                         (Translate 0.180000    0.144000 0.000000))
  86.  
  87. // cos(45) * 0.360 * 0.5 = 0.127279; 0.360 + 0.127279 = 0.487279
  88. (ScreenAttribute left  TrackerBaseToImagePlate
  89.                        (RotateTranslate
  90.                 (Rotate     0.000000 -45.000000 0.000000)
  91.                         (Translate  0.487279   0.144000 0.127279)))
  92.  
  93. // cos(45) * 0.360 * 0.5 = 0.127279
  94. (ScreenAttribute right TrackerBaseToImagePlate
  95.                        (RotateTranslate
  96.                 (Rotate     0.000000  45.000000 0.000000)
  97.                         (Translate -0.127279   0.144000 0.127279)))
  98.  
  99. // Create a view using the defined screens.
  100. // 
  101. (NewView       view0)
  102. (ViewAttribute view0 Screen left)
  103. (ViewAttribute view0 Screen center)
  104. (ViewAttribute view0 Screen right)
  105. (ViewAttribute view0 CenterEyeInCoexistence (0.0 0.0 0.5))
  106.