NASA World Wind

gov.nasa.worldwind.layers
Class IconLayer

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.IconLayer
All Implemented Interfaces:
AVList, Disposable, Layer, Restorable, WWObject, PropertyChangeListener, EventListener

public class IconLayer
extends AbstractLayer

The IconLayer class manages a collection of WWIcon objects for rendering and picking. IconLayer delegates to its internal IconRenderer for rendering and picking operations.

See Also:
WWIcon, IconRenderer

Field Summary
 
Fields inherited from class gov.nasa.worldwind.layers.AbstractLayer
screenCredit
 
Fields inherited from class gov.nasa.worldwind.avlist.AVListImpl
changeSupport
 
Constructor Summary
IconLayer()
          Creates a new IconLayer with an empty collection of Icons.
 
Method Summary
 void addIcon(WWIcon icon)
          Adds the specified icon to this layer's internal collection.
 void addIcons(Iterable<WWIcon> icons)
          Adds the contents of the specified icons to this layer's internal collection.
protected  void doPick(DrawContext dc, Point pickPoint)
           
protected  void doRender(DrawContext dc)
           
 Iterable<WWIcon> getIcons()
          Returns the Iterable of Icons currently in use by this layer.
 double getOpacity()
          Returns the layer's opacity value, which is ignored by this layer the icon's image is assumed to indicate its opacity.
 Pedestal getPedestal()
          Returns the Pedestal used by this layers internal IconRenderer.
 boolean isAlwaysUseAbsoluteElevation()
          Indicates whether an icon's elevation is treated as an offset from the terrain or an absolute elevation above sea level.
 boolean isHorizonClippingEnabled()
          Indicates whether horizon clipping is performed.
 boolean isViewClippingEnabled()
          Indicates whether view volume clipping is performed.
 void removeAllIcons()
          Clears the contents of this layer's internal Icon collection.
 void removeIcon(WWIcon icon)
          Removes the specified icon from this layer's internal collection, if it exists.
 void setAlwaysUseAbsoluteElevation(boolean alwaysUseAbsoluteElevation)
          Normally, an icon's elevation is treated as an offset from the terrain when it is less than the globe's maximum elevation.
 void setHorizonClippingEnabled(boolean horizonClippingEnabled)
          Indicates whether to render icons beyond the horizon.
 void setIcons(Iterable<WWIcon> iconIterable)
          Overrides the collection of currently active Icons with the specified iconIterable.
 void setOpacity(double opacity)
          Opacity is not applied to layers of this type.
 void setPedestal(Pedestal pedestal)
          Sets the Pedestal used by this layers internal IconRenderer.
 void setViewClippingEnabled(boolean viewClippingEnabled)
          Indicates whether to render icons outside the view volume.
 String toString()
           
 
Methods inherited from class gov.nasa.worldwind.layers.AbstractLayer
dispose, doPreRender, getExpiryTime, getMaxActiveAltitude, getMinActiveAltitude, getName, getRestorableState, getScale, getScreenCredit, isAtMaxResolution, isEnabled, isLayerActive, isLayerInView, isMultiResolution, isNetworkRetrievalEnabled, isPickEnabled, pick, preRender, render, restoreState, setEnabled, setExpiryTime, setMaxActiveAltitude, setMinActiveAltitude, setName, setNetworkRetrievalEnabled, 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

IconLayer

public IconLayer()
Creates a new IconLayer with an empty collection of Icons.

Method Detail

addIcon

public void addIcon(WWIcon icon)
Adds the specified icon to this layer's internal collection. If this layer's internal collection has been overriden with a call to setIcons(java.lang.Iterable), this will throw an exception.

Parameters:
icon - Icon to add.
Throws:
IllegalArgumentException - If icon is null.
IllegalStateException - If a custom Iterable has been specified by a call to setIcons.

addIcons

public void addIcons(Iterable<WWIcon> icons)
Adds the contents of the specified icons to this layer's internal collection. If this layer's internal collection has been overriden with a call to setIcons(java.lang.Iterable), this will throw an exception.

Parameters:
icons - Icons to add.
Throws:
IllegalArgumentException - If icons is null.
IllegalStateException - If a custom Iterable has been specified by a call to setIcons.

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

getIcons

public Iterable<WWIcon> getIcons()
Returns the Iterable of Icons currently in use by this layer. If the caller has specified a custom Iterable via setIcons(java.lang.Iterable), this will returns a reference to that Iterable. If the caller passed setIcons a null parameter, or if setIcons has not been called, this returns a view of this layer's internal collection of Icons.

