Class RenderableLayer

    • Field Detail

      • renderables

        protected java.util.Collection<Renderable> renderables
      • renderablesOverride

        protected java.lang.Iterable<Renderable> renderablesOverride
    • Constructor Detail

      • RenderableLayer

        public RenderableLayer()
        Creates a new RenderableLayer with a null delegateOwner
    • Method Detail

      • addRenderable

        public void addRenderable​(Renderable renderable)
        Adds the specified renderable to the end of this layer's internal collection. If this layer's internal collection has been overridden with a call to setRenderables(Iterable), this will throw an exception.

        If the renderable implements AVList, the layer forwards its property change events to the layer's property change listeners. Any property change listeners the layer attaches to the renderable are removed in removeRenderable(gov.nasa.worldwind.render.Renderable), removeAllRenderables(), or dispose().

        Parameters:
        renderable - Renderable to add.
        Throws:
        java.lang.IllegalArgumentException - If renderable is null.
        java.lang.IllegalStateException - If a custom Iterable has been specified by a call to setRenderables.
      • addRenderable

        public void addRenderable​(int index,
                                  Renderable renderable)
        Inserts the specified renderable at the specified index in this layer's internal collection. If this layer's internal collection has been overridden with a call to setRenderables(Iterable), this will throw an exception.

        If the renderable implements AVList, the layer forwards its property change events to the layer's property change listeners. Any property change listeners the layer attaches to the renderable are removed in removeRenderable(gov.nasa.worldwind.render.Renderable), removeAllRenderables(), or dispose().

        Parameters:
        index - the index at which to insert the specified renderable.
        renderable - Renderable to insert.
        Throws:
        java.lang.IllegalArgumentException - If renderable is null, if the index is less than zero, or if the index is greater than the number of renderables in this layer.
        java.lang.IllegalStateException - If a custom Iterable has been specified by a call to setRenderables.
      • addRenderables

        public void addRenderables​(java.lang.Iterable<? extends Renderable> renderables)
        Adds the contents of the specified renderables to this layer's internal collection. If this layer's internal collection has been overriden with a call to setRenderables(Iterable), this will throw an exception.

        If any of the renderables implement AVList, the layer forwards their property change events to the layer's property change listeners. Any property change listeners the layer attaches to the renderable are removed in removeRenderable(gov.nasa.worldwind.render.Renderable), removeAllRenderables(), or dispose().

        Parameters:
        renderables - Renderables to add.
        Throws:
        java.lang.IllegalArgumentException - If renderables is null.
        java.lang.IllegalStateException - If a custom Iterable has been specified by a call to setRenderables.
      • removeRenderable

        public void removeRenderable​(Renderable renderable)
        Removes the specified renderable from this layer's internal collection, if it exists. If this layer's internal collection has been overridden with a call to setRenderables(Iterable), this will throw an exception.

        If the renderable implements AVList, this stops forwarding the its property change events to the layer's property change listeners. Any property change listeners the layer attached to the renderable in addRenderable(gov.nasa.worldwind.render.Renderable) or addRenderables(Iterable) are removed.

        Parameters:
        renderable - Renderable to remove.
        Throws:
        java.lang.IllegalArgumentException - If renderable is null.
        java.lang.IllegalStateException - If a custom Iterable has been specified by a call to setRenderables.
      • removeAllRenderables

        public void removeAllRenderables()
        Clears the contents of this layer's internal Renderable collection. If this layer's internal collection has been overriden with a call to setRenderables(Iterable), this will throw an exception.

        If any of the renderables implement AVList, this stops forwarding their property change events to the layer's property change listeners. Any property change listeners the layer attached to the renderables in addRenderable(gov.nasa.worldwind.render.Renderable) or addRenderables(Iterable) are removed.

        Throws:
        java.lang.IllegalStateException - If a custom Iterable has been specified by a call to setRenderables.
      • clearRenderables

        protected void clearRenderables()
      • getNumRenderables

        public int getNumRenderables()
      • getRenderables

        public java.lang.Iterable<Renderable> getRenderables()
        Returns the Iterable of Renderables currently in use by this layer. If the caller has specified a custom Iterable via setRenderables(Iterable), this will returns a reference to that Iterable. If the caller passed setRenderables a null parameter, or if setRenderables has not been called, this returns a view of this layer's internal collection of Renderables.
        Returns:
        Iterable of currently active Renderables.
      • getActiveRenderables

        protected java.lang.Iterable<Renderable> getActiveRenderables()
        Returns the Iterable of currently active Renderables. If the caller has specified a custom Iterable via setRenderables(Iterable), this will returns a reference to that Iterable. If the caller passed setRenderables a null parameter, or if setRenderables has not been called, this returns a view of this layer's internal collection of Renderables.
        Returns:
        Iterable of currently active Renderables.
      • setRenderables

        public void setRenderables​(java.lang.Iterable<Renderable> renderableIterable)
        Overrides the collection of currently active Renderables with the specified renderableIterable. This layer will maintain a reference to renderableIterable strictly for picking and rendering. This layer will not modify the reference, or dispose of its contents. This will also clear and dispose of the internal collection of Renderables, and will prevent any modification to its contents via addRenderable, addRenderables, removeRenderables, or dispose.

        Unlike addRenderable(gov.nasa.worldwind.render.Renderable) or addRenderables(Iterable), this does not forward any of the renderable's property change events to the layer's property change listeners. Since the layer is not in control of the iIterable's contents, attaching property change listeners to the renderables could cause the them to hold dangling references to the layer. If any of the renderables in the Iterable rely on forwarding property change events for proper operation - such as AbstractBrowserBalloon - use addRenderables(Iterable) instead.

        If the specified renderableIterable is null, this layer reverts to maintaining its internal collection.

        Parameters:
        renderableIterable - 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 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 the contents of this layer's internal Renderable collection, but does not remove any elements from that collection.

        If any of layer's internal Renderables implement AVList, this stops forwarding their property change events to the layer's property change listeners. Any property change listeners the layer attached to the renderables in addRenderable(gov.nasa.worldwind.render.Renderable) or addRenderables(Iterable) are removed.

        Specified by:
        dispose in interface Disposable
        Overrides:
        dispose in class AbstractLayer
        Throws:
        java.lang.IllegalStateException - If a custom Iterable has been specified by a call to setRenderables.
      • 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)
      • onMessage

        public void onMessage​(Message message)
        Empty implementation of MessageListener.

        This implementation forwards the message to each Renderable that implements MessageListener.

        Specified by:
        onMessage in interface MessageListener
        Overrides:
        onMessage in class WWObjectImpl
        Parameters:
        message - The message that was received.