NASA World Wind

gov.nasa.worldwind.render
Class SurfacePolyline

java.lang.Object
  extended by gov.nasa.worldwind.avlist.AVListImpl
      extended by gov.nasa.worldwind.render.AbstractSurfaceObject
          extended by gov.nasa.worldwind.render.AbstractSurfaceShape
              extended by gov.nasa.worldwind.render.SurfacePolyline
All Implemented Interfaces:
AVList, Exportable, ExtentHolder, MeasurableArea, MeasurableLength, Movable, Highlightable, OrderedRenderable, PreRenderable, Renderable, SurfaceObject, SurfaceShape, Restorable

public class SurfacePolyline
extends AbstractSurfaceShape
implements Exportable


Nested Class Summary
 
Nested classes/interfaces inherited from class gov.nasa.worldwind.render.AbstractSurfaceShape
AbstractSurfaceShape.GeometryKey, AbstractSurfaceShape.SurfaceShapeStateKey
 
Nested classes/interfaces inherited from class gov.nasa.worldwind.render.AbstractSurfaceObject
AbstractSurfaceObject.CacheEntry, AbstractSurfaceObject.SurfaceObjectStateKey
 
Field Summary
protected  boolean closed
           
protected  Iterable<? extends LatLon> locations
           
 
Fields inherited from class gov.nasa.worldwind.render.AbstractSurfaceShape
activeAttrs, activeGeometry, areaMeasurer, areaMeasurerLastModifiedTime, DEFAULT_HIGHLIGHT_MATERIAL, DEFAULT_INTERIOR_MATERIAL, DEFAULT_MAX_EDGE_INTERVALS, DEFAULT_MIN_EDGE_INTERVALS, DEFAULT_OUTLINE_MATERIAL, DEFAULT_PATH_TYPE, DEFAULT_TEXELS_PER_EDGE_INTERVAL, defaultAttrs, geometryCache, highlightAttrs, highlighted, maxEdgeIntervals, minEdgeIntervals, normalAttrs, pathType, sectorCache, stackHandler, texelsPerEdgeInterval, texture, vertexBuffer
 
Fields inherited from class gov.nasa.worldwind.render.AbstractSurfaceObject
delegateOwner, drawBoundingSectors, enableBatchPicking, extentCache, lastModifiedTime, nextUniqueId, pickLayer, pickSupport, pickTileBuilder, pickTiles, uniqueId, visible
 
Fields inherited from interface gov.nasa.worldwind.Exportable
FORMAT_NOT_SUPPORTED, FORMAT_PARTIALLY_SUPPORTED, FORMAT_SUPPORTED
 
Constructor Summary
SurfacePolyline()
          Constructs a new surface polyline with the default attributes and no locations.
SurfacePolyline(Iterable<? extends LatLon> iterable)
          Constructs a new surface polyline with the default attributes and the specified iterable of locations.
SurfacePolyline(ShapeAttributes normalAttrs)
          Constructs a new surface polyline with the specified normal (as opposed to highlight) attributes and no locations.
SurfacePolyline(ShapeAttributes normalAttrs, Iterable<? extends LatLon> iterable)
          Constructs a new surface polyline with the specified normal (as opposed to highlight) attributes and the specified iterable of locations.
 
Method Summary
protected  List<List<LatLon>> createGeometry(Globe globe, SurfaceTileDrawContext sdc)
           
protected  void doGetRestorableState(RestorableSupport rs, RestorableSupport.StateObject context)
           
protected  void doMoveTo(Position oldReferencePosition, Position newReferencePosition)
           
protected  void doRestoreState(RestorableSupport rs, RestorableSupport.StateObject context)
           
protected  void drawInterior(DrawContext dc, SurfaceTileDrawContext sdc)
           
 void export(String mimeType, Object output)
          Exports the object to a format.
protected  void exportAsKML(Object output)
          Export the polyline to KML as a <Placemark> element.
 Iterable<? extends LatLon> getLocations()
           
 Iterable<? extends LatLon> getLocations(Globe globe)
          Returns the shape's locations as they appear on the specified globe, or null if the shape has no locations.
 Position getReferencePosition()
          A position associated with the object that indicates its aggregate geographic position.
 boolean isClosed()
           
 String isExportFormatSupported(String mimeType)
          Does this object support a certain export format?
