NASA World Wind

gov.nasa.worldwind.symbology.milstd2525.graphics.areas
Class MinimumSafeDistanceZones

java.lang.Object
  extended by gov.nasa.worldwind.avlist.AVListImpl
      extended by gov.nasa.worldwind.symbology.AbstractTacticalGraphic
          extended by gov.nasa.worldwind.symbology.milstd2525.AbstractMilStd2525TacticalGraphic
              extended by gov.nasa.worldwind.symbology.milstd2525.graphics.areas.MinimumSafeDistanceZones
All Implemented Interfaces:
AVList, Movable, Highlightable, PreRenderable, Renderable, MilStd2525TacticalGraphic, TacticalGraphic

public class MinimumSafeDistanceZones
extends AbstractMilStd2525TacticalGraphic
implements PreRenderable

Implementation of the Minimum Safe Distance Zone graphic (2.X.3.4.1). This graphic requires four control points. The first point defines the center of the circle, and the other three define the radius of the rings. See the graphic template in MIL-STD-2525C, pg. 613. Note that MIL-STD-2525C numbers the radius points as points one, two, and three, but does not assign a number to the center point. This implementation requires the center point to be the first point in the list.


Field Summary
static Angle DEFAULT_LABEL_ANGLE
          Default angle used to position the graphic's labels.
protected  Angle labelAngle
          Position the labels along a line radiating out from the center of the circle at this angle from North.
protected  Iterable<? extends Position> positions
          Position of the center of the range fan.
protected  List<SurfaceCircle> rings
          Rings that make up the range fan.
 
Fields inherited from class gov.nasa.worldwind.symbology.milstd2525.AbstractMilStd2525TacticalGraphic
maskedSymbolCode, OUTLINE_STIPPLE_FACTOR_ANTICIPATED, OUTLINE_STIPPLE_FACTOR_PRESENT, OUTLINE_STIPPLE_PATTERN, symbolCode
 
Fields inherited from class gov.nasa.worldwind.symbology.AbstractTacticalGraphic
activeOverrides, activeShapeAttributes, DEFAULT_HIGHLIGHT_MATERIAL, DEFAULT_LABEL_INTERIOR_OPACITY, delegateOwner, frameTimestamp, highlightAttributes, highlighted, labelOffset, labels, modifiers, mustCreateLabels, normalAttributes, showGraphicModifiers, showHostileIndicator, showLocation, showTextModifiers, text, unitsFormat, visible
 
Constructor Summary
MinimumSafeDistanceZones(String sidc)
          Create the graphic.
 
Method Summary
protected  void applyDelegateOwner(Object owner)
          Invoked each frame to apply to the current delegate owner to all renderable objects used to draw the graphic.
protected  SurfaceCircle createCircle()
          Create a circle for a range ring.
protected  void createLabels()
          Create labels for each ring.
protected  void createShapes(DrawContext dc)
          Create the circles used to draw this graphic.
protected  void determineLabelPositions(DrawContext dc)
          Determine positions for the start and end labels.
protected  void doRenderGraphic(DrawContext dc)
          Render the polygon.
 Angle getLabelAngle()
          Indicates the angle used to position this graphic's labels.
 Position getPosition()
          Indicates the center position of the range ran.
 Iterable<? extends Position> getPositions()
          Indicates the positions of the control points that place and orient the graphic.
 Position getReferencePosition()
          A position associated with the object that indicates its aggregate geographic position.
static List<String> getSupportedGraphics()
          Indicates the graphics supported by this class.
 void preRender(DrawContext dc)
          
 void setLabelAngle(Angle angle)
          Specifies the angle used to position this graphic's labels.
 void setPosition(Position position)
          Specifies the center position of the range ran.
 void setPositions(Iterable<? extends Position> positions)
          Specifies the positions of the control points that place and orient the graphic.
 
Methods inherited from class gov.nasa.worldwind.symbology.milstd2525.AbstractMilStd2525TacticalGraphic
applyDefaultAttributes, createSymbol, getDefaultMaterial, getIdentifier, getModifier, getOutlineStippleFactor, getOutlineStipplePattern, getStatus, getText, mustShowHostileIndicator, setModifier, setStatus
 
Methods inherited from class gov.nasa.worldwind.symbology.AbstractTacticalGraphic
addLabel, applyLabelAttributes, applyOverrideAttributes, computeGeometry, computeLabelInteriorOpacity, determineActiveAttributes, determineDelegateOwner, determinePerFrameAttributes, doRenderGraphicModifiers, doRenderTextModifiers, getActiveDelegateOwner, getActiveOverrideAttributes, getActiveShapeAttributes, getAttributes, getDefaultLabelOffset, getDelegateOwner, getHighlightAttributes, getLabelMaterial, getLabelOffset, getUnitsFormat, isHighlighted, isShowGraphicModifiers, isShowHostileIndicator, isShowLocation, isShowTextModifiers, isVisible, move, moveTo, onModifierChanged, render, setAttributes, setDelegateOwner, setHighlightAttributes, setHighlighted, setLabelOffset, setShowGraphicModifiers, setShowHostileIndicator, setShowLocation, setShowTextModifiers, setText, setUnitsFormat, setVisible
 
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, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface gov.nasa.worldwind.symbology.TacticalGraphic
getAttributes, getDelegateOwner, getHighlightAttributes, getLabelOffset, getUnitsFormat, isShowGraphicModifiers, isShowHostileIndicator, isShowLocation, isShowTextModifiers, isVisible, setAttributes, setDelegateOwner, setHighlightAttributes, setLabelOffset, setShowGraphicModifiers, setShowHostileIndicator, setShowLocation, setShowTextModifiers, setText, setUnitsFormat, setVisible
 
