NASA World Wind

gov.nasa.worldwind.layers
Class CompassLayer

java.lang.Object
  extended by gov.nasa.worldwind.avlist.AVListImpl
      extended by gov.nasa.worldwind.WWObjectImpl
          extended by gov.nasa.worldwind.layers.AbstractLayer
              extended by gov.nasa.worldwind.layers.CompassLayer
All Implemented Interfaces:
AVList, Disposable, Layer, Restorable, WWObject, PropertyChangeListener, EventListener

public class CompassLayer
extends AbstractLayer


Field Summary
 
Fields inherited from class gov.nasa.worldwind.layers.AbstractLayer
screenCredit
 
Fields inherited from class gov.nasa.worldwind.avlist.AVListImpl
changeSupport
 
Constructor Summary
CompassLayer()
           
CompassLayer(String iconFilePath)
           
 
Method Summary
protected  void doPick(DrawContext dc, Point pickPoint)
           
protected  void doRender(DrawContext dc)
           
 int getBorderWidth()
           
 double getCompassToViewportScale()
          Returns the layer's compass-to-viewport scale factor.
 String getIconFilePath()
          Returns the layer's current icon file path.
 double getIconScale()
          Returns the icon scale factor.
 Vec4 getLocationCenter()
          Returns the current compass image location.
 Vec4 getLocationOffset()
          Returns the current location offset.
 String getPosition()
          Returns the current relative compass icon position.
 String getResizeBehavior()
          Returns the compass icon's resize behavior.
 boolean isShowTilt()
           
 void setBorderWidth(int borderWidth)
          Sets the compass icon offset from the viewport border.
 void setCompassToViewportScale(double compassToViewportScale)
          Sets the scale factor applied to the viewport size to determine the displayed size of the compass icon.
 void setIconFilePath(String iconFilePath)
          Sets the compass icon's image location.
 void setIconScale(double iconScale)
          Sets the scale factor defining the displayed size of the compass icon relative to the icon's width and height in its image file.
 void setLocationCenter(Vec4 locationCenter)
          Specifies the screen location of the compass image, relative to the image's center.
 void setLocationOffset(Vec4 locationOffset)
          Specifies a placement offset from the compass' position on the screen.
 void setPosition(String position)
          Sets the relative viewport location to display the compass icon.
 void setResizeBehavior(String resizeBehavior)
          Sets the behavior the layer uses to size the compass icon when the viewport size changes, typically when the World Wind window is resized.
 void setShowTilt(boolean showTilt)
           
 String toString()
           
 
Methods inherited from class gov.nasa.worldwind.layers.AbstractLayer
dispose, doPreRender, getExpiryTime, getMaxActiveAltitude, getMinActiveAltitude, getName, getOpacity, getRestorableState, getScale, getScreenCredit, isAtMaxResolution, isEnabled, isLayerActive, isLayerInView, isMultiResolution, isNetworkRetrievalEnabled, isPickEnabled, pick, preRender, render, restoreState, setEnabled, setExpiryTime, setMaxActiveAltitude, setMinActiveAltitude, setName, setNetworkRetrievalEnabled, setOpacity, setPickEnabled, setScreenCredit
 
Methods inherited from class gov.nasa.worldwind.WWObjectImpl
propertyChange
 
Methods inherited from class gov.nasa.worldwind.avlist.AVListImpl
addPropertyChangeListener, addPropertyChangeListener, clearList, copy, firePropertyChange, firePropertyChange, getDoubleValue, getDoubleValue, getEntries, getIntegerValue, getIntegerValue, getLongValue, getLongValue, getStringValue, getStringValue, getStringValue, getValue, getValues, hasKey, removeKey, removePropertyChangeListener, removePropertyChangeListener, setValue, setValues
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface gov.nasa.worldwind.avlist.AVList
addPropertyChangeListener, addPropertyChangeListener, clearList, copy, firePropertyChange, firePropertyChange, getEntries, getStringValue, getValue, getValues, hasKey, removeKey, removePropertyChangeListener, removePropertyChangeListener, setValue, setValues
 
Methods inherited from interface java.beans.PropertyChangeListener
propertyChange
 

Constructor Detail

CompassLayer

public CompassLayer()

CompassLayer

public CompassLayer(String iconFilePath)
Method Detail

doPick

protected void doPick(DrawContext dc,
                      Point pickPoint)
Overrides:
doPick in class AbstractLayer

doRender

protected void doRender(DrawContext dc)
Specified by:
doRender in class AbstractLayer

getBorderWidth

public int getBorderWidth()

getCompassToViewportScale

public double getCompassToViewportScale()
Returns the layer's compass-to-viewport scale factor.

