Class IconLayer

    • Field Detail

      • iconsOverride

        protected java.lang.Iterable<WWIcon> iconsOverride
      • lastActiveIconsLists

        protected java.util.HashMap<GlobeStateKey,​java.util.Set<WWIcon>> lastActiveIconsLists
      • frameId

        protected long frameId
    • 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 overridden with a call to setIcons(java.lang.Iterable<gov.nasa.worldwind.render.WWIcon>), this will throw an exception.
        Parameters:
        icon - Icon to add.
        Throws:
        java.lang.IllegalArgumentException - If icon is null.
        java.lang.IllegalStateException - If a custom Iterable has been specified by a call to setIcons.
      • addIcons

        public void addIcons​(java.lang.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<gov.nasa.worldwind.render.WWIcon>), this will throw an exception.
        Parameters:
        icons - Icons to add.
        Throws:
        java.lang.IllegalArgumentException - If icons is null.
        java.lang.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<gov.nasa.worldwind.render.WWIcon>), this will throw an exception.
        Parameters:
        icon - Icon to remove.
        Throws:
        java.lang.IllegalArgumentException - If icon is null.
        java.lang.IllegalStateException - If a custom Iterable has been specified by a call to setIcons.
      • removeAllIcons

        public void removeAllIcons()
        Clears the contents of this layer's internal Icon collection. If this layer's internal collection has been overridden with a call to setIcons(java.lang.Iterable<gov.nasa.worldwind.render.WWIcon>), this will throw an exception.
        Throws:
        java.lang.IllegalStateException - If a custom Iterable has been specified by a call to setIcons.
      • clearIcons

        protected void clearIcons()
      • getIcons

        public java.lang.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<gov.nasa.worldwind.render.WWIcon>), 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. The view has no definitive order and may contain duplicate entries.
        Returns:
        Iterable of currently active Icons.
      • isRegionCulling

        public boolean isRegionCulling()
        Indicates whether the layer culls icons whose latitude-longitude location is outside the visible terrain area. See setRegionCulling(boolean) for a fuller description of region culling.
        Returns:
        regionCulling true if region culling is performed, otherwise false.
      • setRegionCulling

        public void setRegionCulling​(boolean regionCulling)
        Indicates whether the layer culls icons whose latitude-longitude location is outside the visible terrain area. This typically provides better performance when some icons are not in view. However, it might remove icons at high altitude over the horizon.
        Parameters:
        regionCulling - true if region culling is performed, otherwise false.
      • getActiveIcons

        protected java.lang.Iterable<WWIcon> getActiveIcons​(DrawContext dc)
        Returns the Iterable of currently active Icons. If the caller has specified a custom Iterable via setIcons(java.lang.Iterable<gov.nasa.worldwind.render.WWIcon>), 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, culled to eliminate those outside the current sector geometry.
        Parameters:
        dc - a current DrawContext.
        Returns:
        Iterable of currently active Icons.
      • setIcons

        public void setIcons​(java.lang.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.
      • getPedestal

        public Pedestal getPedestal()
        Returns the Pedestal used by this layers internal IconRenderer.
        Returns:
        Pedestal used by this layers internal IconRenderer.
      • 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.
      • isHorizonClippingEnabled

        public boolean isHorizonClippingEnabled()
        Indicates whether horizon clipping is performed.
        Returns:
        true if horizon clipping is performed, otherwise false.
        See Also:
        setHorizonClippingEnabled(boolean)
      • 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)
      • 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)
      • 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)
      • isPickFrustumClippingEnabled

        public boolean isPickFrustumClippingEnabled()
        Indicates whether picking volume clipping is performed.
        Returns:
        true if picking volume clipping is performed, otherwise false.
        See Also:
        setViewClippingEnabled(boolean)
      • setPickFrustumClippingEnabled

        public void setPickFrustumClippingEnabled​(boolean pickFrustumClippingEnabled)
        Indicates whether to render icons outside the picking volume when in pick mode. This increases performance by only drawing the icons within the picking volume when picking is enabled. Some important use cases demand that clipping not be performed. The default is false, picking volume clipping is not performed.
        Parameters:
        pickFrustumClippingEnabled - true if picking clipping should be performed, otherwise false.
      • 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.
      • 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.
      • 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.
      • 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.
      • isAllowBatchPicking

        public boolean isAllowBatchPicking()
        Indicates whether icons are picked as a batch and therefore a SelectEvent will contain only one icon from the layer. Batch picking is much faster than individual picking, so this attribute should be used judiciously.
        Returns:
        true if batch picking is allowed, otherwise false.
        See Also:
        setAllowBatchPicking(boolean)
      • setAllowBatchPicking

        public void setAllowBatchPicking​(boolean allowBatchPicking)
        Specifies whether batch picking is allowed. If so, a SelectEvent from the layer will contain only one icon even if several overlapping icons are at the pick point. Batch picking is much faster than individual picking so the default value is true.
        Parameters:
        allowBatchPicking - true if batch picking is allowed, otherwise false.