Class FramebufferTexture

  • All Implemented Interfaces:
    WWTexture
    Direct Known Subclasses:
    FBOTexture

    public class FramebufferTexture
    extends java.lang.Object
    implements WWTexture
    • Field Detail

      • sourceTexture

        protected WWTexture sourceTexture
      • sector

        protected Sector sector
      • corners

        protected java.util.List<LatLon> corners
      • width

        protected int width
      • height

        protected int height
      • textureCoords

        protected com.jogamp.opengl.util.texture.TextureCoords textureCoords
      • tessellationDensity

        protected int tessellationDensity
        The density of explicit texture coordinates to specify for the quadrilateral the texture's applied to.
      • DEFAULT_TESSELLATION_DENSITY

        protected static final int DEFAULT_TESSELLATION_DENSITY
        The default density of texture coordinates to specify for the quadrilateral the texture's applied to.
        See Also:
        Constant Field Values
    • Constructor Detail

      • FramebufferTexture

        public FramebufferTexture​(WWTexture imageSource,
                                  Sector sector,
                                  java.util.List<LatLon> corners)
    • Method Detail

      • getWidth

        public int getWidth​(DrawContext dc)
        Description copied from interface: WWTexture
        Returns the texture's width.
        Specified by:
        getWidth in interface WWTexture
        Parameters:
        dc - the current draw context
        Returns:
        the texture's width, or 0 if the texture's size is currently unknown.
      • getHeight

        public int getHeight​(DrawContext dc)
        Description copied from interface: WWTexture
        Returns the texture's height
        Specified by:
        getHeight in interface WWTexture
        Parameters:
        dc - the current draw context
        Returns:
        the texture's height, or 0 if the texture's size is currently unknown.
      • getSector

        public Sector getSector()
      • getCorners

        public java.util.List<LatLon> getCorners()
      • isTextureCurrent

        public boolean isTextureCurrent​(DrawContext dc)
        Description copied from interface: WWTexture
        Indicates whether the texture is currently available for use without regenerating it from its image source.
        Specified by:
        isTextureCurrent in interface WWTexture
        Parameters:
        dc - the current draw context
        Returns:
        true if the texture is available and consistent with its image source, otherwise false.
      • getImageSource

        public java.lang.Object getImageSource()
        Description copied from interface: WWTexture
        Returns the texture's image source.
        Specified by:
        getImageSource in interface WWTexture
        Returns:
        the texture's image source.
      • getTexCoords

        public com.jogamp.opengl.util.texture.TextureCoords getTexCoords()
        Description copied from interface: WWTexture
        Returns the texture's texture coordinates, which may be other than [0,0],[1,1] if the texture size is not a power of two or the texture must be flipped when rendered.
        Specified by:
        getTexCoords in interface WWTexture
        Returns:
        returns the texture's texture coordinates.
      • isTextureInitializationFailed

        public boolean isTextureInitializationFailed()
        Description copied from interface: WWTexture
        Indicates whether an attempt to initialize the texture failed, which occurs when the image source is a non-existent image file or for other reasons specific to the image source.
        Specified by:
        isTextureInitializationFailed in interface WWTexture
        Returns:
        true if texture initialization failed, otherwise false.
      • bind

        public boolean bind​(DrawContext dc)
        Description copied from interface: WWTexture
        Makes this texture the current texture for rendering.

        If the implementing instance's internal texture has not been created from its image source, the implementing class determines when the texture is retrieved and available.

        If a texture cannot be created from its image source it cannot be bound. This method returns an indication of whether the texture was bound or was not bound due to a failure during creation.

        Specified by:
        bind in interface WWTexture
        Parameters:
        dc - the current draw context.
        Returns:
        true if the texture was bound, otherwise false.
      • applyInternalTransform

        public void applyInternalTransform​(DrawContext dc)
        Description copied from interface: WWTexture
        Applies any necessary transformations to the texture prior to its being rendered. A common transformation is mapping texture coordinates from a flipped or non-square state to conventionally oriented OpenGL values.
        Specified by:
        applyInternalTransform in interface WWTexture
        Parameters:
        dc - the current draw context.
      • getTessellationDensity

        protected int getTessellationDensity()
      • initializeTexture

        protected com.jogamp.opengl.util.texture.Texture initializeTexture​(DrawContext dc)
      • generateTexture

        protected boolean generateTexture​(DrawContext dc,
                                          int width,
                                          int height)
      • computeGeographicToCartesianTransform

        protected Matrix computeGeographicToCartesianTransform​(Sector sector)
      • transformToQuadCoordinates

        protected Vec4 transformToQuadCoordinates​(Matrix geoToCartesian,
                                                  LatLon latLon)
      • drawQuad

        protected void drawQuad​(DrawContext dc,
                                Matrix geoToCartesian,
                                int slices,
                                int stacks)