Class ScreenImage

    • Field Detail

      • imageSource

        protected java.lang.Object imageSource
      • opacity

        protected double opacity
      • rotation

        protected java.lang.Double rotation
      • color

        protected java.awt.Color color
      • delegateOwner

        protected java.lang.Object delegateOwner
      • size

        protected Size size
      • screenOffset

        protected Offset screenOffset
      • imageOffset

        protected Offset imageOffset
      • rotationOffset

        protected Offset rotationOffset
      • frameNumber

        protected long frameNumber
      • width

        protected int width
      • height

        protected int height
      • originalImageWidth

        protected int originalImageWidth
      • originalImageHeight

        protected int originalImageHeight
      • rotationPoint

        protected java.awt.Point rotationPoint
      • screenLocation

        protected java.awt.Point screenLocation
        Indicates the location of this screen image in the viewport (on the screen) in OpenGL coordinates. This property is computed in computeOffsets and used in draw Initially null.
      • awtScreenLocation

        protected java.awt.Point awtScreenLocation
        Indicates the location of this screen image in the viewport (on the screen) in AWT coordinates. This property is assigned in setScreenLocation and computeOffsets. In computeOffsets, this is computed by converting the screenLocation from OpenGL coordinates to AWT coordinates. Initially null.
      • dx

        protected double dx
      • dy

        protected double dy
      • pickLayer

        protected Layer pickLayer
    • Constructor Detail

      • ScreenImage

        public ScreenImage()
    • Method Detail

      • getScreenLocation

        public java.awt.Point getScreenLocation()
        Returns the location of the image on the screen. The position is relative to the upper-left corner of the World Window. The point specified by the image offset will be aligned to this point. If the position was specified as an offset, it may change if the viewport size changes. The value returned by this method is the most recently computed screen location. Call getScreenLocation(DrawContext) to ensure an accurate result based on the current viewport.
        Returns:
        the current screen position.
        See Also:
        getScreenLocation(DrawContext), getImageOffset(), getScreenOffset()
      • getScreenLocation

        public java.awt.Point getScreenLocation​(DrawContext dc)
        Returns the location of the image on the screen. The position is relative to the upper-left corner of the World Window. The image is centered on this position.
        Parameters:
        dc - The DrawContext in which the image will be drawn.
        Returns:
        the current screen position.
      • setScreenLocation

        public void setScreenLocation​(java.awt.Point screenLocation)
        Convenience method to specify the location of the image on the screen. The specified screenLocation is relative to the upper-left corner of the WorldWindow, and the image is centered on this location.
        Parameters:
        screenLocation - the screen location on which to center the image. May be null, in which case the image is not displayed.
        See Also:
        setScreenOffset(Offset), setImageOffset(Offset)
      • getScreenOffset

        public Offset getScreenOffset()
        Get the offset of the point on the screen to align with the image offset point.
        Returns:
        Offset of the image point that will be aligned to the image offset point.
        See Also:
        getImageOffset()
      • setScreenOffset

        public void setScreenOffset​(Offset screenOffset)
        Set the offset of the image relative to the viewport. The screen point identified by this offset will be aligned to the image point identified by the image offset.
        Parameters:
        screenOffset - The screen offset.
        See Also:
        setImageOffset(Offset)
      • getImageOffset

        public Offset getImageOffset()
        Get the offset of the point on the image to align with the screen offset point.
        Returns:
        Offset of the image point that will be aligned to the screen offset point.
        See Also:
        getScreenOffset()
      • setImageOffset

        public void setImageOffset​(Offset imageOffset)
        Set the image offset point. This point will be aligned to the screen point identified by the screen offset.
        Parameters:
        imageOffset - Offset that identifies a point on the image to align with the screen offset point.
        See Also:
        setScreenOffset(Offset)
      • getRotation

        public java.lang.Double getRotation()
        Get the rotation applied to the image.
        Returns:
        Rotation in decimal degrees, or null if there is no rotation.
        See Also:
        getRotationOffset()
      • setRotation

        public void setRotation​(java.lang.Double rotation)
        Specifies a rotation to be applied to the image.
        Parameters:
        rotation - Rotation in decimal degrees.
        See Also:
        setRotationOffset(Offset)
      • getRotationOffset

        public Offset getRotationOffset()
        Get the point about which the image is rotated.
        Returns:
        Rotation point in image coordinates, or null if there is no rotation point set. The origin of the coordinate system is at the lower left corner of the image.
        See Also:
        getRotation()
      • setRotationOffset

        public void setRotationOffset​(Offset rotationOffset)
        Set the point on the image about which rotation is performed.
        Parameters:
        rotationOffset - Rotation offset.
        See Also:
        setRotation(Double)
      • getSize

        public Size getSize()
        Get the dimension to apply to the image.
        Returns:
        Image dimension.
      • setSize

        public void setSize​(Size size)
        Set a dynamic dimension to apply to the image. The dimension allows the image to be scaled relative to the viewport size.
        Parameters:
        size - Image dimension. May not be null.
      • getImageSource

        public java.lang.Object getImageSource()
        Returns the current image source.
        Returns:
        the current image source.
        See Also:
        getImageSource()
      • setImageSource

        public void setImageSource​(java.lang.Object imageSource)
        Specifies the image source, which may be either a file path String or a BufferedImage. If the image is not already in memory, it will be loaded in the background.
        Parameters:
        imageSource - the image source, either a file path String or a BufferedImage.
        Throws:
        java.lang.IllegalArgumentException - if the imageSource is null.
      • initializeTexture

        protected BasicWWTexture initializeTexture()
        Create and initialize the texture from the image source. If the image is not in memory this method will request that it be loaded and return null.
        Returns:
        The texture, or null if the texture is not yet available.
      • getOpacity

        public double getOpacity()
        Returns the opacity of the surface. A value of 1 or greater means the surface is fully opaque, a value of 0 means that the surface is fully transparent.
        Returns:
        the surface opacity.
      • getColor

        public java.awt.Color getColor()
        If no image is set, or if the image is not yet available, a rectangle will be drawn in this color.
        Returns:
        The color for the default rectangle.
      • setColor

        public void setColor​(java.awt.Color defaultColor)
        Set the color of the rectangle drawn when the image cannot be drawn. The image may not be drawn because it has not been loaded, or because no image has been set.
        Parameters:
        defaultColor - New color for the default rectangle.
      • setOpacity

        public void setOpacity​(double opacity)
        Sets the opacity of the surface. A value of 1 or greater means the surface is fully opaque, a value of 0 means that the surface is fully transparent.
        Parameters:
        opacity - a positive value indicating the opacity of the surface.
        Throws:
        java.lang.IllegalArgumentException - if the specified opacity is less than zero.
      • getImageWidth

        public int getImageWidth​(DrawContext dc)
        Returns the width of the source image after dynamic scaling has been applied. If no image has been specified, but a dimension has been specified, the width of the dimension is returned.
        Parameters:
        dc - the current draw context.
        Returns:
        the source image width after scaling.
        See Also:
        getSize()
      • getImageHeight

        public int getImageHeight​(DrawContext dc)
        Returns the height of the image after dynamic scaling has been applied. If no image has been specified, but a dimension has been specified, the height of the dimension is returned.
        Parameters:
        dc - the current draw context.
        Returns:
        the source image height after scaling.
        See Also:
        getSize()
      • getDelegateOwner

        public java.lang.Object getDelegateOwner()
        Indicates the object included in SelectEvents when this object is picked.
        Returns:
        the object identified as the picked object.
      • setDelegateOwner

        public void setDelegateOwner​(java.lang.Object delegateOwner)
        Specify the object to identify as the picked object when this shape is picked.
        Parameters:
        delegateOwner - the object included in SelectEvents as the picked object.
      • computeOffsets

        protected void computeOffsets​(DrawContext dc)
        Compute the image size, rotation, and position based on the current viewport size. This method updates the calculated values for screen point, rotation point, width, and height. The calculation is not performed if the values have already been calculated for this frame.
        Parameters:
        dc - DrawContext into which the image will be rendered.
      • getTexture

        protected BasicWWTexture getTexture()
        Get the texture for this image. The texture is loaded on a background thread. This method will return null until the texture has been loaded.
        Returns:
        The texture or null if the texture is not yet available.
      • render

        public void render​(DrawContext dc)
        Description copied from interface: Renderable
        Causes this Renderable to render itself using the provided draw context.
        Specified by:
        render in interface Renderable
        Parameters:
        dc - the DrawContext to be used
        See Also:
        DrawContext
      • pick

        public void pick​(DrawContext dc,
                         java.awt.Point pickPoint)
      • doRender

        protected void doRender​(DrawContext dc)
      • export

        public void export​(java.lang.String mimeType,
                           java.lang.Object output)
                    throws java.io.IOException
        Export the screen image. The output object will receive the exported data. The type of this object depends on the export format. The formats and object types supported by this class are:
         Format                                         Supported output object types
         ================================================================================
         KML (application/vnd.google-earth.kml+xml)     java.io.Writer
                                                        java.io.OutputStream
                                                        javax.xml.stream.XMLStreamWriter
         
        Specified by:
        export in interface Exportable
        Parameters:
        mimeType - MIME type of desired export format.
        output - An object that will receive the exported data. The type of this object depends on the export format (see above).
        Throws:
        java.io.IOException - If an exception occurs writing to the output object.
        See Also:
        Exportable.isExportFormatSupported(String)
      • exportAsKML

        protected void exportAsKML​(java.lang.Object output)
                            throws java.io.IOException,
                                   javax.xml.stream.XMLStreamException
        Export the screen image to KML as a <ScreenOverlay> element. The output object will receive the data. This object must be one of: java.io.Writer java.io.OutputStream javax.xml.stream.XMLStreamWriter.

        The image path can only be exported if the image source is a path or URL. If the image source is a BufferedImage, for example, the image will not be exported and no icon reference will be written into the ScreenOverlay tag.

        Parameters:
        output - Object to receive the generated KML.
        Throws:
        javax.xml.stream.XMLStreamException - If an exception occurs while writing the KML
        java.io.IOException - if an exception occurs while exporting the data.
        See Also:
        export(String, Object)