|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.awt.Component
java.awt.Container
javax.swing.JComponent
com.bbn.openmap.Layer
com.bbn.openmap.layer.OMGraphicHandlerLayer
com.bbn.openmap.layer.etopo.ETOPOLayer
public class ETOPOLayer
ETOPOLayer extends Layer to provide rendering of the ETOPO5 world elevation data set. The ETOPO5 data consists of terrain altitude and ocean depth measurements at 5 minute intervals for the entire globe. Rendering is allowed in any projection that implements the inverse(int,int) method. Two types of rendering are provided: grayscale slope-shaded and colored slope-shaded.
The distribution consists of the following:
The sampled ETOPO data sets are provided to speed up the loading of data to compute the slope shading. The algorithm inverse projects the x/y screen coords (for the entire projection screen space) to get the corresponding lat/lon coords then samples the database to get altitude/depth and slope values. While this method is slower than the forward projection method, it does provide a more attractive screen presentation and will support all projections (not just the equidistant cylindrical). A palette provides the ability to choose between the 5,10, or 15 minute resolutions, as well as color or grayscale selection, transparency, and slope contrast.
The ETOPOLayer also relies on properties to set its variables, such as the etopo frame paths (there can be several at a time), the opaqueness of the frame images, number of colors to use, and some other display variables. The ETOPOLayer properties look something like this:
#------------------------------
# Properties for ETOPOLayer
#------------------------------
# This property should reflect the paths to the etopo directory
etopo.path=c:/openmap/share
# Number between 0-255: 0 is transparent, 255 is opaque
etopo.opaque=255
# Number of colors to use on the maps - 16, 32, 216
etopo.number.colors=216
# Type of display for the data
# 0 = grayscale slope shading
# 1 = colored slope shading
etopo.view.type=1
# Contrast setting, 1-5
etopo.contrast=3
# lat/lon spacing in minutes
# must be 5, 10, or 15
etopo.minute.spacing=10
#-------------------------------------
# End of properties for ETOPOLayer
#-------------------------------------
Nested Class Summary |
---|
Nested classes/interfaces inherited from class javax.swing.JComponent |
---|
javax.swing.JComponent.AccessibleJComponent |
Nested classes/interfaces inherited from class java.awt.Container |
---|
java.awt.Container.AccessibleAWTContainer |
Nested classes/interfaces inherited from class java.awt.Component |
---|
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy |
Field Summary | |
---|---|
protected int |
bandHeight
The elevation range to use for each color in band shading. |
protected int[] |
blueElev
|
protected int |
bufferHeight
|
protected int |
bufferWidth
|
static int |
COLOREDSHADING
Colorized slope shading. |
protected short[] |
dataBuffer
The etopo elevation data |
static int |
DEFAULT_MINUTE_SPACING
Default minute spacing |
static int |
DEFAULT_OPAQUENESS
for colorizing |
static int |
DEFAULT_SLOPE_ADJUST
Default contrast setting for slope shading. |
protected int[] |
elevLimit
elevation bands |
protected int |
elevLimitCnt
number of elevation bands |
protected static java.lang.String[] |
etopoFileNames
ETOPO elevation files |
protected static int[] |
etopoHeights
|
static java.lang.String |
ETOPOMinuteSpacingProperty
|
static java.lang.String |
ETOPOPathProperty
property suffixes |
static java.lang.String |
ETOPOPixelSpacerProperty
|
static java.lang.String |
ETOPOSlopeAdjustProperty
|
protected double[] |
etopoSpacings
Spacings (in meters) between adjacent lon points at the equator. |
static java.lang.String |
ETOPOViewTypeProperty
|
protected static int[] |
etopoWidths
dimensions of the ETOPO files (don't mess with these!) |
protected int[] |
greenElev
|
protected int |
minuteSpacing
The current resolution (in minutes) |
protected int |
opaqueness
transparency control |
static java.lang.String |
OpaquenessProperty
|
protected javax.swing.Box |
paletteBox
The user interface palette for the ETOPO layer. |
protected java.lang.String |
path
The paths to the ETOPO directory, telling where the data is. |
protected int[] |
redElev
elevation band colors (one for each elevation band) |
protected int |
slopeAdjust
A contrast adjustment, for slope shading (1-5). |
protected java.awt.Color[][] |
slopeColors
for slope shading colors, indexed by elevation band then slope |
protected byte[] |
slopeMap
Holds the slope values, updated when the resolution changes or the slope adjustment (contrast) is changed. |
protected boolean |
slopeReset
|
static int |
SLOPESHADING
Gray scale slope shading, sun from the Northwest. |
protected int |
spacer
Number of pixel spacers that should be added to a data file, per line, to adjust for skewing. |
protected boolean |
spacingReset
|
protected int |
viewType
The display type for the etopo images. |
Fields inherited from class com.bbn.openmap.layer.OMGraphicHandlerLayer |
---|
consumeEvents, ConsumeEventsProperty, filter, interruptable, InterruptableProperty, layerWorker, LAYERWORKER_LOCK, layerWorkerQueue, logger, mouseEventInterpreter, mouseModeIDs, MouseModesProperty, projectionChangePolicy, ProjectionChangePolicyProperty, renderPolicy, RenderPolicyProperty, selectedList, TransparencyProperty |
Fields inherited from class javax.swing.JComponent |
---|
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW |
Fields inherited from class java.awt.Component |
---|
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT |
Fields inherited from interface com.bbn.openmap.PropertyConsumer |
---|
EditorProperty, initPropertiesProperty, LabelEditorProperty, ScopedEditorProperty |
Fields inherited from interface java.awt.image.ImageObserver |
---|
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
Constructor Summary | |
---|---|
ETOPOLayer()
The default constructor for the Layer. |
|
ETOPOLayer(java.lang.String pathToETOPODir)
The default constructor for the Layer. |
Method Summary | |
---|---|
void |
actionPerformed(java.awt.event.ActionEvent e)
Used just for the redraw button. |
protected OMRaster |
buildRaster()
|
protected void |
buildSlopeMap()
Builds the slope index map. |
protected java.awt.Color |
getColor(short elevation,
byte slopeVal)
|
protected int |
getElevIndex(short el)
|
java.awt.Component |
getGUI()
Creates the interface palette. |
protected void |
loadBuffer()
Loads the database from the appropriate file based on the current resolution. |
OMGraphicList |
prepare()
Prepares the graphics for the layer. |
protected void |
setDefaultValues()
|
void |
setPath(java.lang.String pathToETOPODir)
|
void |
setProperties(java.lang.String prefix,
java.util.Properties properties)
Set all the ETOPO properties from a properties object. |
Methods inherited from class javax.swing.JComponent |
---|
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, unregisterKeyboardAction, update, updateUI |
Methods inherited from class java.awt.Container |
---|
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree |
Methods inherited from class java.awt.Component |
---|
action, add, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle |
Methods inherited from class java.lang.Object |
---|
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface java.beans.beancontext.BeanContextChild |
---|
addPropertyChangeListener, removePropertyChangeListener |
Field Detail |
---|
public static final int SLOPESHADING
public static final int COLOREDSHADING
public static final int DEFAULT_SLOPE_ADJUST
public static final int DEFAULT_MINUTE_SPACING
public static final int DEFAULT_OPAQUENESS
protected java.lang.String path
protected short[] dataBuffer
protected int bufferWidth
protected int bufferHeight
protected int minuteSpacing
protected static final java.lang.String[] etopoFileNames
protected static final int[] etopoWidths
protected static final int[] etopoHeights
protected double[] etopoSpacings
protected int viewType
protected int bandHeight
protected int slopeAdjust
protected int opaqueness
protected int spacer
public static final java.lang.String ETOPOPathProperty
public static final java.lang.String OpaquenessProperty
public static final java.lang.String ETOPOViewTypeProperty
public static final java.lang.String ETOPOSlopeAdjustProperty
public static final java.lang.String ETOPOMinuteSpacingProperty
public static final java.lang.String ETOPOPixelSpacerProperty
protected byte[] slopeMap
protected int[] elevLimit
protected int elevLimitCnt
protected int[] redElev
protected int[] greenElev
protected int[] blueElev
protected java.awt.Color[][] slopeColors
protected boolean slopeReset
protected boolean spacingReset
protected javax.swing.Box paletteBox
Constructor Detail |
---|
public ETOPOLayer()
public ETOPOLayer(java.lang.String pathToETOPODir)
pathToETOPODir
- path to the directory holding the ETOPO dataMethod Detail |
---|
public void setPath(java.lang.String pathToETOPODir)
protected void setDefaultValues()
protected int getElevIndex(short el)
protected java.awt.Color getColor(short elevation, byte slopeVal)
public void setProperties(java.lang.String prefix, java.util.Properties properties)
setProperties
in interface PropertyConsumer
setProperties
in class OMGraphicHandlerLayer
prefix
- the token to prefix the property namesproperties
- the Properties
objectprotected void buildSlopeMap()
protected void loadBuffer()
protected OMRaster buildRaster()
public OMGraphicList prepare()
Occasionally it is necessary to abort a prepare call. When this happens, the map will set the cancel bit in the LayerThread, (the thread that is running the prepare). If this Layer needs to do any cleanups during the abort, it should do so, but return out of the prepare asap.
prepare
in class OMGraphicHandlerLayer
public java.awt.Component getGUI()
getGUI
in class Layer
public void actionPerformed(java.awt.event.ActionEvent e)
actionPerformed
in interface java.awt.event.ActionListener
actionPerformed
in class OMGraphicHandlerLayer
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |