Class CachedRenderableLayer

  • All Implemented Interfaces:
    AVList, Disposable, MessageListener, Layer, Restorable, WWObject, java.beans.PropertyChangeListener, java.util.EventListener

    public class CachedRenderableLayer
    extends AbstractLayer
    Holds a collection of Renderables and manages local caching of them. Provides searching for Renderables by sector, location or name.

    NOTE: This class is experimental and not fully implemented. You should not use it now.

    • Constructor Detail

      • CachedRenderableLayer

        public CachedRenderableLayer​(Sector coverage)
        Constructs a layer instance.
        Parameters:
        coverage - the geographic area covered by the layer's Renderables.
        Throws:
        java.lang.IllegalArgumentException - if the coverage sector is null.
      • CachedRenderableLayer

        public CachedRenderableLayer​(Sector coverage,
                                     int numLevels)
        Constructs a layer instance.
        Parameters:
        coverage - the geographic area covered by the layer's Renderables.
        numLevels - the depth of the tree used to sort the Renderables.
        Throws:
        java.lang.IllegalArgumentException - if the coverage sector is null or the number of levels is less than 1;
    • Method Detail

      • hasItems

        public boolean hasItems()
        Indictes whether the layer contains Renderables.
        Returns:
        true if the layer contains Renderables, otherwise false.
      • add

        public void add​(Renderable item,
                        java.lang.String name)
        Adds a named Renderable to the layer. The Renderable can subsequently participate in a name search of the layer.
        Parameters:
        item - the Renderable to add.
        name - a name for the Renderable. May be null, in which case the item has no name.
        Throws:
        java.lang.IllegalArgumentException - if the item is null or does not implement GeographicExtent.
        See Also:
        add(gov.nasa.worldwind.render.Renderable)
      • remove

        public void remove​(Renderable item)
        Remove a Renderable from the layer if the Renderable is in the layer.
        Parameters:
        item - the Renderable to remove
        See Also:
        removeByName(String)
      • removeByName

        public void removeByName​(java.lang.String name)
        Remove a named Renderable from the layer if it is in the layer.
        Parameters:
        name - the name of the Renderable to remove. If null, no Renderable is removed.
        See Also:
        remove(gov.nasa.worldwind.render.Renderable)
      • getAllRenderables

        public java.lang.Iterable<? extends Renderable> getAllRenderables()
        Returns all Renderables in the layer.
        Returns:
        an Iterable over all the Renderables in the layer.
      • getByName

        public Renderable getByName​(java.lang.String name)
        Searches the layer for a named Renderable.
        Parameters:
        name - the name to search for. If null, no search is performed and null is returned.
        Returns:
        the Renderable of the given name, or null if no Renderable with the name is in the layer.
      • setOpacity

        public void setOpacity​(double opacity)
        Opacity is not applied to layers of this type because each renderable typically has its own opacity control.
        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 because each of its renderables typiically has its own opacity control.
        Specified by:
        getOpacity in interface Layer
        Overrides:
        getOpacity in class AbstractLayer
        Returns:
        The layer opacity, a value between 0 and 1.
      • dispose

        public void dispose()
        Disposes any Renderables implementing @{link Dispose} and removes all Renderables from the layer.
        Specified by:
        dispose in interface Disposable
        Overrides:
        dispose in class AbstractLayer
      • disposeRenderables

        protected void disposeRenderables()
      • doPreRender

        protected void doPreRender​(DrawContext dc,
                                   java.lang.Iterable<? extends Renderable> renderables)
      • doPick

        protected void doPick​(DrawContext dc,
                              java.lang.Iterable<? extends Renderable> renderables,
                              java.awt.Point pickPoint)
      • doRender

        protected void doRender​(DrawContext dc,
                                java.lang.Iterable<? extends Renderable> renderables)