Class MapProjectionDisplayJ3D


public class MapProjectionDisplayJ3D extends MapProjectionDisplay
Provides a navigated VisAD DisplayImpl for displaying data. The Projection or MapProjection provides the transformation from lat/lon space to xy space. There are two modes that can be used with this display - MODE_3D (Java 3D) and MODE_2Din3D (2D in Java 3D). Performance is better in Java 3D modes. In the 3D mode, RealType.Altitude is mapped to the display Z axis.

Any displayable data must be able to map to RealType.Latitude, RealType.Longitude and/or RealType.Altitude.

This Display also supports a RubberBandBox in Java 3D for panning and zooming.

Version:
$Revision: 1.36 $ $Date: 2007/07/31 15:11:25 $
Author:
Don Murray
See Also:
  • Constructor Details

    • MapProjectionDisplayJ3D

      public MapProjectionDisplayJ3D() throws VisADException, RemoteException
      Constructs the default instance. The default instance is based on a LatLonProjection in 3D mode where Z is mapped to Altitude.
      Throws:
      VisADException - Couldn't create necessary VisAD object
      RemoteException - Couldn't create a remote object
    • MapProjectionDisplayJ3D

      public MapProjectionDisplayJ3D(int mode) throws VisADException, RemoteException
      Constructs an instance with a LatLonProjection with the specified mode.
      Parameters:
      mode - mode for display (MODE_3D, MODE_2Din3D)
      Throws:
      VisADException - Couldn't create necessary VisAD object
      RemoteException - Couldn't create a remote object
    • MapProjectionDisplayJ3D

      public MapProjectionDisplayJ3D(ucar.unidata.geoloc.ProjectionImpl projection, int mode) throws VisADException, RemoteException
      Constructs an instance with the specified Projection and mode.
      Parameters:
      projection - map projection
      mode - mode for display (MODE_3D, MODE_2Din3D)
      Throws:
      VisADException - Couldn't create necessary VisAD object
      RemoteException - Couldn't create a remote object
    • MapProjectionDisplayJ3D

      public MapProjectionDisplayJ3D(MapProjection projection, int mode) throws VisADException, RemoteException
      Constructs an instance with the specified MapProjection CoordinateSystem and mode.
      Parameters:
      projection - map projection CS
      mode - mode for display (MODE_3D, MODE_2Din3D)
      Throws:
      VisADException - Couldn't create necessary VisAD object
      RemoteException - Couldn't create a remote object
    • MapProjectionDisplayJ3D

      public MapProjectionDisplayJ3D(MapProjection projection, int mode, boolean offscreen, Dimension dimension) throws VisADException, RemoteException
      ctor
      Parameters:
      projection - The projection to use
      mode - 3D/2D mode
      offscreen - Are we in offscreen mode
      dimension - Size of offscreen image
      Throws:
      RemoteException - On badness
      VisADException - On badness
    • MapProjectionDisplayJ3D

      public MapProjectionDisplayJ3D(MapProjection projection, int mode, boolean offscreen, Dimension dimension, GraphicsDevice screen) throws VisADException, RemoteException
      ctor
      Parameters:
      projection - The projection to use
      mode - 3D/2D mode
      offscreen - Are we in offscreen mode
      dimension - Size of offscreen image
      screen - Graphics device to create on
      Throws:
      RemoteException - On badness
      VisADException - On badness
  • Method Details

    • initializeClass

      protected void initializeClass() throws VisADException, RemoteException
      Set up the display called by constructor
      Overrides:
      initializeClass in class MapProjectionDisplay
      Throws:
      RemoteException
      VisADException
    • addKeyboardBehavior

      public void addKeyboardBehavior(KeyboardBehavior behavior)
      Add a keyboard behavior to this display
      Specified by:
      addKeyboardBehavior in class MapProjectionDisplay
      Parameters:
      behavior - behavior to add
    • enableClipping

      public void enableClipping(boolean clip)
      Enable clipping of data at the box edges.
      Overrides:
      enableClipping in class NavigatedDisplay
      Parameters:
      clip - true to turn clipping on, otherwise off
    • getView

      public javax.media.j3d.View getView()
      Description copied from class: NavigatedDisplay
      Get the View
      Overrides:
      getView in class NavigatedDisplay
      Returns:
      the View
    • setPerspectiveView

      public void setPerspectiveView(boolean perspectiveView)
      Set the view to perspective or parallel if this is a 3D display..
      Overrides:
      setPerspectiveView in class NavigatedDisplay
      Parameters:
      perspectiveView - true for perspective view
    • isPerspectiveView

      public boolean isPerspectiveView()
      Get the view to perspective or parallel..
      Overrides:
      isPerspectiveView in class NavigatedDisplay
      Returns:
      true if perpsective view (MODE_3D only)
    • setView

      public void setView(int view)
      Set the view for 3D. The views are based on the original display as follows:
                              NORTH
                            _________
                          W |       | E
                          E |       | A
                          S |       | S
                          T |_______| T
                              SOUTH
       
      Overrides:
      setView in class MapProjectionDisplay
      Parameters:
      view - one of the static view fields (NORTH_VIEW, SOUTH_VIEW, .. etc).
    • getStereoAvailable

      public boolean getStereoAvailable()
      Determine if this MapDisplay can do stereo..
      Overrides:
      getStereoAvailable in class DisplayMaster
      Returns:
      true if the graphics device can do stereo
    • setEyePosition

      public void setEyePosition(double position)
      Method for setting the eye position for a 3D stereo view.
      Overrides:
      setEyePosition in class DisplayMaster
      Parameters:
      position - x position of each eye (left negative, right positive).
    • setClipDistanceFront

      public void setClipDistanceFront(double value)
      Description copied from class: NavigatedDisplay
      Set the ClipDistanceFront property.
      Overrides:
      setClipDistanceFront in class NavigatedDisplay
      Parameters:
      value - The new value for ClipDistanceFront
    • setClipDistanceBack

      public void setClipDistanceBack(double value)
      Description copied from class: NavigatedDisplay
      Set the ClipDistanceBack property.
      Overrides:
      setClipDistanceBack in class NavigatedDisplay
      Parameters:
      value - The new value for ClipDistanceBack
    • checkClipDistance

      public void checkClipDistance()