protected  void legacyRestoreState(RestorableSupport rs, RestorableSupport.StateObject context)
          Restores state values from previous versions of the SurfaceShape state XML.
 void setClosed(boolean closed)
           
 void setLocations(Iterable<? extends LatLon> iterable)
           
 
Methods inherited from class gov.nasa.worldwind.render.AbstractSurfaceShape
addIntermediateLocations, applyInteriorState, applyInteriorTextureState, applyModelviewTransform, applyOutlineState, beginDrawing, clearCaches, computeEdgeIntervalsPerDegree, computeSectors, computeSectors, createActiveAttributes, createGeometryKey, determineActiveAttributes, determineActiveGeometry, doDrawGeographic, doTessellateInterior, drawGeographic, drawOutline, endDrawing, generateIntermediateLocations, getActiveAttributes, getActiveGeometry, getArea, getArea, getAttributes, getCachedGeometry, getExtent, getHeight, getHighlightAttributes, getInteriorTexture, getLength, getMinAndMaxEdgeIntervals, getPathType, getPerimeter, getRestorableState, getSectors, getStateKey, getTexelsPerEdgeInterval, getWidth, handleUnsuccessfulInteriorTessellation, isHighlighted, isSectorEmpty, makeOrderedPreRenderable, move, moveTo, onShapeChanged, pathTypeFromString, restoreState, setAttributes, setHighlightAttributes, setHighlighted, setMinAndMaxEdgeIntervals, setPathType, setTexelsPerEdgeInterval, setupAreaMeasurer, tessellateInterior, tessellateInteriorVertices
 
Methods inherited from class gov.nasa.worldwind.render.AbstractSurfaceObject
buildPickRepresentation, computeExtent, computeExtent, createPickedObject, createPickTileBuilder, drawBoundingSectors, drawOrderedRenderable, drawPickRepresentation, getDelegateOwner, getDistanceFromEye, getExtent, getUniqueId, intersectsFrustum, intersectsPickFrustum, intersectsVisibleSector, isDrawBoundingSectors, isEnableBatchPicking, isVisible, makeOrderedRenderable, nextUniqueId, pick, pickBatched, pickOrderedRenderable, preRender, render, setDelegateOwner, setDrawBoundingSectors, setEnableBatchPicking, setVisible, updateModifiedTime
 
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.render.SurfaceObject
getDelegateOwner, getDistanceFromEye, getExtent, isVisible, pick, preRender, render, setDelegateOwner, setVisible
 
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

closed

protected boolean closed

locations

protected Iterable<? extends LatLon> locations
Constructor Detail

SurfacePolyline

public SurfacePolyline()
Constructs a new surface polyline with the default attributes and no locations.


SurfacePolyline

public SurfacePolyline(Iterable<? extends LatLon> iterable)
Constructs a new surface polyline with the default attributes and the specified iterable of locations.

Note: If fewer than two locations is specified, no polyline is drawn.

Parameters:
iterable - the polyline locations.
Throws:
IllegalArgumentException - if the locations iterable is null.

SurfacePolyline

public SurfacePolyline(ShapeAttributes normalAttrs)
Constructs a new surface polyline with the specified normal (as opposed to highlight) attributes and no locations. Modifying the attribute reference after calling this constructor causes this shape's appearance to change accordingly.

Parameters:
normalAttrs - the normal attributes. May be null, in which case default attributes are used.

SurfacePolyline

public SurfacePolyline(ShapeAttributes normalAttrs,
                       Iterable<? extends LatLon> iterable)
Constructs a new surface polyline with the specified normal (as opposed to highlight) attributes and the specified iterable of locations. Modifying the attribute reference after calling this constructor causes this shape's appearance to change accordingly.

Note: If fewer than two locations is specified, no polyline is drawn.

Parameters:
normalAttrs - the normal attributes. May be null, in which case default attributes are used.
iterable - the polyline locations.
Throws:
IllegalArgumentException - if the locations iterable is null.
Method Detail

createGeometry

