gov.nasa.worldwind.layers
Class TiledImageLayer
java.lang.Object
gov.nasa.worldwind.avlist.AVListImpl
gov.nasa.worldwind.WWObjectImpl
gov.nasa.worldwind.layers.AbstractLayer
gov.nasa.worldwind.layers.TiledImageLayer
- All Implemented Interfaces:
- AVList, Disposable, Layer, Restorable, WWObject, PropertyChangeListener, EventListener
- Direct Known Subclasses:
- BasicTiledImageLayer, RPFTiledImageLayer
public abstract class TiledImageLayer
- extends AbstractLayer
|
Method Summary |
BufferedImage |
composeImageForSector(Sector sector,
int canvasWidth,
int canvasHeight,
double aspectRatio,
int levelNumber,
String mimeType,
boolean abortOnError,
BufferedImage image)
Create an image for the portion of this layer lying within a specified sector. |
int |
computeLevelForResolution(Sector sector,
double resolution)
|
int |
countImagesInSector(Sector sector)
|
int |
countImagesInSector(Sector sector,
int levelNumber)
|
protected void |
doRender(DrawContext dc)
|
protected abstract void |
forceTextureLoad(TextureTile tile)
|
ArrayList<String> |
getAvailableImageFormats()
|
String |
getDefaultImageFormat()
|
protected LevelSet |
getLevels()
|
protected Vec4 |
getReferencePoint()
|
protected PriorityBlockingQueue<Runnable> |
getRequestQ()
|
TextureTile[][] |
getTilesInSector(Sector sector,
int levelNumber)
|
boolean |
isAtMaxResolution()
Indicates whether the most recent rendering of the layer rendered the highest resolution imagery or other data
available. |
boolean |
isDrawBoundingVolumes()
|
boolean |
isDrawTileBoundaries()
|
boolean |
isDrawTileIDs()
|
boolean |
isForceLevelZeroLoads()
|
boolean |
isImageFormatAvailable(String imageFormat)
|
boolean |
isLayerInView(DrawContext dc)
Indicates whether the layer is in the view. |
boolean |
isMultiResolution()
Indicates whether the layer provides multiple resolutions of imagery or other data. |
boolean |
isRetainLevelZeroTiles()
|
boolean |
isShowImageTileOutlines()
|
boolean |
isUseMipMaps()
|
boolean |
isUseTransparentTextures()
|
void |
render(DrawContext dc)
Cause the layer to draw its representation. |
protected abstract void |
requestTexture(DrawContext dc,
TextureTile tile)
|
protected void |
setAvailableImageFormats(String[] formats)
|
protected void |
setBlendingFunction(DrawContext dc)
|
void |
setDrawBoundingVolumes(boolean drawBoundingVolumes)
|
void |
setDrawTileBoundaries(boolean drawTileBoundaries)
|
void |
setDrawTileIDs(boolean drawTileIDs)
|
void |
setForceLevelZeroLoads(boolean forceLevelZeroLoads)
|
void |
setName(String name)
Set the layer's name. |
void |
setRetainLevelZeroTiles(boolean retainLevelZeroTiles)
|
void |
setShowImageTileOutlines(boolean showImageTileOutlines)
|
protected void |
setSplitScale(double splitScale)
|
void |
setUseMipMaps(boolean useMipMaps)
|
void |
setUseTransparentTextures(boolean useTransparentTextures)
|
| Methods inherited from class gov.nasa.worldwind.layers.AbstractLayer |
dispose, doPick, doPreRender, getMaxActiveAltitude, getMinActiveAltitude, getName, getOpacity, getRestorableState, getScale, isEnabled, isLayerActive, isNetworkRetrievalEnabled, isPickEnabled, pick, preRender, restoreState, setEnabled, setMaxActiveAltitude, setMinActiveAltitude, setNetworkRetrievalEnabled, setOpacity, setPickEnabled, toString |
| Methods inherited from class gov.nasa.worldwind.avlist.AVListImpl |
addPropertyChangeListener, addPropertyChangeListener, clearList, copy, firePropertyChange, firePropertyChange, getDoubleValue, getDoubleValue, getEntries, getIntegerValue, getIntegerValue, getLongValue, getLongValue, getStringValue, getStringValue, getStringValue, getValue, getValues, hasKey, removeKey, removePropertyChangeListener, removePropertyChangeListener, setValue, setValues |
| Methods inherited from interface gov.nasa.worldwind.avlist.AVList |
addPropertyChangeListener, addPropertyChangeListener, clearList, copy, firePropertyChange, firePropertyChange, getEntries, getStringValue, getValue, getValues, hasKey, removeKey, removePropertyChangeListener, removePropertyChangeListener, setValue, setValues |
TiledImageLayer
public TiledImageLayer(LevelSet levelSet)
composeImageForSector
public BufferedImage composeImageForSector(Sector sector,
int canvasWidth,
int canvasHeight,
double aspectRatio,
int levelNumber,
String mimeType,
boolean abortOnError,
BufferedImage image)
throws Exception
- Create an image for the portion of this layer lying within a specified sector. The image is created at a
specified aspect ratio within a canvas of a specified size.
- Parameters:
sector - the sector of interest.canvasWidth - the width of the canvas.canvasHeight - the height of the canvas.aspectRatio - the aspect ratio, width/height, of the window. If the aspect ratio is greater or equal to
one, the full width of the canvas is used for the image; the height used is proportional to
the inverse of the aspect ratio. If the aspect ratio is less than one, the full height of the
canvas is used, and the width used is proportional to the aspect ratio.levelNumber - the target level of the tiled image layer.mimeType - the type of image to create, e.g., "png" and "jpg".abortOnError - indicates whether to stop assembling the image if an error occurs. If false, processing
continues until all portions of the layer that intersect the specified sector have been added
to the image. Portions for which an error occurs will be blank.image - if non-null, a BufferedImage in which to place the image. If null, a new buffered
image is created. The image must be the width and height specified in the
canvasWidth and canvasHeight arguments.
- Returns:
- image the assembelled image, of size indicated by the
canvasWidth and
canvasHeight. If the specified aspect ratio is one, all pixels contain values. If the aspect
ratio is greater than one, a full-width segment along the top of the canvas is blank. If the aspect ratio
is less than one, a full-height segment along the right side of the canvase is blank. If the
image argument was non-null, that buffered image is returned.
- Throws:
IllegalArgumentException - if sector is null.
Exception- See Also:
;
computeLevelForResolution
public int computeLevelForResolution(Sector sector,
double resolution)
countImagesInSector
public int countImagesInSector(Sector sector)
countImagesInSector
public int countImagesInSector(Sector sector,
int levelNumber)
doRender
protected final void doRender(DrawContext dc)
- Specified by:
doRender in class AbstractLayer
forceTextureLoad
protected abstract void forceTextureLoad(TextureTile tile)
getAvailableImageFormats
public ArrayList<String> getAvailableImageFormats()
getDefaultImageFormat
public String getDefaultImageFormat()
getLevels
protected LevelSet getLevels()
getReferencePoint
protected Vec4 getReferencePoint()
getRequestQ
protected PriorityBlockingQueue<Runnable> getRequestQ()
getTilesInSector
public TextureTile[][] getTilesInSector(Sector sector,
int levelNumber)
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- Overrides:
isAtMaxResolution in class AbstractLayer
- Returns:
true if the layer is at maximum resolution, otherwise false.
isDrawBoundingVolumes
public boolean isDrawBoundingVolumes()
isDrawTileBoundaries
public boolean isDrawTileBoundaries()
isDrawTileIDs
public boolean isDrawTileIDs()
isForceLevelZeroLoads
public boolean isForceLevelZeroLoads()
isImageFormatAvailable
public boolean isImageFormatAvailable(String imageFormat)
isLayerInView
public boolean isLayerInView(DrawContext dc)
- Description copied from class:
AbstractLayer
- 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.
- Overrides:
isLayerInView in class AbstractLayer
- Parameters:
dc - the current draw context
- Returns:
true if the layer is in the view, false otherwise.
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- Overrides:
isMultiResolution in class AbstractLayer
- Returns:
true if the layer provides multiple resolutions, else false.
isRetainLevelZeroTiles
public boolean isRetainLevelZeroTiles()
isShowImageTileOutlines
public boolean isShowImageTileOutlines()
isUseMipMaps
public boolean isUseMipMaps()
isUseTransparentTextures
public boolean isUseTransparentTextures()
render
public void render(DrawContext dc)
- Description copied from interface:
Layer
- Cause the layer to draw its representation.
- Specified by:
render in interface Layer- Overrides:
render in class AbstractLayer
- Parameters:
dc - the current draw context
requestTexture
protected abstract void requestTexture(DrawContext dc,
TextureTile tile)
setAvailableImageFormats
protected void setAvailableImageFormats(String[] formats)
setBlendingFunction
protected void setBlendingFunction(DrawContext dc)
setDrawBoundingVolumes
public void setDrawBoundingVolumes(boolean drawBoundingVolumes)
setDrawTileBoundaries
public void setDrawTileBoundaries(boolean drawTileBoundaries)
setDrawTileIDs
public void setDrawTileIDs(boolean drawTileIDs)
setForceLevelZeroLoads
public void setForceLevelZeroLoads(boolean forceLevelZeroLoads)
setName
public void setName(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- Overrides:
setName in class AbstractLayer
- Parameters:
name - the name to assign to the layer.
setRetainLevelZeroTiles
public void setRetainLevelZeroTiles(boolean retainLevelZeroTiles)
setShowImageTileOutlines
public void setShowImageTileOutlines(boolean showImageTileOutlines)
setSplitScale
protected void setSplitScale(double splitScale)
setUseMipMaps
public void setUseMipMaps(boolean useMipMaps)
setUseTransparentTextures
public void setUseTransparentTextures(boolean useTransparentTextures)