Class AbstractLayer

    • Constructor Detail

      • AbstractLayer

        public AbstractLayer()
    • Method Detail

      • isEnabled

        public boolean isEnabled()
        Description copied from interface: Layer
        Indicates whether the layer is enabled for rendering and selection.
        Specified by:
        isEnabled in interface Layer
        Returns:
        true if the layer is enabled, else false.
      • isPickEnabled

        public boolean isPickEnabled()
        Description copied from interface: Layer
        Indicates whether the layer performs selection during picking.

        Most layers enable picking by default. However, this becomes inconvenient for SurfaceImage and SurfaceImageLayer} when the image covers a large area because the view input handlers detect the surface image rather than the terrain as the top picked object, and will not respond to the user's attempts at navigation. The solution is to disable picking for the layer.

        Specified by:
        isPickEnabled in interface Layer
        Returns:
        true if picking is enabled, else false.
      • setPickEnabled

        public void setPickEnabled​(boolean pickable)
        Description copied from interface: Layer
        Controls whether the layer should perform picking.
        Specified by:
        setPickEnabled in interface Layer
        Parameters:
        pickable - true if the layer should perform picking, else false.
      • setEnabled

        public void setEnabled​(boolean enabled)
        Description copied from interface: Layer
        Controls whether the layer is enabled for rendering and selection.
        Specified by:
        setEnabled in interface Layer
        Parameters:
        enabled - true if the layer is enabled, else false.
      • getName

        public java.lang.String getName()
        Description copied from interface: Layer
        Returns the layer's name, as specified in the most recent call to Layer.setName(java.lang.String).
        Specified by:
        getName in interface Layer
        Returns:
        the layer's name.
      • setName

        public void setName​(java.lang.String name)
        Description copied from interface: Layer
        Set the layer's name. The name is a convenience attribute typically used to identify the layer in user interfaces. By default, a layer has no name.
        Specified by:
        setName in interface Layer
        Parameters:
        name - the name to assign to the layer.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • getOpacity

        public double getOpacity()
        Description copied from interface: Layer
        Returns the layer's opacity, the degree to which it is blended with underlying layers.

        Many layers apply special usage of opacity, and some ignore it in favor of the opacity settings of their internal renderables. See the description of this method in specific layers to determine usage there.

        Specified by:
        getOpacity in interface Layer
        Returns:
        The layer's opacity, a value between 0 and 1.
      • setOpacity

        public void setOpacity​(double opacity)
        Description copied from interface: Layer
        Sets the layer's opacity, the degree to which it is blended with underlying layers.

        Many layers apply special usage of opacity, and some ignore it in favor of the opacity settings of their internal renderables. See the description of this method in specific layers to determine usage there.

        Specified by:
        setOpacity in interface Layer
        Parameters:
        opacity - The layer opacity, a value between 0 and 1. 0 indicates non-opaque (fully transparent), 1 indicates fully opaque. Values between 0 and 1 indicate partial opacity.
      • getMinActiveAltitude

        public double getMinActiveAltitude()
        Description copied from interface: Layer
        Returns the minimum altitude at which the layer is displayed.
        Specified by:
        getMinActiveAltitude in interface Layer
        Returns:
        the minimum altitude at which the layer is displayed.
      • setMinActiveAltitude

        public void setMinActiveAltitude​(double minActiveAltitude)
        Description copied from interface: Layer
        Specifies the minimum altitude at which to display the layer.
        Specified by:
        setMinActiveAltitude in interface Layer
        Parameters:
        minActiveAltitude - the minimum altitude at which to display the layer.
      • getMaxActiveAltitude

        public double getMaxActiveAltitude()
        Description copied from interface: Layer
        Returns the maximum altitude at which to display the layer.
        Specified by:
        getMaxActiveAltitude in interface Layer
        Returns:
        the maximum altitude at which to display the layer.
      • setMaxActiveAltitude

        public void setMaxActiveAltitude​(double maxActiveAltitude)
        Description copied from interface: Layer
        Specifies the maximum altitude at which to display the layer.
        Specified by:
        setMaxActiveAltitude in interface Layer
        Parameters:
        maxActiveAltitude - the maximum altitude at which to display the layer.
      • getMinEffectiveAltitude

        public java.lang.Double getMinEffectiveAltitude​(java.lang.Double radius)
        Description copied from interface: Layer
        Indicates the altitude below which this layer likely has low value or is not expected to be active. This value is independent of the minimum active altitude, Layer.setMinActiveAltitude(double) and does not reflect it.

        The returned altitude is valid when the field of view indicated by View.getFieldOfView() is set to its default value. Changing the field of view to any value other than the default may change this layer's minimum effective altitude, but the returned altitude will not reflect that change.

        Specified by:
        getMinEffectiveAltitude in interface Layer
        Parameters:
        radius - the radius of the Globe the layer is associated with. May be null, in which case the Earth's equatorial radius is used, Earth.WGS84_EQUATORIAL_RADIUS.
        Returns:
        the layer's minimum effective altitude.
      • getMaxEffectiveAltitude

        public java.lang.Double getMaxEffectiveAltitude​(java.lang.Double radius)
        Description copied from interface: Layer
        Indicates the altitude above which this layer likely has low value or is not expected to be active. This value is independent of the maximum active altitude, Layer.setMaxActiveAltitude(double) and does not reflect it.

        The returned altitude is valid when the field of view indicated by View.getFieldOfView() is set to its default value. Changing the field of view to any value other than the default may change this layer's maximum effective altitude, but the returned altitude will not reflect that change.

        Specified by:
        getMaxEffectiveAltitude in interface Layer
        Parameters:
        radius - the radius of the Globe the layer is associated with. May be null, in which case the Earth's equatorial radius is used, Earth.WGS84_EQUATORIAL_RADIUS.
        Returns:
        the layer's maximum effective altitude.
      • getScale

        public double getScale()
        Description copied from interface: Layer
        Returns the map scale, in terms of the ratio of 1 to the value returned, e.g., 1:24000.
        Specified by:
        getScale in interface Layer
        Returns:
        the map scale.
      • isNetworkRetrievalEnabled

        public boolean isNetworkRetrievalEnabled()
        Description copied from interface: Layer
        Indicates whether the layer is allowed to retrieve data from the network. Many layers have no need to retrieve data from the network. This state is meaningless for such layers.
        Specified by:
        isNetworkRetrievalEnabled in interface Layer
        Returns:
        true if the layer is enabled to retrieve network data, else false.
      • setNetworkRetrievalEnabled

        public void setNetworkRetrievalEnabled​(boolean networkDownloadEnabled)
        Description copied from interface: Layer
        Controls whether the layer is allowed to retrieve data from the network. Many layers have no need for data from the network. This state may be set but is meaningless for such layers.
        Specified by:
        setNetworkRetrievalEnabled in interface Layer
        Parameters:
        networkDownloadEnabled - true if network retrieval is allowed, else false.
      • getDataFileStore

        public FileStore getDataFileStore()
      • setDataFileStore

        public void setDataFileStore​(FileStore fileStore)
      • isLayerInView

        public boolean isLayerInView​(DrawContext dc)
        Description copied from interface: Layer
        Indicates whether the layer is in the view. The method implemented here is a default indicating the layer is in view. Subclasses able to determine their presence in the view should override this implementation.
        Specified by:
        isLayerInView in interface Layer
        Parameters:
        dc - the current draw context
        Returns:
        true if the layer is in the view, false otherwise.
      • isLayerActive

        public boolean isLayerActive​(DrawContext dc)
        Description copied from interface: Layer
        Indicates whether the layer is active based on arbitrary criteria. The method implemented here is a default indicating the layer is active if the current altitude is within the layer's min and max active altitudes. Subclasses able to consider more criteria should override this implementation.
        Specified by:
        isLayerActive in interface Layer
        Parameters:
        dc - the current draw context
        Returns:
        true if the layer is active, false otherwise.
      • preRender

        public void preRender​(DrawContext dc)
        Description copied from interface: Layer
        Causes the layer to perform any actions necessary to subsequently render the layer. The layer has exclusive access to the frame buffer during the call, and may use it to generate images or other information that is subsequently used to render the layer's contents. Upon return, the OpenGL state must be restored to its original.
        Specified by:
        preRender in interface Layer
        Parameters:
        dc - the current draw context.
      • render

        public void render​(DrawContext dc)
        Description copied from interface: Layer
        Cause the layer to draw its representation.
        Specified by:
        render in interface Layer
        Parameters:
        dc - the current draw context
        Throws:
        java.lang.IllegalArgumentException - if dc is null, or dc's Globe or View is null
      • pick

        public void pick​(DrawContext dc,
                         java.awt.Point point)
        Description copied from interface: Layer
        Cause the layer to perform picking, which determines whether the object or its components intersect a given point on the screen. Objects that intersect that point are added to the draw context's pick list and are conveyed to the application via selection events or by a direct query of WorldWindow.getObjectsAtCurrentPosition().
        Specified by:
        pick in interface Layer
        Parameters:
        dc - the current draw context for rendering.
        point - the screen coordinate point
        See Also:
        SelectEvent
      • doPick

        protected void doPick​(DrawContext dc,
                              java.awt.Point point)
      • dispose

        public void dispose()
        Description copied from interface: Disposable
        Disposes of any internal resources allocated by the object.
        Specified by:
        dispose in interface Disposable
      • doPreRender

        protected void doPreRender​(DrawContext dc)
      • doRender

        protected abstract void doRender​(DrawContext dc)
      • isAtMaxResolution

        public boolean isAtMaxResolution()
        Description copied from interface: Layer
        Indicates whether the most recent rendering of the layer rendered the highest resolution imagery or other data available. Some layers do not track resolution. For those layers this value will always be true. Typically such layers also return false from Layer.isMultiResolution().
        Specified by:
        isAtMaxResolution in interface Layer
        Returns:
        true if the layer is at maximum resolution, otherwise false.
      • isMultiResolution

        public boolean isMultiResolution()
        Description copied from interface: Layer
        Indicates whether the layer provides multiple resolutions of imagery or other data.
        Specified by:
        isMultiResolution in interface Layer
        Returns:
        true if the layer provides multiple resolutions, else false.
      • getRestorableState

        public java.lang.String getRestorableState()
        Description copied from interface: Restorable
        Returns an XML document string describing the object's state. This state can be restored later by calling restoreState and passing the XML document.
        Specified by:
        getRestorableState in interface Restorable
        Returns:
        an XML document string describing the object's state.
      • restoreState

        public void restoreState​(java.lang.String stateInXml)
        Description copied from interface: Restorable
        Restores the object's state to what is described in the specified XML document string.
        Specified by:
        restoreState in interface Restorable
        Parameters:
        stateInXml - an XML document string describing an object's state.
      • setExpiryTime

        public void setExpiryTime​(long expiryTime)
        Description copied from interface: Layer
        Specifies the time of the layer's most recent dataset update. If greater than zero, the layer ignores and eliminates any previously cached data older than the time specified, and requests new information from the data source. If zero, the layer uses any expiry times intrinsic to the layer, typically initialized at layer construction. The default expiry time is 0, thereby enabling a layer's intrinsic expiration criteria.
        Specified by:
        setExpiryTime in interface Layer
        Parameters:
        expiryTime - the expiry time of any cached data, expressed as a number of milliseconds beyond the epoch.
        See Also:
        for a description of milliseconds beyond the epoch.
      • getExpiryTime

        public long getExpiryTime()
        Description copied from interface: Layer
        Returns the current expiry time.
        Specified by:
        getExpiryTime in interface Layer
        Returns:
        the current expiry time.
      • getScreenCredit

        protected ScreenCredit getScreenCredit()
      • setScreenCredit

        protected void setScreenCredit​(ScreenCredit screenCredit)
      • isLayerConfigDocument

        public static boolean isLayerConfigDocument​(org.w3c.dom.Element domElement)
        Returns true if a specified DOM document is a Layer configuration document, and false otherwise.
        Parameters:
        domElement - the DOM document in question.
        Returns:
        true if the document is a Layer configuration document; false otherwise.
        Throws:
        java.lang.IllegalArgumentException - if document is null.
      • createLayerConfigElements

        public static org.w3c.dom.Element createLayerConfigElements​(AVList params,
                                                                    org.w3c.dom.Element context)
        Appends layer configuration parameters as elements to the specified context. This appends elements for the following parameters:
        Append Elements
        ParameterElement PathType
        AVKey.DISPLAY_NAMEDisplayNameString
        AVKey.OPACITYOpacityDouble
        AVKey.MAX_ACTIVE_ALTITUDEActiveAltitudes/@maxDouble
        AVKey.MIN_ACTIVE_ALTITUDEActiveAltitudes/@minDouble
        AVKey.NETWORK_RETRIEVAL_ENABLEDNetworkRetrievalEnabledBoolean
        AVKey.MAP_SCALEMapScaleDouble
        AVKey.SCREEN_CREDITScreenCreditScreenCredit
        Parameters:
        params - the key-value pairs which define the layer configuration parameters.
        context - the XML document root on which to append layer configuration elements.
        Returns:
        a reference to context.
        Throws:
        java.lang.IllegalArgumentException - if either the parameters or the context are null.
      • getLayerConfigParams

        public static AVList getLayerConfigParams​(org.w3c.dom.Element domElement,
                                                  AVList params)
        Parses layer configuration parameters from the specified DOM document. This writes output as key-value pairs to params. If a parameter from the XML document already exists in params, that parameter is ignored. Supported key and parameter names are:
        Supported Names
        ParameterElement PathType
        AVKey.DISPLAY_NAMEDisplayNameString
        AVKey.OPACITYOpacityDouble
        AVKey.MAX_ACTIVE_ALTITUDEActiveAltitudes/@maxDouble
        AVKey.MIN_ACTIVE_ALTITUDEActiveAltitudes/@minDouble
        AVKey.NETWORK_RETRIEVAL_ENABLEDNetworkRetrievalEnabledBoolean
        AVKey.MAP_SCALEMapScaleDouble
        AVKey.SCREEN_CREDITScreenCreditScreenCredit
        Parameters:
        domElement - the XML document root to parse for layer configuration elements.
        params - the output key-value pairs which recieve the layer configuration parameters. A null reference is permitted.
        Returns:
        a reference to params, or a new AVList if params is null.
        Throws:
        java.lang.IllegalArgumentException - if the document is null.