NASA World Wind

gov.nasa.worldwind.render
Interface SurfaceShape

All Superinterfaces:
AVList, ExtentHolder, Highlightable, MeasurableArea, MeasurableLength, OrderedRenderable, PreRenderable, Renderable, Restorable, SurfaceObject
All Known Implementing Classes:
AbstractSurfaceShape, KMLSurfacePolygonImpl, SectorSelector.RegionShape, SurfaceCircle, SurfaceEllipse, SurfacePolygon, SurfacePolygons, SurfacePolyline, SurfacePolylines, SurfaceQuad, SurfaceSector, SurfaceSquare

public interface SurfaceShape
extends SurfaceObject, Highlightable, ExtentHolder, MeasurableArea, MeasurableLength, Restorable

Common interface for surface conforming shapes such as SurfacePolygon, SurfacePolyline, SurfaceEllipse, SurfaceQuad, and SurfaceSector.

SurfaceShape extends the SurfaceObject interface, and inherits SurfaceObject's batch rendering capabilities.


Method Summary
 double getArea(Globe globe, boolean terrainConformant)
          Returns the shapes's area in square meters.
 ShapeAttributes getAttributes()
          Returns the surface shape's normal (as opposed to highlight) attributes.
 ShapeAttributes getHighlightAttributes()
          Returns the surface shape's highlight attributes.
 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.
 int[] getMinAndMaxEdgeIntervals()
          Returns the minimum and maximum number of interpolated intervals that may be added to each shape edge.
 String getPathType()
          Returns the path type used to interpolate between locations on this SurfaceShape.
 double getTexelsPerEdgeInterval()
          Returns the number of texels per shape edge interval.
 boolean isHighlighted()
          Indicates whether to highlight the surface shape.
 void setAttributes(ShapeAttributes normalAttrs)
          Specifies the surface shape's normal (as opposed to highlight) attributes.
 void setHighlightAttributes(ShapeAttributes highlightAttrs)
          Specifies the surface shape's highlight attributes.
 void setHighlighted(boolean highlighted)
          Specifies whether the surface shape is highlighted.
 void setMinAndMaxEdgeIntervals(int minEdgeIntervals, int maxEdgeIntervals)
          Sets the minimum and maximum number of interpolated intervals that may be added to each shape edge.
 void setPathType(String pathType)
          Sets the path type used to interpolate between locations on this SurfaceShape.
 void setTexelsPerEdgeInterval(double texelsPerEdgeInterval)
          Sets the number of texels per shape edge interval.
 
Methods inherited from interface gov.nasa.worldwind.render.SurfaceObject
getDelegateOwner, getDistanceFromEye, getExtent, getSectors, getStateKey, 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
 
Methods inherited from interface gov.nasa.worldwind.geom.ExtentHolder
getExtent
 
Methods inherited from interface gov.nasa.worldwind.geom.MeasurableArea
getArea, getHeight, getPerimeter, getWidth
 
Methods inherited from interface gov.nasa.worldwind.geom.MeasurableLength
getLength
 
Methods inherited from interface gov.nasa.worldwind.Restorable
getRestorableState, restoreState
 

Method Detail

getArea

double getArea(Globe globe,
               boolean terrainConformant)
Returns the shapes's area in square meters. If terrainConformant is true, the area returned is the surface area of the terrain, including its hillsides and other undulations.

Parameters:
globe - the globe the shape is related to.
terrainConformant - whether or not the returned area should treat the shape as conforming to the terrain.
Returns:
the shape's area in square meters. Returns -1 if the object does not form an area due to an insufficient number of vertices or any other condition.
Throws:
IllegalArgumentException - if globe is null.

getAttributes

ShapeAttributes getAttributes()
Returns the surface shape's normal (as opposed to highlight) attributes. Modifying the contents of the returned reference causes this shape's appearance to change accordingly.

Returns:
the surface shape's normal attributes. May be null.

getHighlightAttributes

ShapeAttributes getHighlightAttributes()
Returns the surface shape's highlight attributes. Modifying the contents of the returned reference causes this shape's appearance to change accordingly.

Returns:
the surface shape's highlight attributes. May be null.

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.

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

getMinAndMaxEdgeIntervals

int[] getMinAndMaxEdgeIntervals()
Returns the minimum and maximum number of interpolated intervals that may be added to each shape edge.

Returns:
array of two elements, the first element is minEdgeIntervals, the second element is maxEdgeIntervals.
See Also:
setMinAndMaxEdgeIntervals(int, int)

getPathType

String getPathType()
Returns the path type used to interpolate between locations on this SurfaceShape.

Returns:
path interpolation type.

getTexelsPerEdgeInterval

double getTexelsPerEdgeInterval()
Returns the number of texels per shape edge interval.

Returns:
texels per shape edge interval.
See Also:
setTexelsPerEdgeInterval(double)

isHighlighted

boolean isHighlighted()
Indicates whether to highlight the surface shape.

Specified by:
isHighlighted in interface Highlightable
Returns:
true if highlighted, otherwise false.
See Also:
setHighlighted(boolean), setHighlightAttributes(ShapeAttributes)

setAttributes

void setAttributes(ShapeAttributes normalAttrs)
Specifies the surface shape's normal (as opposed to highlight) attributes. Modifying the attribute reference after calling setAttributes() causes this shape's appearance to change accordingly.

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

setHighlightAttributes

void setHighlightAttributes(ShapeAttributes highlightAttrs)
Specifies the surface shape's highlight attributes. Modifying the attribute reference after calling setHighlightAttributes() causes this shape's appearance to change accordingly.

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

setHighlighted

void setHighlighted(boolean highlighted)
Specifies whether the surface shape is highlighted.

Specified by:
setHighlighted in interface Highlightable
Parameters:
highlighted - true to highlight the surface shape, otherwise false. The default value is false.
See Also:
setHighlightAttributes(ShapeAttributes)

setMinAndMaxEdgeIntervals

void setMinAndMaxEdgeIntervals(int minEdgeIntervals,
                               int maxEdgeIntervals)
Sets the minimum and maximum number of interpolated intervals that may be added to each shape edge. The minimum and maximum values may be 0, or any positive integer. Note that Setting either of minEdgeIntervals or maxEdgeIntervals too large may adversely impact surface shape rendering performance.

Parameters:
minEdgeIntervals - the minimum number of interpolated edge intervals.
maxEdgeIntervals - the maximum number of interpolated edge intervals.
Throws:
IllegalArgumentException - if either of minEdgeIntervals or maxEdgeIntervals is less than or equal to zero.
See Also:
setTexelsPerEdgeInterval(double)

setPathType

void setPathType(String pathType)
Sets the path type used to interpolate between locations on this SurfaceShape. This should be one of

Parameters:
pathType - path interpolation type.
Throws:
IllegalArgumentException - if pathType is null.

setTexelsPerEdgeInterval

void setTexelsPerEdgeInterval(double texelsPerEdgeInterval)
Sets the number of texels per shape edge interval. This value controls how many interpolated intervals are added to each shape edge, depending on size of the original edge in texels. Each shape is responsible for defining what an edge is, though for most shapes it is defined as the edge between implicit or caller-specified shape locations. The number of interpolated intervals is limited by the values set in a call to setMinAndMaxEdgeIntervals(int, int).

Parameters:
texelsPerEdgeInterval - the size, in texels, of each interpolated edge interval.
Throws:
IllegalArgumentException - if texelsPerEdgeInterval is less than or equal to zero.
See Also:
setMinAndMaxEdgeIntervals(int, int)

NASA World Wind