NASA World Wind

gov.nasa.worldwind.render
Class SurfaceEllipse

java.lang.Object
  extended by gov.nasa.worldwind.avlist.AVListImpl
      extended by gov.nasa.worldwind.WWObjectImpl
          extended by gov.nasa.worldwind.render.AbstractSurfaceObject
              extended by gov.nasa.worldwind.render.AbstractSurfaceShape
                  extended by gov.nasa.worldwind.render.SurfaceEllipse
All Implemented Interfaces:
AVList, MessageListener, ExtentHolder, MeasurableArea, MeasurableLength, Movable, Highlightable, OrderedRenderable, PreRenderable, Renderable, SurfaceObject, SurfaceShape, Restorable, WWObject, PropertyChangeListener, EventListener
Direct Known Subclasses:
SurfaceCircle

public class SurfaceEllipse
extends AbstractSurfaceShape


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  LatLon center
           
protected static int DEFAULT_NUM_INTERVALS
           
protected  Angle heading
           
protected  double majorRadius
           
protected static int MIN_NUM_INTERVALS
           
protected  double minorRadius
           
 
Fields inherited from class gov.nasa.worldwind.render.AbstractSurfaceShape
activeAttrs, activeGeometry, activeOutlineGeometry, 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
 
Constructor Summary
SurfaceEllipse()
          Constructs a new surface ellipse with the default attributes, default center location, default radii, and default heading.
SurfaceEllipse(LatLon center, double majorRadius, double minorRadius)
          Constructs a new surface ellipse with the default attributes, the specified center location and radii (in meters).
SurfaceEllipse(LatLon center, double majorRadius, double minorRadius, Angle heading)
          Constructs a new surface ellipse with the default attributes, the specified center location, radii (in meters), and heading clockwise from North.
SurfaceEllipse(LatLon center, double majorRadius, double minorRadius, Angle heading, int intervals)
          Constructs a new surface ellipse with the default attributes, the specified center location, radii (in meters), heading clockwise from North, and initial number of geometry intervals.
SurfaceEllipse(ShapeAttributes normalAttrs)
          Constructs a new surface ellipse with the specified normal (as opposed to highlight) attributes, default center location, default radii, and default heading.
SurfaceEllipse(ShapeAttributes normalAttrs, LatLon center, double majorRadius, double minorRadius)
          Constructs a new surface ellipse with the specified normal (as opposed to highlight) attributes, the specified center location, and radii (in meters).
SurfaceEllipse(ShapeAttributes normalAttrs, LatLon center, double majorRadius, double minorRadius, Angle heading)
          Constructs a new surface ellipse with the specified normal (as opposed to highlight) attributes, the specified center location, radii (in meters), and heading clockwise from North.
SurfaceEllipse(ShapeAttributes normalAttrs, LatLon center, double majorRadius, double minorRadius, Angle heading, int intervals)
          Constructs a new surface ellipse with the specified normal (as opposed to highlight) attributes, the specified center location, radii (in meters), heading clockwise from North, and initial number of geometry intervals.
 
Method Summary
protected  List<LatLon> computeLocations(Globe globe, int intervals)
           
protected  int computeNumEdgeIntervals(Globe globe, double edgeIntervalsPerDegree)
           
protected  int computeNumIntervals(Globe globe, double edgeIntervalsPerDegree)
           
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)
           
 LatLon getCenter()
           
 Angle getHeading()
           
 int getIntervals()
           
 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.
 double getMajorRadius()
           
 double getMinorRadius()
           
 Position getReferencePosition()
          A position associated with the object that indicates its aggregate geographic position.
 Object getStateKey(DrawContext dc)
          Returns an object that uniquely identifies the surface object's state on the specified draw context.
protected  void legacyRestoreState(RestorableSupport rs, RestorableSupport.StateObject context)
          Restores state values from previous versions of the SurfaceShape state XML.
 void setCenter(LatLon center)
           
 void setHeading(Angle heading)
           
 void setIntervals(int intervals)
           
 void setMajorRadius(double radius)
           
 void setMinorRadius(double radius)
           
 void setRadii(double majorRadius, double minorRadius)
           
 
Methods inherited from class gov.nasa.worldwind.render.AbstractSurfaceShape
addIntermediateLocations, applyInteriorState, applyInteriorTextureState, applyModelviewTransform, applyOutlineState, beginDrawing, canContainPole, clearCaches, computeEdgeIntervalsPerDegree, computeSectors, computeSectors, containsPole, createActiveAttributes, createGeometryKey, cutAlongDateLine, determineActiveAttributes, determineActiveGeometry, doDrawGeographic, doTessellateInterior, drawGeographic, drawInterior, drawOutline, endDrawing, export, exportAsKML, generateIntermediateLocations, getActiveAttributes, getActiveGeometry, getArea, getArea, getAttributes, getCachedGeometry, getExtent, getHeight, getHighlightAttributes, getInteriorTexture, getLength, getMinAndMaxEdgeIntervals, getPathType, getPerimeter, getRestorableState, getSectors, getTexelsPerEdgeInterval, getWidth, handleUnsuccessfulInteriorTessellation, intersectionWithMeridian, isExportFormatSupported, isHighlighted, isSectorEmpty, makeOrderedPreRenderable, move, moveTo, onShapeChanged, pathTypeFromString, repeatAroundDateline, 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.WWObjectImpl
onMessage, 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, 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

center

protected LatLon center

DEFAULT_NUM_INTERVALS

protected static final int DEFAULT_NUM_INTERVALS
See Also:
Constant Field Values

heading

protected Angle heading

majorRadius

protected double majorRadius

MIN_NUM_INTERVALS

protected static final int MIN_NUM_INTERVALS
See Also:
Constant Field Values

minorRadius