Methods inherited from interface gov.nasa.worldwind.render.Renderable
render
 
Methods inherited from interface gov.nasa.worldwind.render.Highlightable
isHighlighted, setHighlighted
 
Methods inherited from interface gov.nasa.worldwind.Movable
move, moveTo
 
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

DEFAULT_LABEL_ANGLE

public static final Angle DEFAULT_LABEL_ANGLE
Default angle used to position the graphic's labels. This default angle (60 degrees) is chosen to match the graphic template defined by MIL-STD-2525C, pg. 613.


labelAngle

protected Angle labelAngle
Position the labels along a line radiating out from the center of the circle at this angle from North.


positions

protected Iterable<? extends Position> positions
Position of the center of the range fan.


rings

protected List<SurfaceCircle> rings
Rings that make up the range fan.

Constructor Detail

MinimumSafeDistanceZones

public MinimumSafeDistanceZones(String sidc)
Create the graphic.

Parameters:
sidc - Symbol code the identifies the graphic.
Method Detail

applyDelegateOwner

protected void applyDelegateOwner(Object owner)
Invoked each frame to apply to the current delegate owner to all renderable objects used to draw the graphic. This base class will apply the delegate owner to Label objects. Subclasses must implement this method to apply the delegate owner to any Renderables that they will draw in order to render the graphic.

Specified by:
applyDelegateOwner in class AbstractTacticalGraphic
Parameters:
owner - Current delegate owner.

createCircle

protected SurfaceCircle createCircle()
Create a circle for a range ring.

Returns:
New circle.

createLabels

protected void createLabels()
Create labels for each ring.

Overrides:
createLabels in class AbstractTacticalGraphic

createShapes

protected void createShapes(DrawContext dc)
Create the circles used to draw this graphic.

Parameters:
dc - Current draw context.

determineLabelPositions

protected void determineLabelPositions(DrawContext dc)
Determine positions for the start and end labels.

Overrides:
determineLabelPositions in class AbstractTacticalGraphic
Parameters:
dc - Current draw context.

doRenderGraphic

protected void doRenderGraphic(DrawContext dc)
Render the polygon.

Specified by:
doRenderGraphic in class AbstractTacticalGraphic
Parameters:
dc - Current draw context.
See Also:
AbstractTacticalGraphic.doRenderTextModifiers(gov.nasa.worldwind.render.DrawContext), AbstractTacticalGraphic.doRenderGraphicModifiers(gov.nasa.worldwind.render.DrawContext)

getLabelAngle

public Angle getLabelAngle()
Indicates the angle used to position this graphic's labels. The labels are positioned along a line radiating out from the center of the circle, and at this bearing from North.

Returns:
The angle used to position this graphic's labels.

getPosition

public Position getPosition()
Indicates the center position of the range ran.

Returns:
The range fan center position.

getPositions

public Iterable<? extends Position> getPositions()
Indicates the positions of the control points that place and orient the graphic.

Specified by:
getPositions in interface TacticalGraphic
Returns:
positions that orient the graphic. How many positions are returned depends on the type of graphic. Some graphics require only a single position, others require many.

getReferencePosition

public Position getReferencePosition()
A position associated with the object that indicates its aggregate geographic position. The chosen position varies among implementers of this interface. For objects defined by a list of positions, the reference position is typically the first position in the list. For symmetric objects the reference position is often the center of the object. In many cases the object's reference position may be explicitly specified by the application.

Specified by:
getReferencePosition in interface Movable
Returns:
the object's reference position, or null if no reference position is available.

getSupportedGraphics

public static List<String> getSupportedGraphics()
Indicates the graphics supported by this class.

Returns:
List of masked SIDC strings that identify graphics that this class supports.

preRender

public void preRender(DrawContext dc)

Specified by:
preRender in interface PreRenderable

setLabelAngle

public void setLabelAngle(Angle angle)
Specifies the angle used to position this graphic's labels. The labels are positioned along a line radiating out from the center of the circle, and at this bearing from North.

Parameters:
angle - The angle used to position this graphic's labels.

setPosition

public void setPosition(Position position)
Specifies the center position of the range ran.

Parameters:
position - The new center position.

setPositions

public void setPositions(Iterable<? extends Position> positions)
Specifies the positions of the control points that place and orient the graphic.

Specified by:
setPositions in interface TacticalGraphic
Parameters:
positions - Control points. This graphic uses only one control point, which determines the center of the circle.

NASA World Wind