javax.media.j3d

## Class Screen3D

- java.lang.Object
- - javax.media.j3d.Screen3D

-     public class Screen3D
      extends java.lang.Object

  The Screen3D Object contains all information about a particular screen. All Canvas3D objects on the same physical screen (display device) refer to the same Screen3D object. Note that Screen3D has no public constructors--it is obtained from the Canvas3D via the getScreen3D method.

  Default values for Screen3D parameters are as follows:

  physical screen width : 0.0254/90.0 * screen width (in pixels)
  physical screen height : 0.0254/90.0 * screen height (in pixels)
  tracker base to image plate transform : identity
  head tracker to left image plate transform : identity
  head tracker to right image plate transform : identity
  off-screen size : (0,0)

  Offscreen Rendering

  New for Java 3D 1.2, an off-screen rendering mode allows rendering to a memory image, which is possibly larger than the screen. The setSize and getSize methods are defined specifically for this mode. Note that the off-screen size, physical width, and physical height must be set prior to rendering to the associated off-screen canvas. Failure to do so will result in an exception.

  Calibration Parameters

  The Screen3D object must be calibrated with the coexistence volume. The Screen3D class provides several methods for defining the calibration parameters.

  Measured Parameters

  The screen's (image plate's) physical width and height (in meters) is set once, typically by a browser, calibration program, system administrator, or system calibrator, not by an applet. These values must be determined by measuring the display's active image width and height. In the case of a head-mounted display, this should be the display's apparent width and height at the focal plane. These values are defined by the setPhysicalScreenWidth and setPhysicalScreenHeight methods.

  Head-tracker Coordinate System

  If head tracking is enabled, one of two parameters need to be specified:

  - If the view policy is SCREEN_VIEW, the tracker-base-to-image-plate coordinate system must be specified (setTrackerBaseToImagePlate method). This coordinate system must be recalibrated whenever the image plate moves relative to the tracker.

  - If the view policy is HMD_VIEW, the head-tracker-to-left-image-plate and head-tracker-to-right-image-plate coordinate systems must be specified (setHeadTrackerToLeftImagePlate and setHeadTrackerToRightImagePlate methods).

  Additional Information

  For more information, see the Introduction to the Java 3D API and View Model documents.

  See Also:
    `Canvas3D`, `Canvas3D.getScreen3D()`

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `getHeadTrackerToLeftImagePlate(Transform3D t)` Retrieves the head-tracker coordinate system to left image-plate coordinate system transform and copies it into the specified Transform3D object.
    `void` | `getHeadTrackerToRightImagePlate(Transform3D t)` Retrieves the head-tracker coordinate system to right image-plate coordinate system transform and copies it into the specified Transform3D object.
    `double` | `getPhysicalScreenHeight()` Retrieves the the screen's physical height in meters.
    `double` | `getPhysicalScreenWidth()` Retrieves the screen's physical width in meters.
    `java.awt.Dimension` | `getSize()` Retrieves the width and height (in pixels) of this Screen3D.
    `java.awt.Dimension` | `getSize(java.awt.Dimension rv)` Retrieves the width and height (in pixels) of this Screen3D and copies it into the specified Dimension object.
    `void` | `getTrackerBaseToImagePlate(Transform3D t)` Retrieves the tracker-base coordinate system to image-plate coordinate system transform and copies it into the specified Transform3D object.
    `void` | `setHeadTrackerToLeftImagePlate(Transform3D t)` Sets the head-tracker coordinate system to left image-plate coordinate system transform.
    `void` | `setHeadTrackerToRightImagePlate(Transform3D t)` Sets the head-tracker coordinate system to right image-plate coordinate system transform.
    `void` | `setPhysicalScreenHeight(double height)` Sets the screen physical height in meters.
    `void` | `setPhysicalScreenWidth(double width)` Sets the screen physical width in meters.
    `void` | `setSize(java.awt.Dimension d)` Sets the width and height (in pixels) of this off-screen Screen3D.
    `void` | `setSize(int width, int height)` Sets the width and height (in pixels) of this off-screen Screen3D.
    `void` | `setTrackerBaseToImagePlate(Transform3D t)` Sets the tracker-base coordinate system to image-plate coordinate system transform.
    `java.lang.String` | `toString()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Method Detail

    - #### getSize

          public java.awt.Dimension getSize()

      Retrieves the width and height (in pixels) of this Screen3D.
      Returns:
        a new Dimension object containing the width and height of this Screen3D.

    - #### getSize

          public java.awt.Dimension getSize(java.awt.Dimension rv)

      Retrieves the width and height (in pixels) of this Screen3D and copies it into the specified Dimension object.
      Parameters:
        `rv` - Dimension object into which the size of this Screen3D is copied. If `rv` is null, a new Dimension object is allocated.
      Returns:
        `rv`
      Since:
        Java 3D 1.2

    - #### setSize

          public void setSize(int width,
                     int height)

      Sets the width and height (in pixels) of this off-screen Screen3D. The default size for off-screen Screen3D objects is (0,0).
      NOTE: the size must be set prior to rendering to the associated off-screen canvas. Failure to do so will result in an exception.
      Parameters:
        `width` - the new width of this Screen3D object
        `height` - the new height of this Screen3D object
      Throws:
        `java.lang.IllegalStateException` - if this Screen3D is not in off-screen mode.
      Since:
        Java 3D 1.2

    - #### setSize

          public void setSize(java.awt.Dimension d)

      Sets the width and height (in pixels) of this off-screen Screen3D. The default size for off-screen Screen3D objects is (0,0).
      NOTE: the size must be set prior to rendering to the associated off-screen canvas. Failure to do so will result in an exception.
      Parameters:
        `d` - the new dimension of this Screen3D object
      Throws:
        `java.lang.IllegalStateException` - if this Screen3D is not in off-screen mode.
      Since:
        Java 3D 1.2

    - #### setPhysicalScreenWidth

          public void setPhysicalScreenWidth(double width)

      Sets the screen physical width in meters. In the case of a head-mounted display, this should be the apparent width at the focal plane.
      Parameters:
        `width` - the screen's physical width in meters

    - #### getPhysicalScreenWidth

          public double getPhysicalScreenWidth()

      Retrieves the screen's physical width in meters.
      Returns:
        the screen's physical width in meters

    - #### setPhysicalScreenHeight

          public void setPhysicalScreenHeight(double height)

      Sets the screen physical height in meters. In the case of a head-mounted display, this should be the apparent height at the focal plane.
      Parameters:
        `height` - the screen's physical height in meters

    - #### getPhysicalScreenHeight

          public double getPhysicalScreenHeight()

      Retrieves the the screen's physical height in meters.
      Returns:
        the screen's physical height in meters

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

    - #### setTrackerBaseToImagePlate

          public void setTrackerBaseToImagePlate(Transform3D t)

      Sets the tracker-base coordinate system to image-plate coordinate system transform. This transform is typically a calibration constant. This is used only in SCREEN_VIEW mode.
      Parameters:
        `t` - the new transform
      Throws:
        `BadTransformException` - if the transform is not rigid

    - #### getTrackerBaseToImagePlate

          public void getTrackerBaseToImagePlate(Transform3D t)

      Retrieves the tracker-base coordinate system to image-plate coordinate system transform and copies it into the specified Transform3D object.
      Parameters:
        `t` - the object that will receive the transform

    - #### setHeadTrackerToLeftImagePlate

          public void setHeadTrackerToLeftImagePlate(Transform3D t)

      Sets the head-tracker coordinate system to left image-plate coordinate system transform. This transform is typically a calibration constant. This is used only in HMD_VIEW mode.
      Parameters:
        `t` - the new transform
      Throws:
        `BadTransformException` - if the transform is not rigid

    - #### getHeadTrackerToLeftImagePlate

          public void getHeadTrackerToLeftImagePlate(Transform3D t)

      Retrieves the head-tracker coordinate system to left image-plate coordinate system transform and copies it into the specified Transform3D object.
      Parameters:
        `t` - the object that will receive the transform

    - #### setHeadTrackerToRightImagePlate

          public void setHeadTrackerToRightImagePlate(Transform3D t)

      Sets the head-tracker coordinate system to right image-plate coordinate system transform. This transform is typically a calibration constant. This is used only in HMD_VIEW mode.
      Parameters:
        `t` - the new transform
      Throws:
        `BadTransformException` - if the transform is not rigid

    - #### getHeadTrackerToRightImagePlate

          public void getHeadTrackerToRightImagePlate(Transform3D t)

      Retrieves the head-tracker coordinate system to right image-plate coordinate system transform and copies it into the specified Transform3D object.
      Parameters:
        `t` - the object that will receive the transform

Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved. Use is subject to license terms.