ucar.unidata.view.geoloc
Class NavigatedDisplay

java.lang.Object
  extended by ucar.visad.display.DisplayMaster
      extended by ucar.unidata.view.geoloc.NavigatedDisplay
Direct Known Subclasses:
GlobeDisplay, MapProjectionDisplay, TransectDisplay

public abstract class NavigatedDisplay
extends DisplayMaster

Provides support for a navigated VisAD DisplayImplJ3D for meteorological data.

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

Version:
$Revision: 1.100 $ $Date: 2007/04/24 14:00:56 $
Author:
Don Murray

Nested Class Summary
protected  class NavigatedDisplay.VerticalMapSet
          A specialized ScalarMapSet for the set of Vertical maps
 
Field Summary
static int BOTTOM_VIEW
          Bottom View
static String BOTTOM_VIEW_NAME
          Bottom View name
static String CURSOR_ALTITUDE
          The name of the altitude property.
static String CURSOR_LATITUDE
          The name of the latitude property.
static String CURSOR_LONGITUDE
          The name of the longitude property.
static int EAST_VIEW
          East View
static String EAST_VIEW_NAME
          East View name
static int MODE_2D
          Field for a 2D mode in Java2D
static int MODE_2Din3D
          Field for a 2D mode in Java3D
static int MODE_3D
          Field for a 3D mode
static int NORTH_VIEW
          North View
static String NORTH_VIEW_NAME
          North View name
static int SOUTH_VIEW
          South View
static String SOUTH_VIEW_NAME
          South View name
static int TOP_VIEW
          Top View
static String TOP_VIEW_NAME
          Top View name
static int WEST_VIEW
          West View
static String WEST_VIEW_NAME
          West View name
 
Fields inherited from class ucar.visad.display.DisplayMaster
behavior, defaultMouseFunctions, log_, POINT_MODE
 
Constructor Summary
protected NavigatedDisplay()
          Default Constructor
protected NavigatedDisplay(DisplayImpl display)
          Construct a NavigatedDisplay with the specified VisAD display
 
Method Summary
 void addVerticalMap(RealType verticalType)
          Method to add a new ScalarMap to the vertical coordinate (i.e., getDisplayAltitudeType is mapped to)..
 void animateMatrix(int myTimeStamp, double[] from, double[] to, EarthLocation finalLocation)
          Animate the matrix changes.
 void center(double x, double y)
          Center to x y
 void center(double x, double y, boolean animated)
          Center to x y
 void center(EarthLocation el)
          Move the center to the given earth location
 void center(EarthLocation el, boolean animated)
          Move the center to the given earth location
 void centerAndZoom(EarthLocation el, boolean animated, double zoomFactor)
          Move the center to the given earth location and zoom in
 void centerAndZoomTo(EarthLocation el, Real altitude, boolean animated)
          Center and zoom to
protected  void cursorMoved()
          Does nothing when the cursor changes.
 void enableClipping(boolean clip)
          Enable clipping of data at the box edges.
 void enableRubberBanding(boolean on)
          Toggle the use of RubberBandBoxing.
 void flythrough(float[][] pts)
          tmp
protected abstract  ScalarMap getAltitudeMap()
          Accessor method for the altitude ScalarMap (i.e., (RealType.Altitude -> getDisplayAltitudeType).
 boolean getAnimationStringOn()
          Deprecated. use #getAnimationStringVisible()
 boolean getAutoRotate()
          Get the autorotation.
 String getBottomViewName()
          Accessor method.
 boolean getBoxVisible()
          Get the box visibility.
 EarthLocation getCenterPoint()
          Get the center lat/lon/alt of the projection.
 Real getCursorAltitude()
          Gets the cursor altitude property.
 Real getCursorLatitude()
          Gets the cursor latitude property.
 Real getCursorLongitude()
          Gets the cursor longitude property.
abstract  DisplayRealType getDisplayAltitudeType()
          Accessor method for the DisplayAltitudeType (i.e., what RealType.Altitude is mapped to)..
 CoordinateSystem getDisplayCoordinateSystem()
          Get the display coordinate system that turns lat/lon/alt to x/y/z
abstract  DisplayRealType getDisplayLatitudeType()
          Accessor method for the DisplayLatitudeType (i.e., what RealType.Latitude is mapped to)..
abstract  DisplayRealType getDisplayLongitudeType()
          Accessor method for the DisplayLongitudeType (i.e., what RealType.Longitude is mapped to)..
 int getDisplayMode()
          See if this is a 2D or 3D display.
 EarthLocation getEarthLocation(double[] xyz)
          Get the EarthLocation of a point in XYZ space
 EarthLocation getEarthLocation(double x, double y, double z)
          Get the EarthLocation of a point in XYZ space
abstract  EarthLocation getEarthLocation(double x, double y, double z, boolean setZToZeroIfOverhead)
          Get the EarthLocation of a point in XYZ space
 EarthLocation getEarthLocation(RealTuple xyz)
          Get the EarthLocation of a point in XYZ space
 String getEastViewName()
          Accessor method.
 boolean getIsAnimating()
          See if this display is animating.
 Rectangle2D.Double getLatLonBox()
          Get the latlon box of the displayed area
 ucar.unidata.geoloc.LatLonRect getLatLonRect()
          Get the latlon box of the displayed area
 NavigatedDisplayToolBar getNavigationToolBar()
          Return a toolbar that can be used to move around in the display (zoom, pan, reset).
 String getNorthViewName()
          Accessor method.
 VisADRay getRay(int screenX, int screenY)
          Convert the screen coordinates to the ray
 double[] getRayDirection(int screenX, int screenY)
          Convert the screen coordinates to the direction
 double[] getRayPositionAtZ(VisADRay ray, double zValue)
          Get the position of the ray at a particular Z value.
 RubberBandBox getRubberBandBox()
          Retrieve the RubberBandBox being used in this component.
protected  float getScaledValue(ScalarMap map, float value)
          Return the real altitude from a ZAxis (or displayAltitudeType) value
 boolean getScalesVisible()
          Get the box visibility.
 double[] getScreenCenter()
          Get the x/y position of the center of the screen
 List<TwoFacedObject> getScreenCoordinates()
           
 int[] getScreenCoordinates(double[] position)
          Get the screen coordinates for the xyz location
 double[] getScreenLowerLeft()
          Get the x/y position of the right/center of the screen
 double[] getScreenLowerRight()
          Get the x/y position of the right/center of the screen
 double[] getScreenUpperLeft()
          Get the x/y position of the left/center of the screen
 double[] getScreenUpperRight()
          Get the x/y position of the right/center of the screen
 String getSouthViewName()
          Accessor method.
abstract  RealTuple getSpatialCoordinates(EarthLocation el)
          Returns the spatial (XYZ) coordinates of the particular EarthLocation
abstract  double[] getSpatialCoordinates(EarthLocation el, double[] xyz)
          Returns the spatial (XYZ) coordinates of the particular EarthLocation
 double[] getSpatialCoordinatesFromScreen(int screenX, int screenY)
          Convert the screen coordinates to visad coordinates at the given depth.
 double[] getSpatialCoordinatesFromScreen(int screenX, int screenY, double zDepth)
          Convert the screen coordinates to visad coordinates.
 String getTopViewName()
          Accessor method.
 double[] getVerticalRange()
          Get the range of the vertical coordinate (Altitude)
 Unit getVerticalRangeUnit()
          Get the Unit of the vertical range
 Rectangle2D.Double getVisadBox()
          Get the visad box of the displayed area
 String getWestViewName()
          Accessor method.
protected  void init(DisplayImpl display)
          Construct a NavigatedDisplay with the specified VisAD display
protected  void initializeClass()
          Set up the display.
 boolean isClippingEnabled()
          Check to see if clipping is enabled..
 boolean isPerspectiveView()
          Get the view to perspective or parallel..
 void moveToScreen(double x, double y, int sx, int sy)
          Move the x/y point to the x/y point of the the given screen coords
 void moveToScreen(double x, double y, int sx, int sy, boolean animated)
          Move the x/y point to the x/y point of the the given screen coords
 void moveToScreen(double x, double y, int sx, int sy, int times)
          Deprecated. dropped the times parameter.
protected  void pointerMoved(int x, int y)
          Does nothing when the pointer moves.
 void removeVerticalMap(RealType verticalType)
          Method to remove a new ScalarMap to the vertical coordinate (i.e., getDisplayAltitudeType is mapped to)..
 void rotateView(double[] matrix, double azimuth, double decAngle)
          Change point of view of a 3D display from the matrix supplied, using input angles (unit = degree): For example, a view from the southwest has azimuth of 225 and decAngle say 20 to 70 or so.
 void rotateView(double azimuth, double decAngle)
          Change point of view of a 3D VisAD display, using input angles (unit = degree): For example, a view from the southwest has azimuth of 225 and decAngle say 20 to 70 or so.
 void setAnimationStringOn(boolean visible)
          Deprecated. use #setAnimationStringVisible(boolean)
 void setAutoRotate(boolean rotate)
          Set the autorotation.
 void setBoxVisible(boolean on)
          Set the visibility of a surrounding box.
protected  void setCursorAltitude(Real altitude)
          Sets the cursor altitude property.
protected  void setCursorLatitude(Real latitude)
          Sets the cursor latitude property.
protected  void setCursorLongitude(Real longitude)
          Sets the cursor longitude property.
 void setCursorStringOn(boolean on)
          Toggle the cursor display readout on/off.
 void setForeground(Color color)
          Local implementation to set rubber band box color also
 void setMapArea(ucar.unidata.geoloc.ProjectionRect mapArea)
          Set the map area to be displayed in the box.
abstract  void setMapProjection(MapProjection mapProjection)
          Define the map projection using a MapProjection type CoordinateSystem.
 void setMapProjection(ucar.unidata.geoloc.ProjectionImpl projection)
          Define the map projection using a Projection interface
 void setPerspectiveView(boolean perspective)
          Set the view to perspective or parallel if this is a 3D display..
 void setRotateDelay(long millis)
          Set the rotation delay
protected  void setRubberBandBox(RubberBandBox box)
          Set the RubberBandBox being used in this component.
 void setScalesVisible(boolean on)
          Set the visibility of the axis scales.
protected  void setVerticalMapUnit(ScalarMap vertMap, Unit u)
          Set the vertical map unit
 void setVerticalRange(double min, double max)
          Set the range of the vertical coordinate
 void setVerticalRangeUnit(Unit newUnit)
          Set the Unit of the vertical range
abstract  void setView(int view)
          Set the view for 3D.
protected  void updateLocation(EarthLocation el)
          Update lat/lon/alt properties with the EarthLocation.
 
Methods inherited from class ucar.visad.display.DisplayMaster
addDisplayable, addDisplayListener, addKeyboardBehavior, addPropertyChangeListener, addPropertyChangeListener, addScalarMap, addScalarMaps, addVetoableChangeListener, addVetoableChangeListener, buildAnimationSet, dataChange, destroy, draw, ensureInactive, equals, finalize, firePropertyChange, firePropertyChange, getAnimationSetFromDisplayables, getAnimationStringVisible, getBackground, getComponent, getDisplay, getDisplayableCount, getDisplayables, getDisplayables, getDisplayAspect, getDisplayComponent, getForeground, getImage, getMouseBehavior, getOffscreenDimension, getProjectionMatrix, getSavedProjectionMatrix, getScreenBounds, getStereoAvailable, getWaitMessageVisible, handleMouseWheelMoved, hashCode, indexOf, init, is3D, isActive, isPointMode, printMatrix, printMe, rebuild, rebuildDisplay, reDisplayAll, removeDisplayable, removeDisplayables, removePropertyChangeListener, removePropertyChangeListener, removeScalarMap, removeScalarMaps, removeVetoableChangeListener, removeVetoableChangeListener, replaceScalarMap, reScale, resetMouseFunctions, resetProjection, rotate, rotateX, rotateY, rotateZ, saveCurrentDisplay, saveCurrentDisplay, saveCurrentDisplay, saveProjection, setActive, setAnimation, setAnimationStringVisible, setBackground, setDefaultMouseFunctions, setDisplayables, setDisplayables, setDisplayActive, setDisplayAspect, setDisplayInactive, setEyePosition, setKeyboardBehavior, setKeyboardEventMap, setKeyboardEventMap, setMouseFunctions, setOffscreenDimension, setPointMode, setProjectionMatrix, setRebuildNecessary, setWaitMessageVisible, setWheelEventMap, translate, zoom, zoom
 
Methods inherited from class java.lang.Object
clone, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CURSOR_LATITUDE

public static final String CURSOR_LATITUDE
The name of the latitude property.

See Also:
Constant Field Values

CURSOR_LONGITUDE

public static final String CURSOR_LONGITUDE
The name of the longitude property.

See Also:
Constant Field Values

CURSOR_ALTITUDE

public static final String CURSOR_ALTITUDE
The name of the altitude property.

See Also:
Constant Field Values

MODE_3D

public static final int MODE_3D
Field for a 3D mode

See Also:
Constant Field Values

MODE_2D

public static final int MODE_2D
Field for a 2D mode in Java2D

See Also:
Constant Field Values

MODE_2Din3D

public static final int MODE_2Din3D
Field for a 2D mode in Java3D

See Also:
Constant Field Values

BOTTOM_VIEW

public static final int BOTTOM_VIEW
Bottom View

See Also:
Constant Field Values

BOTTOM_VIEW_NAME

public static String BOTTOM_VIEW_NAME
Bottom View name


NORTH_VIEW

public static final int NORTH_VIEW
North View

See Also:
Constant Field Values

NORTH_VIEW_NAME

public static String NORTH_VIEW_NAME
North View name


EAST_VIEW

public static final int EAST_VIEW
East View

See Also:
Constant Field Values

EAST_VIEW_NAME

public static String EAST_VIEW_NAME
East View name


TOP_VIEW

public static final int TOP_VIEW
Top View

See Also:
Constant Field Values

TOP_VIEW_NAME

public static String TOP_VIEW_NAME
Top View name


SOUTH_VIEW

public static final int SOUTH_VIEW
South View

See Also:
Constant Field Values

SOUTH_VIEW_NAME

public static String SOUTH_VIEW_NAME
South View name


WEST_VIEW

public static final int WEST_VIEW
West View

See Also:
Constant Field Values

WEST_VIEW_NAME

public static String WEST_VIEW_NAME
West View name

Constructor Detail

NavigatedDisplay

protected NavigatedDisplay()
Default Constructor


NavigatedDisplay

protected NavigatedDisplay(DisplayImpl display)
                    throws VisADException,
                           RemoteException
Construct a NavigatedDisplay with the specified VisAD display

Parameters:
display - VisAD display for this NavigatedDisplay
Throws:
VisADException - VisAD error
RemoteException - remote error
Method Detail

init

protected void init(DisplayImpl display)
             throws VisADException,
                    RemoteException
Construct a NavigatedDisplay with the specified VisAD display

Parameters:
display - VisAD display for this NavigatedDisplay
Throws:
VisADException - VisAD error
RemoteException - remote error

initializeClass

protected void initializeClass()
                        throws VisADException,
                               RemoteException
Set up the display. Any additional work should be done in a subclass's intializeClass() method, which should call super.initializeClass() first.

Throws:
RemoteException - Java RMI problem
VisADException - Unable to create the display

getTopViewName

public String getTopViewName()
Accessor method.

Returns:
name for this view

getBottomViewName

public String getBottomViewName()
Accessor method.

Returns:
name for this view

getNorthViewName

public String getNorthViewName()
Accessor method.

Returns:
name for this view

getEastViewName

public String getEastViewName()
Accessor method.

Returns:
name for this view

getSouthViewName

public String getSouthViewName()
Accessor method.

Returns:
name for this view

getWestViewName

public String getWestViewName()
Accessor method.

Returns:
name for this view

getSpatialCoordinatesFromScreen

public double[] getSpatialCoordinatesFromScreen(int screenX,
                                                int screenY)
Convert the screen coordinates to visad coordinates at the given depth.

Parameters:
screenX - Screen x coordinate
screenY - Screen y coordinate
Returns:
visad coordinates.

getSpatialCoordinatesFromScreen

public double[] getSpatialCoordinatesFromScreen(int screenX,
                                                int screenY,
                                                double zDepth)
Convert the screen coordinates to visad coordinates.

Parameters:
screenX - Screen x coordinate
screenY - Screen y coordinate
zDepth - depth in the zbox
Returns:
visad coordinates.

getRayDirection

public double[] getRayDirection(int screenX,
                                int screenY)
Convert the screen coordinates to the direction

Parameters:
screenX - Screen x coordinate
screenY - Screen y coordinate
Returns:
direction vector

getRay

public VisADRay getRay(int screenX,
                       int screenY)
Convert the screen coordinates to the ray

Parameters:
screenX - Screen x coordinate
screenY - Screen y coordinate
Returns:
the ray

getScreenCoordinates

public int[] getScreenCoordinates(double[] position)
Get the screen coordinates for the xyz location

Parameters:
position - xyz location
Returns:
screen (x,y) coordinates

getDisplayMode

public int getDisplayMode()
See if this is a 2D or 3D display.

Returns:
display mode for this display (MODE_3D, MODE_2D, MODE_2Din3D)

setCursorStringOn

public void setCursorStringOn(boolean on)
Toggle the cursor display readout on/off. By default, the display is toggled off at construction. Lat/Lon/Altitude values are displayed with the NavigatedDisplayCursorReadout component..

Parameters:
on - true will display cursor position on the VisAD display (might be useful for debugging).
See Also:
NavigatedDisplayCursorReadout

setAnimationStringOn

public void setAnimationStringOn(boolean visible)
Deprecated. use #setAnimationStringVisible(boolean)

Toggle the animation string visibility..

Parameters:
visible - true to make it visible

getAnimationStringOn

public boolean getAnimationStringOn()
Deprecated. use #getAnimationStringVisible()

Return whether the animation string is visible or not.

Returns:
true if visible

getDisplayLatitudeType

public abstract DisplayRealType getDisplayLatitudeType()
Accessor method for the DisplayLatitudeType (i.e., what RealType.Latitude is mapped to)..

Returns:
the DisplayRealType that RealType.Latitude is mapped to

getDisplayLongitudeType

public abstract DisplayRealType getDisplayLongitudeType()
Accessor method for the DisplayLongitudeType (i.e., what RealType.Longitude is mapped to)..

Returns:
the DisplayRealType that RealType.Longitude is mapped to

getDisplayAltitudeType

public abstract DisplayRealType getDisplayAltitudeType()
Accessor method for the DisplayAltitudeType (i.e., what RealType.Altitude is mapped to)..

Returns:
the DisplayRealType that RealType.Altitude is mapped to

enableClipping

public void enableClipping(boolean clip)
Enable clipping of data at the box edges. Work is done in subclasses, but these should call super.enableClipping(clip) at the end..

Parameters:
clip - true to turn clipping on, otherwise off

isClippingEnabled

public boolean isClippingEnabled()
Check to see if clipping is enabled..

Returns:
true if clipping on, otherwise false

setMapProjection

public void setMapProjection(ucar.unidata.geoloc.ProjectionImpl projection)
                      throws VisADException,
                             RemoteException
Define the map projection using a Projection interface

Parameters:
projection - Projection to use
Throws:
VisADException - Couldn't create necessary VisAD object
RemoteException - Couldn't create a remote object

setMapProjection

public abstract void setMapProjection(MapProjection mapProjection)
                               throws VisADException,
                                      RemoteException
Define the map projection using a MapProjection type CoordinateSystem. Implementation will be subclass dependent.

Parameters:
mapProjection - map projection coordinate system
Throws:
VisADException - Couldn't create necessary VisAD object
RemoteException - Couldn't create a remote object

setMapArea

public void setMapArea(ucar.unidata.geoloc.ProjectionRect mapArea)
                throws VisADException,
                       RemoteException
Set the map area to be displayed in the box. Subclasses should implement this if they want this functionality. This implementation does nothing.

Parameters:
mapArea - ProjectionRect describing the map area to be displayed.
Throws:
VisADException - invalid navigation or VisAD error
RemoteException - Couldn't create a remote object

getAltitudeMap

protected abstract ScalarMap getAltitudeMap()
Accessor method for the altitude ScalarMap (i.e., (RealType.Altitude -> getDisplayAltitudeType).

Returns:
the ScalarMap that Altitude is mapped to

addVerticalMap

public void addVerticalMap(RealType verticalType)
                    throws VisADException,
                           RemoteException
Method to add a new ScalarMap to the vertical coordinate (i.e., getDisplayAltitudeType is mapped to).. Subclasses should override if they want to implement this. This implementation does nothing.

Parameters:
verticalType - RealType of the new vertical map
Throws:
RemoteException - Java RMI problem
VisADException - VisAD problem

removeVerticalMap

public void removeVerticalMap(RealType verticalType)
                       throws VisADException,
                              RemoteException
Method to remove a new ScalarMap to the vertical coordinate (i.e., getDisplayAltitudeType is mapped to).. Subclasses should override if they want to implement this. This implementation does nothing.

Parameters:
verticalType - RealType of the new vertical map
Throws:
RemoteException - Java RMI problem
VisADException - VisAD problem

setView

public abstract void setView(int view)
Set the view for 3D. The views are subject to each subclass-s implementation.

Parameters:
view - one of the static view fields (NORTH_VIEW, SOUTH_VIEW, .. etc).

setPerspectiveView

public void setPerspectiveView(boolean perspective)
Set the view to perspective or parallel if this is a 3D display..

Parameters:
perspective - true for perspective view

isPerspectiveView

public boolean isPerspectiveView()
Get the view to perspective or parallel..

Returns:
true if perpsective view

setRubberBandBox

protected void setRubberBandBox(RubberBandBox box)
Set the RubberBandBox being used in this component. To be used by subclasses that support rubberbanding.

Parameters:
box - RubberBandBox to use

getRubberBandBox

public RubberBandBox getRubberBandBox()
Retrieve the RubberBandBox being used in this component.

Returns:
RubberBandBox being used. Return null if display doesn't support rubberbanding.

enableRubberBanding

public void enableRubberBanding(boolean on)
                         throws VisADException,
                                RemoteException
Toggle the use of RubberBandBoxing. Use the direct manipulation mouse button (usually MB3) plus the CTRL key to draw the rubber band box. This will automagically translate and zoom the display to the region selected.

Parameters:
on - true to enable rubberbanding (on by default);
Throws:
RemoteException - Java RMI problem
VisADException - unable to toggle the rubber banding function

setVerticalRangeUnit

public void setVerticalRangeUnit(Unit newUnit)
                          throws VisADException,
                                 RemoteException
Set the Unit of the vertical range

Parameters:
newUnit - unit of range
Throws:
RemoteException - Java RMI problem
VisADException - VisAD problem

getVerticalRangeUnit

public Unit getVerticalRangeUnit()
Get the Unit of the vertical range

Returns:
unit of range

setVerticalRange

public void setVerticalRange(double min,
                             double max)
                      throws VisADException,
                             RemoteException
Set the range of the vertical coordinate

Parameters:
min - minimum value for vertical axis
max - maximum value for vertical axis
Throws:
RemoteException - Java RMI problem
VisADException - Unable to create the display

getVerticalRange

public double[] getVerticalRange()
Get the range of the vertical coordinate (Altitude)

Returns:
array of {min, max} range.

setForeground

public void setForeground(Color color)
Local implementation to set rubber band box color also

Overrides:
setForeground in class DisplayMaster
Parameters:
color - color for foreground

setBoxVisible

public void setBoxVisible(boolean on)
                   throws VisADException,
                          RemoteException
Set the visibility of a surrounding box. At construction, the box is set to be invisible if mode = 2D.

Parameters:
on - true if the box should be visible
Throws:
VisADException - Couldn't create the necessary VisAD object
RemoteException - If there was a problem making this change in a remote collaborative display.

getBoxVisible

public boolean getBoxVisible()
Get the box visibility.

Returns:
true if box is visible, otherwise false.

setScalesVisible

public void setScalesVisible(boolean on)
                      throws VisADException,
                             RemoteException
Set the visibility of the axis scales. Subclasses should override this if they don't support scales.

Parameters:
on - true if the box should be visible
Throws:
VisADException - Couldn't create the necessary VisAD object
RemoteException - If there was a problem making this change in a remote collaborative display.

getScalesVisible

public boolean getScalesVisible()
Get the box visibility.

Returns:
true if box is visible, otherwise false.

getCenterPoint

public EarthLocation getCenterPoint()
Get the center lat/lon/alt of the projection.

Returns:
center location

getEarthLocation

public EarthLocation getEarthLocation(RealTuple xyz)
Get the EarthLocation of a point in XYZ space

Parameters:
xyz - RealTuple with MathType RealTupleType.SpatialCartesian3DTuple)
Returns:
point in lat/lon/alt space.

getEarthLocation

public EarthLocation getEarthLocation(double[] xyz)
Get the EarthLocation of a point in XYZ space

Parameters:
xyz - double[3] of x,y,z coords.
Returns:
point in lat/lon/alt space.

getEarthLocation

public EarthLocation getEarthLocation(double x,
                                      double y,
                                      double z)
Get the EarthLocation of a point in XYZ space

Parameters:
x - x coord.
y - y coord.
z - z coord.
Returns:
point in lat/lon/alt space.

getEarthLocation

public abstract EarthLocation getEarthLocation(double x,
                                               double y,
                                               double z,
                                               boolean setZToZeroIfOverhead)
Get the EarthLocation of a point in XYZ space

Parameters:
x - x coord.
y - y coord.
z - z coord.
setZToZeroIfOverhead - If in the overhead view then set Z to 0
Returns:
point in lat/lon/alt space.

getSpatialCoordinates

public abstract RealTuple getSpatialCoordinates(EarthLocation el)
Returns the spatial (XYZ) coordinates of the particular EarthLocation

Parameters:
el - earth location to translate
Returns:
RealTuple of display coordinates.

getSpatialCoordinates

public abstract double[] getSpatialCoordinates(EarthLocation el,
                                               double[] xyz)
                                        throws VisADException,
                                               RemoteException
Returns the spatial (XYZ) coordinates of the particular EarthLocation

Parameters:
el - earth location to translate
xyz - buffer to put value in
Returns:
xyz
Throws:
RemoteException - If there was a problem making this change in a remote collaborative display.
VisADException - Couldn't create the necessary VisAD object

getScaledValue

protected float getScaledValue(ScalarMap map,
                               float value)
Return the real altitude from a ZAxis (or displayAltitudeType) value

Parameters:
map - map for scaling
value - value to scale
Returns:
scaled value

setCursorLatitude

protected void setCursorLatitude(Real latitude)
                          throws VisADException,
                                 RemoteException
Sets the cursor latitude property. Called by subclasses.

Parameters:
latitude - The cursor latitude.
Throws:
RemoteException - Java RMI problem
VisADException - VisAD problem

getCursorLatitude

public Real getCursorLatitude()
Gets the cursor latitude property.

Returns:
The currently-selected latitude. May be null.

setCursorLongitude

protected void setCursorLongitude(Real longitude)
                           throws VisADException,
                                  RemoteException
Sets the cursor longitude property. Called by subclasses.

Parameters:
longitude - The cursor longitude.
Throws:
RemoteException - Java RMI problem
VisADException - VisAD problem

getCursorLongitude

public Real getCursorLongitude()
Gets the cursor longitude property.

Returns:
The currently-selected longitude. May be null.

setCursorAltitude

protected void setCursorAltitude(Real altitude)
                          throws VisADException,
                                 RemoteException
Sets the cursor altitude property. Called by subclasses.

Parameters:
altitude - The cursor altitude.
Throws:
RemoteException - Java RMI problem
VisADException - VisAD problem

getCursorAltitude

public Real getCursorAltitude()
Gets the cursor altitude property.

Returns:
The currently-selected altitude. May be null.

getIsAnimating

public boolean getIsAnimating()
See if this display is animating.

Returns:
true if animating

animateMatrix

public void animateMatrix(int myTimeStamp,
                          double[] from,
                          double[] to,
                          EarthLocation finalLocation)
Animate the matrix changes. Go through N steps, and set the projection matrix to be step/N percent between the from and to values.

Parameters:
myTimeStamp - So we only have one running
from - The original matrix
to - The dest matrix
finalLocation - final location to animate to

getScreenCenter

public double[] getScreenCenter()
                         throws VisADException,
                                RemoteException
Get the x/y position of the center of the screen

Returns:
x/y of screen center
Throws:
RemoteException - On badness
VisADException - On badness

getScreenCoordinates

public List<TwoFacedObject> getScreenCoordinates()
                                          throws VisADException,
                                                 RemoteException
Throws:
VisADException
RemoteException

getScreenUpperLeft

public double[] getScreenUpperLeft()
                            throws VisADException,
                                   RemoteException
Get the x/y position of the left/center of the screen

Returns:
x/y of screen left
Throws:
RemoteException - On badness
VisADException - On badness

getScreenUpperRight

public double[] getScreenUpperRight()
                             throws VisADException,
                                    RemoteException
Get the x/y position of the right/center of the screen

Returns:
x/y of screen right
Throws:
RemoteException - On badness
VisADException - On badness

getScreenLowerLeft

public double[] getScreenLowerLeft()
                            throws VisADException,
                                   RemoteException
Get the x/y position of the right/center of the screen

Returns:
x/y of screen right
Throws:
RemoteException - On badness
VisADException - On badness

getScreenLowerRight

public double[] getScreenLowerRight()
                             throws VisADException,
                                    RemoteException
Get the x/y position of the right/center of the screen

Returns:
x/y of screen right
Throws:
RemoteException - On badness
VisADException - On badness

getLatLonBox

public Rectangle2D.Double getLatLonBox()
                                throws VisADException,
                                       RemoteException
Get the latlon box of the displayed area

Returns:
lat lon box or null if it can't be determined
Throws:
RemoteException - On badness
VisADException - On badness

getLatLonRect

public ucar.unidata.geoloc.LatLonRect getLatLonRect()
                                             throws VisADException,
                                                    RemoteException
Get the latlon box of the displayed area

Returns:
lat lon box or null if it can't be determined
Throws:
RemoteException - On badness
VisADException - On badness

getVisadBox

public Rectangle2D.Double getVisadBox()
                               throws VisADException,
                                      RemoteException
Get the visad box of the displayed area

Returns:
visad box
Throws:
RemoteException - On badness
VisADException - On badness

center

public void center(double x,
                   double y)
Center to x y

Parameters:
x - X
y - Y

center

public void center(double x,
                   double y,
                   boolean animated)
Center to x y

Parameters:
x - X
y - Y
animated - Should animate the move

moveToScreen

public void moveToScreen(double x,
                         double y,
                         int sx,
                         int sy,
                         int times)
Deprecated. dropped the time