Returns:
Iterable of currently active Icons.

getOpacity

public double getOpacity()
Returns the layer's opacity value, which is ignored by this layer the icon's image is assumed to indicate its opacity.

Specified by:
getOpacity in interface Layer
Overrides:
getOpacity in class AbstractLayer
Returns:
The layer opacity, a value between 0 and 1.

getPedestal

public Pedestal getPedestal()
Returns the Pedestal used by this layers internal IconRenderer.

Returns:
Pedestal used by this layers internal IconRenderer.

isAlwaysUseAbsoluteElevation

public boolean isAlwaysUseAbsoluteElevation()
Indicates whether an icon's elevation is treated as an offset from the terrain or an absolute elevation above sea level.

Returns:
true if icon elevations are treated as absolute, false if they're treated as offsets from the terrain.

isHorizonClippingEnabled

public boolean isHorizonClippingEnabled()
Indicates whether horizon clipping is performed.

Returns:
true if horizon clipping is performed, otherwise false.
See Also:
setHorizonClippingEnabled(boolean)

isViewClippingEnabled

public boolean isViewClippingEnabled()
Indicates whether view volume clipping is performed.

Returns:
true if view volume clipping is performed, otherwise false.
See Also:
setViewClippingEnabled(boolean)

removeAllIcons

public void removeAllIcons()
Clears the contents of this layer's internal Icon collection. If this layer's internal collection has been overriden with a call to setIcons(java.lang.Iterable), this will throw an exception.

Throws:
IllegalStateException - If a custom Iterable has been specified by a call to setIcons.

removeIcon

public void removeIcon(WWIcon icon)
Removes the specified icon from this layer's internal collection, if it exists. If this layer's internal collection has been overriden with a call to setIcons(java.lang.Iterable), this will throw an exception.

Parameters:
icon - Icon to remove.
Throws:
IllegalArgumentException - If icon is null.
IllegalStateException - If a custom Iterable has been specified by a call to setIcons.

setAlwaysUseAbsoluteElevation

public void setAlwaysUseAbsoluteElevation(boolean alwaysUseAbsoluteElevation)
Normally, an icon's elevation is treated as an offset from the terrain when it is less than the globe's maximum elevation. Setting #setAlwaysUseAbsoluteElevation to true causes the elevation to be treated as an absolute elevation above sea level.

Parameters:
alwaysUseAbsoluteElevation - true to treat icon elevations as absolute, false to treat them as offsets from the terrain.

setHorizonClippingEnabled

public void setHorizonClippingEnabled(boolean horizonClippingEnabled)
Indicates whether to render icons beyond the horizon. If view culling is enabled, the icon is also tested for view volume inclusion. The default is false, horizon clipping is not performed.

Parameters:
horizonClippingEnabled - true if horizon clipping should be performed, otherwise false.
See Also:
setViewClippingEnabled(boolean)

setIcons

public void setIcons(Iterable<WWIcon> iconIterable)
Overrides the collection of currently active Icons with the specified iconIterable. This layer will maintain a reference to iconIterable strictly for picking and rendering. This layer will not modify the Iterable reference. However, this will clear the internal collection of Icons, and will prevent any modification to its contents via addIcon, addIcons, or removeIcons.

If the specified iconIterable is null, this layer will revert to maintaining its internal collection.

Parameters:
iconIterable - Iterable to use instead of this layer's internal collection, or null to use this layer's internal collection.

setOpacity

public void setOpacity(double opacity)
Opacity is not applied to layers of this type. The icon image is assumed to indicates its opacity.

Specified by:
setOpacity in interface Layer
Overrides:
setOpacity in class AbstractLayer
Parameters:
opacity - the current opacity value, which is ignored by this layer.

setPedestal

public void setPedestal(Pedestal pedestal)
Sets the Pedestal used by this layers internal IconRenderer.

Parameters:
pedestal - Pedestal to be used by this layers internal IconRenderer.

setViewClippingEnabled

public void setViewClippingEnabled(boolean viewClippingEnabled)
Indicates whether to render icons outside the view volume. This is primarily to control icon visibility beyond the far view clipping plane. Some important use cases demand that clipping not be performed. If horizon clipping is enabled, the icon is also tested for horizon clipping. The default is false, view volume clipping is not performed.

Parameters:
viewClippingEnabled - true if view clipping should be performed, otherwise false.
See Also:
setHorizonClippingEnabled(boolean)

toString

public String toString()
Overrides:
toString in class AbstractLayer

NASA World Wind