Class WWOMeasureTool
- java.lang.Object
-
- gov.nasa.worldwind.avlist.AVListImpl
-
- gov.nasa.worldwindx.applications.worldwindow.util.measuretool.WWOMeasureTool
-
- All Implemented Interfaces:
AVList
,Disposable
,PositionListener
,RenderingListener
,SelectListener
,java.awt.event.MouseListener
,java.awt.event.MouseMotionListener
,java.util.EventListener
public class WWOMeasureTool extends AVListImpl implements Disposable, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, SelectListener, PositionListener, RenderingListener
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
WWOMeasureTool.ControlPoint
static interface
WWOMeasureTool.ControlPointList
static interface
WWOMeasureTool.MeasureDisplay
-
Field Summary
Fields Modifier and Type Field Description protected boolean
active
protected boolean
armed
protected WWOMeasureTool.ControlPointList
controlPoints
protected RenderableLayer
controlPointsLayer
protected BasicDragger
dragger
static java.lang.String
EVENT_ARMED
static java.lang.String
EVENT_METRIC_CHANGED
static java.lang.String
EVENT_POSITION_ADD
static java.lang.String
EVENT_POSITION_REMOVE
static java.lang.String
EVENT_POSITION_REPLACE
static java.lang.String
EVENT_RUBBERBAND_START
static java.lang.String
EVENT_RUBBERBAND_STOP
protected javax.swing.event.EventListenerList
eventListeners
protected boolean
freeHand
protected double
freeHandMinSpacing
protected WWOMeasureTool.ControlPoint
lastPickedObject
protected WWOMeasureTool.MeasureDisplay
measureDisplay
protected java.lang.String
measureShapeType
protected boolean
moving
protected WWOMeasureTool.ControlPoint
movingTarget
protected java.util.ArrayList<Position>
positions
protected boolean
regularShape
protected WWOMeasureTool.ControlPoint
rubberBandTarget
protected Renderable
shape
protected Position
shapeCenterPosition
protected int
shapeIntervals
protected Angle
shapeOrientation
protected java.awt.geom.Rectangle2D.Double
shapeRectangle
protected boolean
showAnnotation
protected boolean
showControlPoints
protected UnitsFormat
unitsFormat
protected boolean
useRubberBand
protected WorldWindow
wwd
-
Constructor Summary
Constructors Constructor Description WWOMeasureTool(WorldWindow wwd, Renderable shape, java.lang.String lineType, RenderableLayer controlPointsLayer)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addControlPoint()
Add a control point to the current measure shape at the cuurrent WorldWindow position.protected void
addControlPoint(Position position, java.lang.String key, java.lang.Object value)
void
addSelectListener(SelectListener listener)
protected void
autoDisarm()
protected void
callSelectListeners(SelectEvent event)
void
clear()
protected Position
computeSurfacePosition(LatLon latLon)
protected WWOMeasureTool.ControlPoint
createControlPoint(Position position)
protected WWOMeasureTool.ControlPointList
createControlPoints()
protected WWOMeasureTool.MeasureDisplay
createMeasureDisplay()
void
dispose()
Disposes of any internal resources allocated by the object.protected void
doMoved()
protected void
doSelected(SelectEvent event)
protected void
dragSelected(SelectEvent event)
double
getArea()
Position
getCenterPosition()
protected WWOMeasureTool.ControlPointList
getControlPoints()
double
getFreeHandMinSpacing()
double
getHeight()
java.lang.String
getLabel(java.lang.String labelName)
double
getLength()
java.lang.String
getMeasureShapeType()
Angle
getOrientation()
java.util.ArrayList<? extends Position>
getPositions()
Renderable
getShape()
java.awt.geom.Rectangle2D.Double
getShapeRectangle()
UnitsFormat
getUnitsFormat()
double
getWidth()
WorldWindow
getWwd()
protected void
highlight(java.lang.Object o)
protected boolean
isActive()
boolean
isArmed()
boolean
isFreeHand()
protected boolean
isMoving()
protected boolean
isRegularShape()
boolean
isShowAnnotation()
boolean
isShowControlPoints()
boolean
isUseRubberBand()
void
mouseClicked(java.awt.event.MouseEvent mouseEvent)
void
mouseDragged(java.awt.event.MouseEvent mouseEvent)
void
mouseEntered(java.awt.event.MouseEvent e)
void
mouseExited(java.awt.event.MouseEvent e)
void
mouseMoved(java.awt.event.MouseEvent mouseEvent)
void
mousePressed(java.awt.event.MouseEvent mouseEvent)
void
mouseReleased(java.awt.event.MouseEvent mouseEvent)
void
moveControlPoint(WWOMeasureTool.ControlPoint point)
Update the current measure shape according to a given control point position.void
moved(PositionEvent event)
void
moveMeasureShape(Angle azimuth, Angle distance)
Move the current measure shape along a great circle arc at a given azimuthAngle
for a given distanceAngle
.protected void
moveToPosition(Position oldPosition, Position newPosition)
void
removeControlPoint()
Remove the last control point from the current measure shape.void
selected(SelectEvent event)
protected void
setActive(boolean state)
void
setArmed(boolean armed)
Arms and disarms the measure tool controller.void
setFreeHand(boolean state)
void
setFreeHandMinSpacing(double distance)
void
setLabel(java.lang.String labelName, java.lang.String label)
protected void
setMeasureShape(Path line, java.lang.String shapeType)
protected void
setMeasureShape(SurfaceShape newShape)
protected void
setMoving(boolean state)
void
setShowAnnotation(boolean state)
void
setShowControlPoints(boolean state)
void
setUnitsFormat(UnitsFormat unitsFormat)
void
setUseRubberBand(boolean state)
void
stageChanged(RenderingEvent event)
protected void
updateMeasureShape()
protected void
updatePositionsFromShape()
protected void
updateShapeControlPoints()
protected void
updateShapeProperties(java.lang.String control, Position newPosition)
-
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
-
-
-
-
Field Detail
-
EVENT_POSITION_ADD
public static final java.lang.String EVENT_POSITION_ADD
- See Also:
- Constant Field Values
-
EVENT_POSITION_REMOVE
public static final java.lang.String EVENT_POSITION_REMOVE
- See Also:
- Constant Field Values
-
EVENT_POSITION_REPLACE
public static final java.lang.String EVENT_POSITION_REPLACE
- See Also:
- Constant Field Values
-
EVENT_METRIC_CHANGED
public static final java.lang.String EVENT_METRIC_CHANGED
- See Also:
- Constant Field Values
-
EVENT_ARMED
public static final java.lang.String EVENT_ARMED
- See Also:
- Constant Field Values
-
EVENT_RUBBERBAND_START
public static final java.lang.String EVENT_RUBBERBAND_START
- See Also:
- Constant Field Values
-
EVENT_RUBBERBAND_STOP
public static final java.lang.String EVENT_RUBBERBAND_STOP
- See Also:
- Constant Field Values
-
wwd
protected final WorldWindow wwd
-
dragger
protected BasicDragger dragger
-
shape
protected Renderable shape
-
measureShapeType
protected java.lang.String measureShapeType
-
regularShape
protected boolean regularShape
-
controlPoints
protected WWOMeasureTool.ControlPointList controlPoints
-
controlPointsLayer
protected RenderableLayer controlPointsLayer
-
showControlPoints
protected boolean showControlPoints
-
measureDisplay
protected WWOMeasureTool.MeasureDisplay measureDisplay
-
showAnnotation
protected boolean showAnnotation
-
unitsFormat
protected UnitsFormat unitsFormat
-
positions
protected java.util.ArrayList<Position> positions
-
shapeRectangle
protected java.awt.geom.Rectangle2D.Double shapeRectangle
-
shapeCenterPosition
protected Position shapeCenterPosition
-
shapeOrientation
protected Angle shapeOrientation
-
shapeIntervals
protected int shapeIntervals
-
armed
protected boolean armed
-
active
protected boolean active
-
moving
protected boolean moving
-
useRubberBand
protected boolean useRubberBand
-
freeHand
protected boolean freeHand
-
freeHandMinSpacing
protected double freeHandMinSpacing
-
rubberBandTarget
protected WWOMeasureTool.ControlPoint rubberBandTarget
-
movingTarget
protected WWOMeasureTool.ControlPoint movingTarget
-
lastPickedObject
protected WWOMeasureTool.ControlPoint lastPickedObject
-
eventListeners
protected javax.swing.event.EventListenerList eventListeners
-
-
Constructor Detail
-
WWOMeasureTool
public WWOMeasureTool(WorldWindow wwd, Renderable shape, java.lang.String lineType, RenderableLayer controlPointsLayer)
-
-
Method Detail
-
dispose
public void dispose()
Description copied from interface:Disposable
Disposes of any internal resources allocated by the object.- Specified by:
dispose
in interfaceDisposable
-
createControlPoints
protected WWOMeasureTool.ControlPointList createControlPoints()
-
createMeasureDisplay
protected WWOMeasureTool.MeasureDisplay createMeasureDisplay()
-
getWwd
public WorldWindow getWwd()
-
setUnitsFormat
public void setUnitsFormat(UnitsFormat unitsFormat)
-
getUnitsFormat
public UnitsFormat getUnitsFormat()
-
setLabel
public void setLabel(java.lang.String labelName, java.lang.String label)
-
getLabel
public java.lang.String getLabel(java.lang.String labelName)
-
getShape
public Renderable getShape()
-
isShowControlPoints
public boolean isShowControlPoints()
-
setShowControlPoints
public void setShowControlPoints(boolean state)
-
isShowAnnotation
public boolean isShowAnnotation()
-
setShowAnnotation
public void setShowAnnotation(boolean state)
-
isUseRubberBand
public boolean isUseRubberBand()
-
setUseRubberBand
public void setUseRubberBand(boolean state)
-
isFreeHand
public boolean isFreeHand()
-
setFreeHand
public void setFreeHand(boolean state)
-
getFreeHandMinSpacing
public double getFreeHandMinSpacing()
-
setFreeHandMinSpacing
public void setFreeHandMinSpacing(double distance)
-
clear
public void clear()
-
getMeasureShapeType
public java.lang.String getMeasureShapeType()
-
getPositions
public java.util.ArrayList<? extends Position> getPositions()
-
getControlPoints
protected WWOMeasureTool.ControlPointList getControlPoints()
-
createControlPoint
protected WWOMeasureTool.ControlPoint createControlPoint(Position position)
-
getShapeRectangle
public java.awt.geom.Rectangle2D.Double getShapeRectangle()
-
setMeasureShape
protected void setMeasureShape(Path line, java.lang.String shapeType)
-
setMeasureShape
protected void setMeasureShape(SurfaceShape newShape)
-
isRegularShape
protected boolean isRegularShape()
-
getLength
public double getLength()
-
getArea
public double getArea()
-
getWidth
public double getWidth()
-
getHeight
public double getHeight()
-
getOrientation
public Angle getOrientation()
-
getCenterPosition
public Position getCenterPosition()
-
addControlPoint
public void addControlPoint()
Add a control point to the current measure shape at the cuurrent WorldWindow position.
-
removeControlPoint
public void removeControlPoint()
Remove the last control point from the current measure shape.
-
moveControlPoint
public void moveControlPoint(WWOMeasureTool.ControlPoint point)
Update the current measure shape according to a given control point position.- Parameters:
point
- one of the shape control points.
-
moveMeasureShape
public void moveMeasureShape(Angle azimuth, Angle distance)
Move the current measure shape along a great circle arc at a given azimuthAngle
for a given distanceAngle
.- Parameters:
azimuth
- the azimuthAngle
.distance
- the distanceAngle
.
-
updateShapeProperties
protected void updateShapeProperties(java.lang.String control, Position newPosition)
-
updateShapeControlPoints
protected void updateShapeControlPoints()
-
updateMeasureShape
protected void updateMeasureShape()
-
updatePositionsFromShape
protected void updatePositionsFromShape()
-
addControlPoint
protected void addControlPoint(Position position, java.lang.String key, java.lang.Object value)
-
isActive
protected boolean isActive()
-
setActive
protected void setActive(boolean state)
-
isMoving
protected boolean isMoving()
-
setMoving
protected void setMoving(boolean state)
-
isArmed
public boolean isArmed()
-
setArmed
public void setArmed(boolean armed)
Arms and disarms the measure tool controller. When armed, the controller monitors user input and builds the shape in response to user actions. When disarmed, the controller ignores all user input.- Parameters:
armed
- true to arm the controller, false to disarm it.
-
mousePressed
public void mousePressed(java.awt.event.MouseEvent mouseEvent)
- Specified by:
mousePressed
in interfacejava.awt.event.MouseListener
-
mouseReleased
public void mouseReleased(java.awt.event.MouseEvent mouseEvent)
- Specified by:
mouseReleased
in interfacejava.awt.event.MouseListener
-
mouseClicked
public void mouseClicked(java.awt.event.MouseEvent mouseEvent)
- Specified by:
mouseClicked
in interfacejava.awt.event.MouseListener
-
mouseDragged
public void mouseDragged(java.awt.event.MouseEvent mouseEvent)
- Specified by:
mouseDragged
in interfacejava.awt.event.MouseMotionListener
-
mouseMoved
public void mouseMoved(java.awt.event.MouseEvent mouseEvent)
- Specified by:
mouseMoved
in interfacejava.awt.event.MouseMotionListener
-
mouseEntered
public void mouseEntered(java.awt.event.MouseEvent e)
- Specified by:
mouseEntered
in interfacejava.awt.event.MouseListener
-
mouseExited
public void mouseExited(java.awt.event.MouseEvent e)
- Specified by:
mouseExited
in interfacejava.awt.event.MouseListener
-
moved
public void moved(PositionEvent event)
- Specified by:
moved
in interfacePositionListener
-
selected
public void selected(SelectEvent event)
- Specified by:
selected
in interfaceSelectListener
-
stageChanged
public void stageChanged(RenderingEvent event)
- Specified by:
stageChanged
in interfaceRenderingListener
-
doMoved
protected void doMoved()
-
addSelectListener
public void addSelectListener(SelectListener listener)
-
callSelectListeners
protected void callSelectListeners(SelectEvent event)
-
doSelected
protected void doSelected(SelectEvent event)
-
dragSelected
protected void dragSelected(SelectEvent event)
-
highlight
protected void highlight(java.lang.Object o)
-
autoDisarm
protected void autoDisarm()
-
-