com.sun.j3d.utils.universe

## Class ViewingPlatform

- java.lang.Object
- - javax.media.j3d.SceneGraphObject
  - - javax.media.j3d.Node
    - - javax.media.j3d.Group
      - - javax.media.j3d.BranchGroup
        - - com.sun.j3d.utils.universe.ViewingPlatform

-     public class ViewingPlatform
      extends BranchGroup

  This class is used to set up the "view" side of a Java 3D scene graph. The ViewingPlatform object contains a MultiTransformGroup node to allow for a series of transforms to be linked together. To this structure the ViewPlatform is added as well as any geometry to associate with this view platform.
  See Also:
    `ViewPlatform`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected BranchGroup` | `avatarRoot` Used to keep track of added geometry.
    `protected BranchGroup` | `behaviors` Used to keep track of behaviors.
    `protected MultiTransformGroup` | `mtg` MultiTransformGroup that holds all TransformGroups between the BranchGroup and the View object.
    `protected PlatformGeometry` | `platformGeometry` Cached PlatformGeometry object.
    `protected BranchGroup` | `platformGeometryRoot` Used to keep track of added geometry.
    `protected SimpleUniverse` | `universe` The universe to which this viewing platform is attached
    `protected java.util.Hashtable` | `viewerList` Table of the Viewer objects.
    `protected ViewPlatform` | `viewPlatform` Cached ViewPlatform associated with this ViewingPlatform object.

    - ### Fields inherited from class javax.media.j3d.BranchGroup

      `ALLOW_DETACH`

    - ### Fields inherited from class javax.media.j3d.Group

      `ALLOW_CHILDREN_EXTEND, ALLOW_CHILDREN_READ, ALLOW_CHILDREN_WRITE, ALLOW_COLLISION_BOUNDS_READ, ALLOW_COLLISION_BOUNDS_WRITE`

    - ### Fields inherited from class javax.media.j3d.Node

      `ALLOW_AUTO_COMPUTE_BOUNDS_READ, ALLOW_AUTO_COMPUTE_BOUNDS_WRITE, ALLOW_BOUNDS_READ, ALLOW_BOUNDS_WRITE, ALLOW_COLLIDABLE_READ, ALLOW_COLLIDABLE_WRITE, ALLOW_LOCAL_TO_VWORLD_READ, ALLOW_LOCALE_READ, ALLOW_PARENT_READ, ALLOW_PICKABLE_READ, ALLOW_PICKABLE_WRITE, ENABLE_COLLISION_REPORTING, ENABLE_PICK_REPORTING`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ViewingPlatform()` Creates a default ViewingPlatform object.
    `ViewingPlatform(int numTransforms)` Creates the ViewingPlatform object.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `MultiTransformGroup` | `getMultiTransformGroup()` Returns the MultitransformGroup object for this ViewingPlatform object.
    `PlatformGeometry` | `getPlatformGeometry()` Returns the PlatformGeometry associated with this ViewingPlatform
    `SimpleUniverse` | `getUniverse()` Returns the Universe to which this ViewingPlatform is attached
    `Viewer[]` | `getViewers()` Returns the Viewers attached to this ViewingPlatform
    `ViewPlatform` | `getViewPlatform()` Returns the ViewPlatform node for this ViewingPlatform object.
    `ViewPlatformBehavior` | `getViewPlatformBehavior()` Returns the ViewPlatformBehavior
    `TransformGroup` | `getViewPlatformTransform()` Returns a reference to the "bottom most" transform in the MultiTransformGroup that is above the ViewPlatform node.
    `void` | `setNominalViewingTransform()` Sets the nominal viewing distance in the ViewPlatform transform based on the current field of view.
    `void` | `setPlatformGeometry(PlatformGeometry pg)` Assigns the geometry to associate with the ViewingPlatform.
    `void` | `setUniverse(SimpleUniverse universe)` Sets the Universe to which this ViewingPlatform is attached
    `void` | `setViewPlatform(ViewPlatform vp)` Sets the ViewPlatform node for this ViewingPlatform object.
    `void` | `setViewPlatformBehavior(ViewPlatformBehavior behavior)` Sets the ViewPlatformBehavior which will operate on the ViewPlatform transform (the TransformGroup returned by ViewingPlatform.getViewPlatformTransform()).

    - ### Methods inherited from class javax.media.j3d.BranchGroup

      `cloneNode, compile, detach, pickAll, pickAll, pickAllSorted, pickAllSorted, pickAny, pickAny, pickClosest, pickClosest`

    - ### Methods inherited from class javax.media.j3d.Group

      `addChild, getAllChildren, getAlternateCollisionTarget, getChild, getCollisionBounds, indexOfChild, insertChild, moveTo, numChildren, removeAllChildren, removeChild, removeChild, setAlternateCollisionTarget, setChild, setCollisionBounds`

    - ### Methods inherited from class javax.media.j3d.Node

      `cloneTree, cloneTree, cloneTree, cloneTree, cloneTree, cloneTree, duplicateNode, getBounds, getBoundsAutoCompute, getCollidable, getLocale, getLocalToVworld, getLocalToVworld, getParent, getPickable, setBounds, setBoundsAutoCompute, setCollidable, setPickable`

    - ### Methods inherited from class javax.media.j3d.SceneGraphObject

      `clearCapability, clearCapabilityIsFrequent, duplicateSceneGraphObject, getCapability, getCapabilityIsFrequent, getName, getUserData, isCompiled, isLive, setCapability, setCapabilityIsFrequent, setName, setUserData, toString, updateNodeReferences`

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

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

- - ### Field Detail

    - #### viewPlatform

          protected ViewPlatform viewPlatform

      Cached ViewPlatform associated with this ViewingPlatform object.

    - #### mtg

          protected MultiTransformGroup mtg

      MultiTransformGroup that holds all TransformGroups between the BranchGroup and the View object.

    - #### platformGeometryRoot

          protected BranchGroup platformGeometryRoot

      Used to keep track of added geometry. When geometry is added to the view platform, an addChild to this BranchGroup is performed.

    - #### avatarRoot

          protected BranchGroup avatarRoot

      Used to keep track of added geometry. When geometry is added for an avatar, an addChild to this BranchGroup is performed.

    - #### platformGeometry

          protected PlatformGeometry platformGeometry

      Cached PlatformGeometry object.

    - #### viewerList

          protected java.util.Hashtable viewerList

      Table of the Viewer objects.

    - #### behaviors

          protected BranchGroup behaviors

      Used to keep track of behaviors.
      Since:
        Java 3D 1.2.1

    - #### universe

          protected SimpleUniverse universe

      The universe to which this viewing platform is attached
      Since:
        Java 3D 1.3

  - ### Constructor Detail

    - #### ViewingPlatform

          public ViewingPlatform()

      Creates a default ViewingPlatform object. This consists of a MultiTransfromGroup node with one transform and a ViewPlatform object. The ViewPlatform is positioned at (0.0, 0.0, 0.0).

    - #### ViewingPlatform

          public ViewingPlatform(int numTransforms)

      Creates the ViewingPlatform object. This consists of a MultiTransfromGroup node with the specified number of transforms (all initialized to the identity transform). and a ViewPlatform object.
      Parameters:
        `numTransforms` - The number of transforms the MultiTransformGroup node should contain. If this number is less than 1, 1 is assumed.

  - ### Method Detail

    - #### setViewPlatform

          public void setViewPlatform(ViewPlatform vp)

      Sets the ViewPlatform node for this ViewingPlatform object.
      Parameters:
        `vp` - The ViewPlatform node to associate with this ViewingPlatform object.

    - #### getViewPlatform

          public ViewPlatform getViewPlatform()

      Returns the ViewPlatform node for this ViewingPlatform object.
      Returns:
        The ViewPlatform node associated with this ViewingPlatform object.

    - #### setPlatformGeometry

          public void setPlatformGeometry(PlatformGeometry pg)

      Assigns the geometry to associate with the ViewingPlatform. PlatformGeometry is used to hold any geometry to be associated with the ViewingPlatform. If the ViewingPlatform is to be the inside of a car, for instance, than the PlatformGeometry could be the dashboard of the car.
      Parameters:
        `pg` - The geometry to be associated with this ViewingPlatform. Passing in null has the effect of deleting any geometry associated with this ViewingPlatform.

    - #### getPlatformGeometry

          public PlatformGeometry getPlatformGeometry()

      Returns the PlatformGeometry associated with this ViewingPlatform
      Returns:
        The PlatformGeometry associated with this ViewingPlatform

    - #### getMultiTransformGroup

          public MultiTransformGroup getMultiTransformGroup()

      Returns the MultitransformGroup object for this ViewingPlatform object.
      Returns:
        The MultitransformGroup object.

    - #### getViewPlatformTransform

          public TransformGroup getViewPlatformTransform()

      Returns a reference to the "bottom most" transform in the MultiTransformGroup that is above the ViewPlatform node.
      Returns:
        The TransformGroup that is immediately above the ViewPlatform object.

    - #### setNominalViewingTransform

          public void setNominalViewingTransform()

      Sets the nominal viewing distance in the ViewPlatform transform based on the current field of view. If the ViewAttachPolicy is not the default of View.NOMINAL_HEAD, then this method has no effect.

      The ViewPlatform is moved back along Z so that objects at the origin spanning the normalized X range of -1.0 to +1.0 can be fully viewed across the width of the window. This is done by setting a translation of 1/(tan(fieldOfView/2)) in the ViewPlatform transform.

      If there is no Viewer object associated with this ViewingPlatform object the default field of view of PI/4.0 is used.

      NOTE: Support for multiple Viewer objects is not available. If multiple viewers are attached to this ViewingPlatform than a RuntimeException will be thrown.

    - #### setViewPlatformBehavior

          public void setViewPlatformBehavior(ViewPlatformBehavior behavior)

      Sets the ViewPlatformBehavior which will operate on the ViewPlatform transform (the TransformGroup returned by ViewingPlatform.getViewPlatformTransform()). The ViewPlatformBehavior may be set after the ViewingPlatform is setLive(). If a behavior is already present, it will be detached and it's setViewingPlatform method will be called with a parameter of null.
      Parameters:
        `behavior` - The ViewPlatformBehavior to add to the ViewingPlatform. null will remove the ViewingPlatform behavior.
      Since:
        Java 3D 1.2.1

    - #### getViewPlatformBehavior

          public ViewPlatformBehavior getViewPlatformBehavior()

      Returns the ViewPlatformBehavior
      Returns:
        the ViewPlatformBehavior for the ViewingPlatform. Returns null if there is no ViewPlatformBehavior set.
      Since:
        Java 3D 1.2.1

    - #### getViewers

          public Viewer[] getViewers()

      Returns the Viewers attached to this ViewingPlatform
      Returns:
        the Viewers attached to this viewing platform
      Since:
        Java 3D 1.3

    - #### getUniverse

          public SimpleUniverse getUniverse()

      Returns the Universe to which this ViewingPlatform is attached
      Returns:
        the Universe to which this ViewingPlatform is attached
      Since:
        Java 3D 1.3

    - #### setUniverse

          public void setUniverse(SimpleUniverse universe)

      Sets the Universe to which this ViewingPlatform is attached
      Parameters:
        `universe` - the Universe to which this ViewingPlatform is attached
      Since:
        Java 3D 1.3

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