Package gov.nasa.worldwind.layers
Class ViewControlsLayer
- java.lang.Object
-
- gov.nasa.worldwind.avlist.AVListImpl
-
- gov.nasa.worldwind.WWObjectImpl
-
- gov.nasa.worldwind.layers.AbstractLayer
-
- gov.nasa.worldwind.layers.RenderableLayer
-
- gov.nasa.worldwind.layers.ViewControlsLayer
-
- All Implemented Interfaces:
AVList
,Disposable
,MessageListener
,Layer
,Restorable
,WWObject
,java.beans.PropertyChangeListener
,java.util.EventListener
public class ViewControlsLayer extends RenderableLayer
This layer displays onscreen view controls. Controls are available for pan, zoom, heading, pitch, tilt, field-of-view and vertical exaggeration. Each of the controls can be enabled or disabled independently.An instance of this class depends on an instance of
ViewControlsSelectListener
to control it. The select listener must be registered as such viaWorldWindow.addSelectListener(gov.nasa.worldwind.event.SelectListener)
.ViewControlsLayer
instances are not sharable amongWorldWindow
s.- See Also:
ViewControlsSelectListener
-
-
Field Summary
Fields Modifier and Type Field Description protected int
borderWidth
protected int
buttonSize
protected ScreenAnnotation
controlFovNarrow
protected ScreenAnnotation
controlFovWide
protected ScreenAnnotation
controlHeadingLeft
protected ScreenAnnotation
controlHeadingRight
protected ScreenAnnotation
controlLook
protected ScreenAnnotation
controlPan
protected ScreenAnnotation
controlPitchDown
protected ScreenAnnotation
controlPitchUp
protected ScreenAnnotation
controlVeDown
protected ScreenAnnotation
controlVeUp
protected ScreenAnnotation
controlZoomIn
protected ScreenAnnotation
controlZoomOut
protected ScreenAnnotation
currentControl
protected static java.lang.String
IMAGE_FOV_NARROW
protected static java.lang.String
IMAGE_FOV_WIDE
protected static java.lang.String
IMAGE_HEADING_LEFT
protected static java.lang.String
IMAGE_HEADING_RIGHT
protected static java.lang.String
IMAGE_LOOK
protected static java.lang.String
IMAGE_PAN
protected static java.lang.String
IMAGE_PITCH_DOWN
protected static java.lang.String
IMAGE_PITCH_UP
protected static java.lang.String
IMAGE_VE_DOWN
protected static java.lang.String
IMAGE_VE_UP
protected static java.lang.String
IMAGE_ZOOM_IN
protected static java.lang.String
IMAGE_ZOOM_OUT
protected boolean
initialized
protected java.lang.String
layout
protected Vec4
locationCenter
protected Vec4
locationOffset
protected int
panSize
protected java.lang.String
position
protected java.awt.Rectangle
referenceViewport
protected double
scale
protected boolean
showFovControls
protected boolean
showHeadingControls
protected boolean
showLookControls
protected boolean
showPanControls
protected boolean
showPitchControls
protected boolean
showVeControls
protected boolean
showZoomControls
-
Fields inherited from class gov.nasa.worldwind.layers.RenderableLayer
pickSupport, renderables, renderablesOverride
-
-
Constructor Summary
Constructors Constructor Description ViewControlsLayer()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
clearControls()
protected java.awt.Point
computeLocation(java.awt.Rectangle viewport, java.awt.Rectangle controls)
Compute the screen location of the controls overall rectangle bottom right corner according to either the location center if not null, or the screen position.void
doRender(DrawContext dc)
int
getBorderWidth()
protected int
getButtonSize()
java.lang.String
getControlType(java.lang.Object control)
Get the control type associated with the given object or null if unknown.java.lang.Object
getHighlightedObject()
Indicates the currently highlighted control, if any.protected java.lang.Object
getImageSource(java.lang.String control)
Get a control image source.java.lang.String
getLayout()
Returns the current layout.Vec4
getLocationCenter()
Returns the current layer image location.Vec4
getLocationOffset()
Returns the current location offset.double
getOpacity()
Returns the layer's opacity value, which is ignored by this layer.protected int
getPanSize()
java.lang.String
getPosition()
Returns the current relative view controls position.double
getScale()
Get the controls display scale.void
highlight(java.lang.Object control)
Specifies the control to highlight.protected void
initialize(DrawContext dc)
protected boolean
isInitialized()
boolean
isShowFovControls()
boolean
isShowHeadingControls()
boolean
isShowLookControls()
boolean
isShowPanControls()
boolean
isShowPitchControls()
boolean
isShowVeControls()
boolean
isShowZoomControls()
void
setBorderWidth(int borderWidth)
Sets the view controls offset from the viewport border.protected void
setButtonSize(int buttonSize)
void
setLayout(java.lang.String layout)
Sets the desired layout.void
setLocationCenter(Vec4 locationCenter)
Specifies the screen location of the layer, relative to the image's center.void
setLocationOffset(Vec4 locationOffset)
Specifies a placement offset from the layer position on the screen.void
setOpacity(double opacity)
Layer opacity is not applied to layers of this type.protected void
setPanSize(int panSize)
void
setPosition(java.lang.String position)
Sets the relative viewport location to display the view controls.void
setScale(double scale)
Set the controls display scale.void
setShowFovControls(boolean state)
void
setShowHeadingControls(boolean state)
void
setShowLookControls(boolean state)
void
setShowPanControls(boolean state)
void
setShowPitchControls(boolean state)
void
setShowVeControls(boolean state)
void
setShowZoomControls(boolean state)
java.lang.String
toString()
protected void
updatePositions(DrawContext dc)
-
Methods inherited from class gov.nasa.worldwind.layers.RenderableLayer
addRenderable, addRenderable, addRenderables, clearRenderables, dispose, disposeRenderables, doPick, doPick, doPreRender, doPreRender, doRender, getActiveRenderables, getNumRenderables, getRenderables, onMessage, removeAllRenderables, removeRenderable, setRenderables
-
Methods inherited from class gov.nasa.worldwind.layers.AbstractLayer
createLayerConfigElements, getDataFileStore, getExpiryTime, getLayerConfigParams, getMaxActiveAltitude, getMaxEffectiveAltitude, getMinActiveAltitude, getMinEffectiveAltitude, getName, getRestorableState, getScreenCredit, isAtMaxResolution, isEnabled, isLayerActive, isLayerConfigDocument, isLayerInView, isMultiResolution, isNetworkRetrievalEnabled, isPickEnabled, pick, preRender, render, restoreState, setDataFileStore, setEnabled, setExpiryTime, setMaxActiveAltitude, setMinActiveAltitude, setName, setNetworkRetrievalEnabled, setPickEnabled, setScreenCredit
-
Methods inherited from class gov.nasa.worldwind.WWObjectImpl
propertyChange
-
Methods inherited from class gov.nasa.worldwind.avlist.AVListImpl
addPropertyChangeListener, addPropertyChangeListener, clearList, copy, firePropertyChange, firePropertyChange, getBooleanValue, getBooleanValue, getChangeSupport, getDoubleValue, getDoubleValue, getEntries, getIntegerValue, getIntegerValue, getLongValue, getLongValue, getRestorableStateForAVPair, getStringValue, getStringValue, getStringValue, getValue, getValues, hasKey, removeKey, removePropertyChangeListener, removePropertyChangeListener, setValue, setValues
-
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
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
-
-
-
-
Field Detail
-
IMAGE_PAN
protected static final java.lang.String IMAGE_PAN
- See Also:
- Constant Field Values
-
IMAGE_LOOK
protected static final java.lang.String IMAGE_LOOK
- See Also:
- Constant Field Values
-
IMAGE_HEADING_LEFT
protected static final java.lang.String IMAGE_HEADING_LEFT
- See Also:
- Constant Field Values
-
IMAGE_HEADING_RIGHT
protected static final java.lang.String IMAGE_HEADING_RIGHT
- See Also:
- Constant Field Values
-
IMAGE_ZOOM_IN
protected static final java.lang.String IMAGE_ZOOM_IN
- See Also:
- Constant Field Values
-
IMAGE_ZOOM_OUT
protected static final java.lang.String IMAGE_ZOOM_OUT
- See Also:
- Constant Field Values
-
IMAGE_PITCH_UP
protected static final java.lang.String IMAGE_PITCH_UP
- See Also:
- Constant Field Values
-
IMAGE_PITCH_DOWN
protected static final java.lang.String IMAGE_PITCH_DOWN
- See Also:
- Constant Field Values
-
IMAGE_FOV_NARROW
protected static final java.lang.String IMAGE_FOV_NARROW
- See Also:
- Constant Field Values
-
IMAGE_FOV_WIDE
protected static final java.lang.String IMAGE_FOV_WIDE
- See Also:
- Constant Field Values
-
IMAGE_VE_UP
protected static final java.lang.String IMAGE_VE_UP
- See Also:
- Constant Field Values
-
IMAGE_VE_DOWN
protected static final java.lang.String IMAGE_VE_DOWN
- See Also:
- Constant Field Values
-
controlPan
protected ScreenAnnotation controlPan
-
controlLook
protected ScreenAnnotation controlLook
-
controlHeadingLeft
protected ScreenAnnotation controlHeadingLeft
-
controlHeadingRight
protected ScreenAnnotation controlHeadingRight
-
controlZoomIn
protected ScreenAnnotation controlZoomIn
-
controlZoomOut
protected ScreenAnnotation controlZoomOut
-
controlPitchUp
protected ScreenAnnotation controlPitchUp
-
controlPitchDown
protected ScreenAnnotation controlPitchDown
-
controlFovNarrow
protected ScreenAnnotation controlFovNarrow
-
controlFovWide
protected ScreenAnnotation controlFovWide
-
controlVeUp
protected ScreenAnnotation controlVeUp
-
controlVeDown
protected ScreenAnnotation controlVeDown
-
currentControl
protected ScreenAnnotation currentControl
-
position
protected java.lang.String position
-
layout
protected java.lang.String layout
-
locationCenter
protected Vec4 locationCenter
-
locationOffset
protected Vec4 locationOffset
-
scale
protected double scale
-
borderWidth
protected int borderWidth
-
buttonSize
protected int buttonSize
-
panSize
protected int panSize
-
initialized
protected boolean initialized
-
referenceViewport
protected java.awt.Rectangle referenceViewport
-
showPanControls
protected boolean showPanControls
-
showLookControls
protected boolean showLookControls
-
showZoomControls
protected boolean showZoomControls
-
showHeadingControls
protected boolean showHeadingControls
-
showPitchControls
protected boolean showPitchControls
-
showFovControls
protected boolean showFovControls
-
showVeControls
protected boolean showVeControls
-
-
Method Detail
-
getBorderWidth
public int getBorderWidth()
-
setBorderWidth
public void setBorderWidth(int borderWidth)
Sets the view controls offset from the viewport border.- Parameters:
borderWidth
- the number of pixels to offset the view controls from the borders indicated bysetPosition(String)
.
-
getScale
public double getScale()
Get the controls display scale.- Specified by:
getScale
in interfaceLayer
- Overrides:
getScale
in classAbstractLayer
- Returns:
- the controls display scale.
-
setScale
public void setScale(double scale)
Set the controls display scale.- Parameters:
scale
- the controls display scale.
-
getButtonSize
protected int getButtonSize()
-
setButtonSize
protected void setButtonSize(int buttonSize)
-
getPanSize
protected int getPanSize()
-
setPanSize
protected void setPanSize(int panSize)
-
getPosition
public java.lang.String getPosition()
Returns the current relative view controls position.- Returns:
- the current view controls position.
-
setPosition
public void setPosition(java.lang.String position)
Sets the relative viewport location to display the view controls. Can be one ofAVKey.NORTHEAST
,AVKey.NORTHWEST
,AVKey.SOUTHEAST
, orAVKey.SOUTHWEST
(the default). These indicate the corner of the viewport to place view controls.- Parameters:
position
- the desired view controls position, in screen coordinates.
-
getLayout
public java.lang.String getLayout()
Returns the current layout. Can be one ofAVKey.HORIZONTAL
orAVKey.VERTICAL
.- Returns:
- the current layout.
-
setLayout
public void setLayout(java.lang.String layout)
Sets the desired layout. Can be one ofAVKey.HORIZONTAL
orAVKey.VERTICAL
.- Parameters:
layout
- the desired layout.
-
setOpacity
public void setOpacity(double opacity)
Layer opacity is not applied to layers of this type. Opacity is controlled by the alpha values of the operation images.- Specified by:
setOpacity
in interfaceLayer
- Overrides:
setOpacity
in classRenderableLayer
- Parameters:
opacity
- the current opacity value, which is ignored by this layer.
-
getOpacity
public double getOpacity()
Returns the layer's opacity value, which is ignored by this layer. Opacity is controlled by the alpha values of the operation images.- Specified by:
getOpacity
in interfaceLayer
- Overrides:
getOpacity
in classRenderableLayer
- Returns:
- The layer opacity, a value between 0 and 1.
-
getLocationCenter
public Vec4 getLocationCenter()
Returns the current layer image location.- Returns:
- the current location center. May be null.
-
setLocationCenter
public void setLocationCenter(Vec4 locationCenter)
Specifies the screen location of the layer, relative to the image's center. May be null. If this value is non-null, it overrides the position specified bysetPosition(String)
. The location is specified in pixels. The origin is the window's lower left corner. Positive X values are to the right of the origin, positive Y values are upwards from the origin. The final image location will be affected by the currently specified location offset if a non-null location offset has been specified (seesetLocationOffset(gov.nasa.worldwind.geom.Vec4)
)}.- Parameters:
locationCenter
- the location center. May be null.- See Also:
setPosition(String)
,setLocationOffset(gov.nasa.worldwind.geom.Vec4)
-
getLocationOffset
public Vec4 getLocationOffset()
Returns the current location offset. See #setLocationOffset for a description of the offset and its values.- Returns:
- the location offset. Will be null if no offset has been specified.
-
setLocationOffset
public void setLocationOffset(Vec4 locationOffset)
Specifies a placement offset from the layer position on the screen.- Parameters:
locationOffset
- the number of pixels to shift the layer image from its specified screen position. A positive X value shifts the image to the right. A positive Y value shifts the image up. If null, no offset is applied. The default offset is null.- See Also:
setLocationCenter(gov.nasa.worldwind.geom.Vec4)
,setPosition(String)
-
isShowPanControls
public boolean isShowPanControls()
-
setShowPanControls
public void setShowPanControls(boolean state)
-
isShowLookControls
public boolean isShowLookControls()
-
setShowLookControls
public void setShowLookControls(boolean state)
-
isShowHeadingControls
public boolean isShowHeadingControls()
-
setShowHeadingControls
public void setShowHeadingControls(boolean state)
-
isShowZoomControls
public boolean isShowZoomControls()
-
setShowZoomControls
public void setShowZoomControls(boolean state)
-
isShowPitchControls
public boolean isShowPitchControls()
-
setShowPitchControls
public void setShowPitchControls(boolean state)
-
isShowFovControls
public boolean isShowFovControls()
-
setShowFovControls
public void setShowFovControls(boolean state)
-
setShowVeControls
public void setShowVeControls(boolean state)
-
isShowVeControls
public boolean isShowVeControls()
-
getControlType
public java.lang.String getControlType(java.lang.Object control)
Get the control type associated with the given object or null if unknown.- Parameters:
control
- the control object- Returns:
- the control type. Can be one of
AVKey.VIEW_PAN
,AVKey.VIEW_LOOK
,AVKey.VIEW_HEADING_LEFT
,AVKey.VIEW_HEADING_RIGHT
,AVKey.VIEW_ZOOM_IN
,AVKey.VIEW_ZOOM_OUT
,AVKey.VIEW_PITCH_UP
,AVKey.VIEW_PITCH_DOWN
,AVKey.VIEW_FOV_NARROW
orAVKey.VIEW_FOV_WIDE
.Returns null if the object is not a view control associated with this layer.
-
getHighlightedObject
public java.lang.Object getHighlightedObject()
Indicates the currently highlighted control, if any.- Returns:
- the currently highlighted control, or null if no control is highlighted.
-
highlight
public void highlight(java.lang.Object control)
Specifies the control to highlight. Any currently highlighted control is un-highlighted.- Parameters:
control
- the control to highlight.
-
doRender
public void doRender(DrawContext dc)
- Overrides:
doRender
in classRenderableLayer
-
isInitialized
protected boolean isInitialized()
-
initialize
protected void initialize(DrawContext dc)
-
getImageSource
protected java.lang.Object getImageSource(java.lang.String control)
Get a control image source.- Parameters:
control
- the control type. Can be one ofAVKey.VIEW_PAN
,AVKey.VIEW_LOOK
,AVKey.VIEW_HEADING_LEFT
,AVKey.VIEW_HEADING_RIGHT
,AVKey.VIEW_ZOOM_IN
,AVKey.VIEW_ZOOM_OUT
,AVKey.VIEW_PITCH_UP
,AVKey.VIEW_PITCH_DOWN
,AVKey.VIEW_FOV_NARROW
orAVKey.VIEW_FOV_WIDE
.- Returns:
- the image source associated with the given control type.
-
updatePositions
protected void updatePositions(DrawContext dc)
-
computeLocation
protected java.awt.Point computeLocation(java.awt.Rectangle viewport, java.awt.Rectangle controls)
Compute the screen location of the controls overall rectangle bottom right corner according to either the location center if not null, or the screen position.- Parameters:
viewport
- the current viewport rectangle.controls
- the overall controls rectangle- Returns:
- the screen location of the bottom left corner - south west corner.
-
clearControls
protected void clearControls()
-
toString
public java.lang.String toString()
- Overrides:
toString
in classRenderableLayer
-
-