Returns:
the compass-to-viewport scale factor

getIconFilePath

public String getIconFilePath()
Returns the layer's current icon file path.

Returns:
the icon file path

getIconScale

public double getIconScale()
Returns the icon scale factor. See setIconScale(double) for a description of the scale factor.

Returns:
the current icon scale

getLocationCenter

public Vec4 getLocationCenter()
Returns the current compass image location.

Returns:
the current location center. May be null.

getLocationOffset

public Vec4 getLocationOffset()
Returns the current location offset. See #setLocationOffset for a description of the offset and its values.

Returns:
the location offset. Will be null if no offset has been specified.

getPosition

public String getPosition()
Returns the current relative compass icon position.

Returns:
the current compass position

getResizeBehavior

public String getResizeBehavior()
Returns the compass icon's resize behavior.

Returns:
the icon's resize behavior

isShowTilt

public boolean isShowTilt()

setBorderWidth

public void setBorderWidth(int borderWidth)
Sets the compass icon offset from the viewport border.

Parameters:
borderWidth - the number of pixels to offset the compass icon from the borders indicated by setPosition(String).

setCompassToViewportScale

public void setCompassToViewportScale(double compassToViewportScale)
Sets the scale factor applied to the viewport size to determine the displayed size of the compass icon. This scale factor is used only when the layer's resize behavior is AVKey.RESIZE_STRETCH or AVKey.RESIZE_SHRINK_ONLY. The icon's width is adjusted to occupy the proportion of the viewport's width indicated by this factor. The icon's height is adjusted to maintain the compass image's native aspect ratio.

Parameters:
compassToViewportScale - the compass to viewport scale factor

setIconFilePath

public void setIconFilePath(String iconFilePath)
Sets the compass icon's image location. The layer first searches for this location in the current Java classpath. If not found then the specified path is assumed to refer to the local file system. found there then the

Parameters:
iconFilePath - the path to the icon's image file

setIconScale

public void setIconScale(double iconScale)
Sets the scale factor defining the displayed size of the compass icon relative to the icon's width and height in its image file. Values greater than 1 magify the image, values less than one minify it. If the layer's resize behavior is other than AVKey.RESIZE_KEEP_FIXED_SIZE, the icon's displayed sized is further affected by the value specified by setCompassToViewportScale(double) and the current viewport size.

Parameters:
iconScale - the icon scale factor

setLocationCenter

public void setLocationCenter(Vec4 locationCenter)
Specifies the screen location of the compass image, relative to the image's center. May be null. If this value is non-null, it overrides the position specified by #setPosition. The location is specified in pixels. The origin is the window's lower left corner. Positive X values are to the right of the origin, positive Y values are upwards from the origin. The final image location will be affected by the currently specified location offset if a non-null location offset has been specified (see #setLocationOffset).

Parameters:
locationCenter - the location center. May be null.
See Also:
#setPosition, #setLocationOffset

setLocationOffset

public void setLocationOffset(Vec4 locationOffset)
Specifies a placement offset from the compass' position on the screen.

Parameters:
locationOffset - the number of pixels to shift the compass image from its specified screen position. A positive X value shifts the image to the right. A positive Y value shifts the image up. If null, no offset is applied. The default offset is null.
See Also:
#setLocationCenter, #setPosition

setPosition

public void setPosition(String position)
Sets the relative viewport location to display the compass icon. Can be one of AVKey.NORTHEAST (the default), AVKey.NORTHWEST, AVKey.SOUTHEAST, or AVKey.SOUTHWEST. These indicate the corner of the viewport to place the icon.

Parameters:
position - the desired compass position

setResizeBehavior

public void setResizeBehavior(String resizeBehavior)
Sets the behavior the layer uses to size the compass icon when the viewport size changes, typically when the World Wind window is resized. If the value is AVKey.RESIZE_KEEP_FIXED_SIZE, the icon size is kept to the size specified in its image file scaled by the layer's current icon scale. If the value is AVKey.RESIZE_STRETCH, the icon is resized to have a constant size relative to the current viewport size. If the viewport shrinks the icon size decreases; if it expands then the icon file enlarges. The relative size is determined by the current compass-to-viewport scale and by the icon's image file size scaled by the current icon scale. If the value is AVKey.RESIZE_SHRINK_ONLY (the default), icon sizing behaves as for AVKey.RESIZE_STRETCH but the icon will not grow larger than the size specified in its image file scaled by the current icon scale.

Parameters:
resizeBehavior - the desired resize behavior

setShowTilt

public void setShowTilt(boolean showTilt)

toString

public String toString()
Overrides:
toString in class AbstractLayer

NASA World Wind