protected double minorRadius
Constructor Detail

SurfaceEllipse

public SurfaceEllipse()
Constructs a new surface ellipse with the default attributes, default center location, default radii, and default heading.


SurfaceEllipse

public SurfaceEllipse(LatLon center,
                      double majorRadius,
                      double minorRadius)
Constructs a new surface ellipse with the default attributes, the specified center location and radii (in meters).

Parameters:
center - the ellipse's center location.
majorRadius - the ellipse's major radius, in meters.
minorRadius - the ellipse's minor radius, in meters.
Throws:
IllegalArgumentException - if the center is null, or if either radii is negative.

SurfaceEllipse

public SurfaceEllipse(LatLon center,
                      double majorRadius,
                      double minorRadius,
                      Angle heading)
Constructs a new surface ellipse with the default attributes, the specified center location, radii (in meters), and heading clockwise from North.

Parameters:
center - the ellipse's center location.
majorRadius - the ellipse's major radius, in meters.
minorRadius - the ellipse's minor radius, in meters.
heading - the ellipse's heading, clockwise from North.
Throws:
IllegalArgumentException - if the center or heading are null, or if either radii is negative.

SurfaceEllipse

public SurfaceEllipse(LatLon center,
                      double majorRadius,
                      double minorRadius,
                      Angle heading,
                      int intervals)
Constructs a new surface ellipse with the default attributes, the specified center location, radii (in meters), heading clockwise from North, and initial number of geometry intervals.

Parameters:
center - the ellipse's center location.
majorRadius - the ellipse's major radius, in meters.
minorRadius - the ellipse's minor radius, in meters.
heading - the ellipse's heading, clockwise from North.
intervals - the initial number of intervals (or slices) defining the ellipse's geometry.
Throws:
IllegalArgumentException - if the center or heading are null, if either radii is negative, or if the number of intervals is less than 8.

SurfaceEllipse

public SurfaceEllipse(ShapeAttributes normalAttrs)
Constructs a new surface ellipse with the specified normal (as opposed to highlight) attributes, default center location, default radii, and default heading. 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.

SurfaceEllipse

public SurfaceEllipse(ShapeAttributes normalAttrs,
                      LatLon center,
                      double majorRadius,
                      double minorRadius)
Constructs a new surface ellipse with the specified normal (as opposed to highlight) attributes, the specified center location, and radii (in meters). 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.
center - the ellipse's center location.
majorRadius - the ellipse's major radius, in meters.
minorRadius - the ellipse's minor radius, in meters.
Throws:
IllegalArgumentException - if the center is null, or if either radii is negative.

SurfaceEllipse

public SurfaceEllipse(ShapeAttributes normalAttrs,
                      LatLon center,
                      double majorRadius,
                      double minorRadius,
                      Angle heading)
Constructs a new surface ellipse with the specified normal (as opposed to highlight) attributes, the specified center location, radii (in meters), and heading clockwise from North. 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.
center - the ellipse's center location.
majorRadius - the ellipse's major radius, in meters.
minorRadius - the ellipse's minor radius, in meters.
heading - the ellipse's heading, clockwise from North.
Throws:
IllegalArgumentException - if the center or heading are null, or if either radii is negative.

SurfaceEllipse

public SurfaceEllipse(ShapeAttributes normalAttrs,
                      LatLon center,
                      double majorRadius,
                      double minorRadius,
                      Angle heading,
                      int intervals)
Constructs a new surface ellipse with the specified normal (as opposed to highlight) attributes, the specified center location, radii (in meters), heading clockwise from North, and initial number of geometry intervals. 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.
center - the ellipse's center location.
majorRadius - the ellipse's major radius, in meters.
minorRadius - the ellipse's minor radius, in meters.
heading - the ellipse's heading, clockwise from North.
intervals - the initial number of intervals (or slices) defining the ellipse's geometry.
Throws:
IllegalArgumentException - if the center or heading are null, if either radii is negative, or if the number of intervals is less than 8.
Method Detail

computeLocations

protected List<LatLon> computeLocations(Globe globe,
                                        int intervals)

computeNumEdgeIntervals

protected int computeNumEdgeIntervals(Globe globe,
                                      double edgeIntervalsPerDegree)

computeNumIntervals

protected int computeNumIntervals(Globe globe,
                                  double edgeIntervalsPerDegree)

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

getCenter

public LatLon getCenter()

getHeading

public Angle getHeading()

getIntervals

public int getIntervals()

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.

Parameters:
globe - the globe the shape is related to.
Returns:
the shapes locations on the globe, or null if the shape has no locations.

getMajorRadius

public double getMajorRadius()

getMinorRadius

public double getMinorRadius()

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.

getStateKey

public Object getStateKey(DrawContext dc)
Returns an object that uniquely identifies the surface object's state on the specified draw context. This object is guaranteed to be globally unique; an equality test with a state key from another always returns false.

The returned state key is constructed the SurfaceShape's unique ID, last modified time, and its active attributes. The returned state key has no dependency on the Globe. Subclasses that depend on the Globe should return a state key that include the globe's state key.

Overridden to include the globe's state key in the returned state key.

Specified by:
getStateKey in interface SurfaceObject
Overrides:
getStateKey in class AbstractSurfaceShape
Parameters:
dc - the draw context the state key relates to.
Returns:
an object representing surface object's current state.
See Also:
Globe.getStateKey(DrawContext)

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.

setCenter

public void setCenter(LatLon center)

setHeading

public void setHeading(Angle heading)

setIntervals

public void setIntervals(int intervals)

setMajorRadius

public void setMajorRadius(double radius)

setMinorRadius

public void setMinorRadius(double radius)

setRadii

public void setRadii(double majorRadius,
                     double minorRadius)

NASA World Wind