protected List<List<LatLon>> createGeometry(Globe globe,
                                            SurfaceTileDrawContext sdc)
Specified by:
createGeometry in class AbstractSurfaceShape

doGetRestorableState

protected void doGetRestorableState(RestorableSupport rs,
                                    RestorableSupport.StateObject context)
Overrides:
doGetRestorableState in class AbstractSurfaceShape

doMoveTo

protected void doMoveTo(Position oldReferencePosition,
                        Position newReferencePosition)
Specified by:
doMoveTo in class AbstractSurfaceShape

doRestoreState

protected void doRestoreState(RestorableSupport rs,
                              RestorableSupport.StateObject context)
Overrides:
doRestoreState in class AbstractSurfaceShape

drawInterior

protected void drawInterior(DrawContext dc,
                            SurfaceTileDrawContext sdc)
Overrides:
drawInterior in class AbstractSurfaceShape

export

public void export(String mimeType,
                   Object output)
            throws IOException,
                   UnsupportedOperationException
Description copied from interface: Exportable
Exports the object to a format.

Specified by:
export in interface Exportable
Parameters:
mimeType - Desired export format. Call Exportable.isExportFormatSupported(String) to make sure that the object supports the format before trying to export, or be prepared to handle UnsupportedOperationException.
output - Object that will receive the exported data. The type of this object depends on the export format. All formats should support java.io.OutputStream. Text based format (for example, XML formats) should also support java.io.Writer. Certain formats may also support other object types.
Throws:
IOException - if an exception occurs while exporting the data.
UnsupportedOperationException - if the format is not supported by this object, or if the output argument is not of a supported type.
See Also:
Exportable.isExportFormatSupported(String)

exportAsKML

protected void exportAsKML(Object output)
                    throws IOException,
                           javax.xml.stream.XMLStreamException
Export the polyline to KML as a <Placemark> element. The output object will receive the data. This object must be one of: java.io.Writer java.io.OutputStream javax.xml.stream.XMLStreamWriter

Parameters:
output - Object to receive the generated KML.
Throws:
javax.xml.stream.XMLStreamException - If an exception occurs while writing the KML
IOException - if an exception occurs while exporting the data.
See Also:
export(String, Object)

getLocations

public Iterable<? extends LatLon> getLocations()

getLocations

public Iterable<? extends LatLon> getLocations(Globe globe)
Description copied from interface: SurfaceShape
Returns the shape's locations as they appear on the specified globe, or null if the shape has no locations.

Specified by:
getLocations in interface SurfaceShape
Parameters:
globe - the globe the shape is related to.
Returns:
the shapes locations on the globe, or null if the shape has no locations.

getReferencePosition

public Position getReferencePosition()
Description copied from interface: Movable
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
Specified by:
getReferencePosition in class AbstractSurfaceShape
Returns:
the object's reference position, or null if no reference position is available.

isClosed

public boolean isClosed()

isExportFormatSupported

public String isExportFormatSupported(String mimeType)
Does this object support a certain export format?

Specified by:
isExportFormatSupported in interface Exportable
Parameters:
mimeType - Desired export format.
Returns:
One of Exportable.FORMAT_SUPPORTED, Exportable.FORMAT_NOT_SUPPORTED, or Exportable.FORMAT_PARTIALLY_SUPPORTED.
See Also:
Exportable.export(String, Object)

legacyRestoreState

protected void legacyRestoreState(RestorableSupport rs,
                                  RestorableSupport.StateObject context)
Description copied from class: AbstractSurfaceShape
Restores state values from previous versions of the SurfaceShape state XML. These values are stored or named differently than the current implementation. Those values which have not changed are ignored here, and will restored in AbstractSurfaceShape.doRestoreState(gov.nasa.worldwind.util.RestorableSupport, gov.nasa.worldwind.util.RestorableSupport.StateObject).

Overrides:
legacyRestoreState in class AbstractSurfaceShape
Parameters:
rs - RestorableSupport object which contains the state value properties.
context - active context in the RestorableSupport to read state from.

setClosed

public void setClosed(boolean closed)

setLocations

public void setLocations(Iterable<? extends LatLon> iterable)

NASA World Wind