public abstract class AbstractSurfaceShape extends AbstractSurfaceObject implements SurfaceShape, Movable, Movable2, Combinable, Draggable
SurfacePolygon
, SurfacePolyline
, SurfaceEllipse
, SurfaceQuad
, and SurfaceSector
.
SurfaceShapes have separate attributes for normal display and highlighted display. If no attributes are specified,
default attributes are used. See DEFAULT_INTERIOR_MATERIAL
, DEFAULT_OUTLINE_MATERIAL
, and DEFAULT_HIGHLIGHT_MATERIAL
.
AbstractSurfaceShape extends from AbstractSurfaceObject
, and therefore inherits
AbstractSurfaceObject's batch rendering capabilities.Modifier and Type | Class and Description |
---|---|
protected static class |
AbstractSurfaceShape.GeometryKey |
protected static class |
AbstractSurfaceShape.SurfaceShapeStateKey
Represents a surface shapes's current state.
|
AbstractSurfaceObject.CacheEntry, AbstractSurfaceObject.SurfaceObjectStateKey
Modifier and Type | Field and Description |
---|---|
protected ShapeAttributes |
activeAttrs |
protected List<List<LatLon>> |
activeGeometry |
protected List<List<LatLon>> |
activeOutlineGeometry |
protected AreaMeasurer |
areaMeasurer |
protected long |
areaMeasurerLastModifiedTime |
protected static Material |
DEFAULT_HIGHLIGHT_MATERIAL
The default highlight color.
|
protected static Material |
DEFAULT_INTERIOR_MATERIAL
The default interior color.
|
protected static int |
DEFAULT_MAX_EDGE_INTERVALS
The default maximum number of shape edge intervals.
|
protected static int |
DEFAULT_MIN_EDGE_INTERVALS
The default minimum number of shape edge intervals.
|
protected static Material |
DEFAULT_OUTLINE_MATERIAL
The default outline color.
|
protected static String |
DEFAULT_PATH_TYPE
The default path type.
|
protected static int |
DEFAULT_TEXELS_PER_EDGE_INTERVAL
The default number of texels per shape edge interval.
|
protected static ShapeAttributes |
defaultAttrs
The attributes used if attributes are not specified.
|
protected boolean |
dragEnabled |
protected DraggableSupport |
draggableSupport |
protected Map<Object,AbstractSurfaceObject.CacheEntry> |
geometryCache |
protected ShapeAttributes |
highlightAttrs |
protected boolean |
highlighted |
protected int |
maxEdgeIntervals |
protected int |
minEdgeIntervals |
protected ShapeAttributes |
normalAttrs |
protected String |
pathType |
protected Map<Object,AbstractSurfaceObject.CacheEntry> |
sectorCache |
protected OGLStackHandler |
stackHandler |
protected double |
texelsPerEdgeInterval |
protected WWTexture |
texture |
protected static FloatBuffer |
vertexBuffer |
delegateOwner, drawBoundingSectors, enableBatchPicking, extentCache, lastModifiedTime, nextUniqueId, pickLayer, pickSupport, pickTileBuilder, uniqueId, visible
Constructor and Description |
---|
AbstractSurfaceShape()
Constructs a new surface shape with the default attributes.
|
AbstractSurfaceShape(AbstractSurfaceShape source)
Creates a shallow copy of the specified source shape.
|
AbstractSurfaceShape(ShapeAttributes normalAttrs)
Constructs a new surface shape with the specified normal (as opposed to highlight) attributes.
|
Modifier and Type | Method and Description |
---|---|
protected void |
addIntermediateLocations(LatLon a,
LatLon b,
double edgeIntervalsPerDegree,
List<LatLon> locations) |
protected void |
applyInteriorState(DrawContext dc,
SurfaceTileDrawContext sdc,
ShapeAttributes attributes,
WWTexture texture,
LatLon refLocation) |
protected void |
applyInteriorTextureState(DrawContext dc,
SurfaceTileDrawContext sdc,
ShapeAttributes attributes,
WWTexture texture,
LatLon refLocation) |
protected void |
applyModelviewTransform(DrawContext dc,
SurfaceTileDrawContext sdc) |
protected void |
applyOutlineState(DrawContext dc,
ShapeAttributes attributes) |
protected void |
beginDrawing(DrawContext dc,
SurfaceTileDrawContext sdc) |
protected boolean |
canContainPole()
Indicates whether the shape is a closed polygon that can enclose a pole, or an open path that cannot.
|
protected void |
clearCaches()
Clears this SurfaceObject's internal extent cache.
|
void |
combine(CombineContext cc)
Causes this Combinable to draw its contours using the GLU tessellator attached to the provided CombineContext.
|
protected void |
combineBounds(CombineContext cc) |
protected void |
combineContours(CombineContext cc) |
protected double |
computeEdgeIntervalsPerDegree(double resolution) |
protected double |
computeEdgeIntervalsPerDegree(SurfaceTileDrawContext sdc) |
protected List<Sector> |
computeSectors(DrawContext dc)
Computes the bounding sectors for the shape.
|
protected List<Sector> |
computeSectors(Globe globe)
Computes the bounding sectors for the shape.
|
protected String |
containsPole(Iterable<? extends LatLon> locations)
Determine if a list of geographic locations encloses either the North or South pole.
|
protected ShapeAttributes |
createActiveAttributes() |
protected abstract List<List<LatLon>> |
createGeometry(Globe globe,
double edgeIntervalsPerDegree) |
protected List<List<LatLon>> |
createGeometry(Globe globe,
SurfaceTileDrawContext sdc) |
protected Object |
createGeometryKey(DrawContext dc,
SurfaceTileDrawContext sdc) |
protected List<LatLon> |
cutAlongDateLine(List<LatLon> locations,
String pole,
Globe globe)
Divide a list of locations that encloses a pole along the international date line.
|
protected void |
determineActiveAttributes()
Determines which attributes -- normal, highlight or default -- to use each frame.
|
protected void |
determineActiveGeometry(DrawContext dc,
SurfaceTileDrawContext sdc) |
protected void |
doCombineContour(CombineContext cc,
Iterable<? extends LatLon> contour) |
protected void |
doCombineContours(CombineContext cc) |
protected void |
doDrag(DragContext dragContext) |
protected void |
doDrawGeographic(DrawContext dc,
SurfaceTileDrawContext sdc) |
protected void |
doGetRestorableState(RestorableSupport rs,
RestorableSupport.StateObject context) |
protected abstract void |
doMoveTo(Globe globe,
Position oldReferencePosition,
Position newReferencePosition) |
protected abstract void |
doMoveTo(Position oldReferencePosition,
Position newReferencePosition) |
protected void |
doRestoreState(RestorableSupport rs,
RestorableSupport.StateObject context) |
protected Integer |
doTessellateInterior(DrawContext dc) |
void |
drag(DragContext dragContext)
Drag the object given the provided
DragContext . |
protected void |
drawGeographic(DrawContext dc,
SurfaceTileDrawContext sdc)
Causes the SurfaceObject to render itself to the specified region in geographic coordinates.
|
protected void |
drawInterior(DrawContext dc,
SurfaceTileDrawContext sdc) |
protected void |
drawLineStrip(DrawContext dc,
List<LatLon> locations) |
protected void |
drawOutline(DrawContext dc,
SurfaceTileDrawContext sdc) |
protected void |
endDrawing(DrawContext dc) |
void |
export(String mimeType,
Object output)
Export the Polygon.
|
protected void |
exportAsKML(Object output) |
protected void |
generateIntermediateLocations(Iterable<? extends LatLon> iterable,
double edgeIntervalsPerDegree,
boolean makeClosedPath,
List<LatLon> locations) |
protected ShapeAttributes |
getActiveAttributes() |
protected List<List<LatLon>> |
getActiveGeometry() |
double |
getArea(Globe globe)
Returns the object's area in square meters.
|
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.
|
protected List<List<LatLon>> |
getCachedGeometry(DrawContext dc,
SurfaceTileDrawContext sdc) |
Extent |
getExtent(Globe globe,
double verticalExaggeration)
Returns this SurfaceShape's enclosing volume as an
Extent in model coordinates,
given a specified Globe and vertical exaggeration (see SceneController.getVerticalExaggeration() . |
double |
getHeight(Globe globe)
Returns the latitudanl length of the object in meters.
|
ShapeAttributes |
getHighlightAttributes()
Returns the surface shape's highlight attributes.
|
protected WWTexture |
getInteriorTexture() |
double |
getLength(Globe globe)
Returns the object's length in meters.
|
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 |
getPerimeter(Globe globe)
Returns the length of the object's perimeter in meters.
|
abstract Position |
getReferencePosition()
A position associated with the object that indicates its aggregate geographic position.
|
String |
getRestorableState()
Returns an XML document string describing the object's state.
|
List<Sector> |
getSectors(DrawContext dc)
Returns a list of sectors indicating the geographic region that bounds this renderable for the specified draw
context.
|
Object |
getStateKey(DrawContext dc)
Returns an object that uniquely identifies this renderable's state for the specified draw context.
|
double |
getTexelsPerEdgeInterval()
Returns the number of texels per shape edge interval.
|
double |
getWidth(Globe globe)
Returns the longitudinal length of the object in meters.
|
protected void |
handleUnsuccessfulInteriorTessellation(DrawContext dc) |
boolean |
isDragEnabled()
Indicates whether the object is enabled for dragging.
|
String |
isExportFormatSupported(String format)
Does this object support a certain export format?
|
boolean |
isHighlighted()
Indicates whether to highlight the surface shape.
|
protected static boolean |
isSectorEmpty(Sector sector) |
protected void |
legacyRestoreState(RestorableSupport rs,
RestorableSupport.StateObject context)
Restores state values from previous versions of the SurfaceShape state XML.
|
protected void |
makeOrderedPreRenderable(DrawContext dc)
Overridden to determine the shape's active attributes during preRendering, prior to building the shape's pickable
representation and the SceneController's composite representation.
|
void |
move(Position position)
Shift the shape over the globe's surface while maintaining its original azimuth, its orientation relative to
North.
|
void |
moveTo(Globe globe,
Position position)
Move the shape over the globe's surface while maintaining its original azimuth, its orientation relative to
North.
|
void |
moveTo(Position position)
Move the shape over the globe's surface while maintaining its original azimuth, its orientation relative to
North.
|
protected void |
onShapeChanged() |
protected String |
pathTypeFromString(String s) |
protected List<List<LatLon>> |
repeatAroundDateline(List<LatLon> locations)
Returns a list containing two copies of the specified list of locations crossing the dateline: one that extends
across the -180 longitude boundary and one that extends across the +180 longitude boundary.
|
void |
restoreState(String stateInXml)
Restores the object's state to what is described in the specified XML document string.
|
void |
setAttributes(ShapeAttributes normalAttrs)
Specifies the surface shape's normal (as opposed to highlight) attributes.
|
void |
setDragEnabled(boolean enabled)
Controls whether the object is enabled for dragging.
|
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.
|
protected AreaMeasurer |
setupAreaMeasurer(Globe globe) |
protected Integer |
tessellateInterior(DrawContext dc) |
protected Integer |
tessellateInteriorVertices(GLUtessellator tess) |
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
onMessage, propertyChange
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
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getLocations
getDelegateOwner, getDistanceFromEye, getExtent, isEnableBatchPicking, isVisible, pick, preRender, setDelegateOwner, setEnableBatchPicking, setVisible
render
addPropertyChangeListener, addPropertyChangeListener, clearList, copy, firePropertyChange, firePropertyChange, getEntries, getStringValue, getValue, getValues, hasKey, removeKey, removePropertyChangeListener, removePropertyChangeListener, setValue, setValues
protected ShapeAttributes activeAttrs
protected AreaMeasurer areaMeasurer
protected long areaMeasurerLastModifiedTime
protected static final Material DEFAULT_HIGHLIGHT_MATERIAL
protected static final Material DEFAULT_INTERIOR_MATERIAL
protected static final int DEFAULT_MAX_EDGE_INTERVALS
protected static final int DEFAULT_MIN_EDGE_INTERVALS
protected static final Material DEFAULT_OUTLINE_MATERIAL
protected static final String DEFAULT_PATH_TYPE
protected static final int DEFAULT_TEXELS_PER_EDGE_INTERVAL
protected static final ShapeAttributes defaultAttrs
protected boolean dragEnabled
protected DraggableSupport draggableSupport
protected Map<Object,AbstractSurfaceObject.CacheEntry> geometryCache
protected ShapeAttributes highlightAttrs
protected boolean highlighted
protected int maxEdgeIntervals
protected int minEdgeIntervals
protected ShapeAttributes normalAttrs
protected String pathType
protected Map<Object,AbstractSurfaceObject.CacheEntry> sectorCache
protected OGLStackHandler stackHandler
protected double texelsPerEdgeInterval
protected WWTexture texture
protected static FloatBuffer vertexBuffer
public AbstractSurfaceShape()
public AbstractSurfaceShape(AbstractSurfaceShape source)
source
- the shape to copy.public AbstractSurfaceShape(ShapeAttributes normalAttrs)
normalAttrs
- the normal attributes. May be null, in which case default attributes are used.protected void addIntermediateLocations(LatLon a, LatLon b, double edgeIntervalsPerDegree, List<LatLon> locations)
protected void applyInteriorState(DrawContext dc, SurfaceTileDrawContext sdc, ShapeAttributes attributes, WWTexture texture, LatLon refLocation)
protected void applyInteriorTextureState(DrawContext dc, SurfaceTileDrawContext sdc, ShapeAttributes attributes, WWTexture texture, LatLon refLocation)
protected void applyModelviewTransform(DrawContext dc, SurfaceTileDrawContext sdc)
protected void applyOutlineState(DrawContext dc, ShapeAttributes attributes)
protected void beginDrawing(DrawContext dc, SurfaceTileDrawContext sdc)
protected boolean canContainPole()
protected void clearCaches()
clearCaches
in class AbstractSurfaceObject
public void combine(CombineContext cc)
combine
in interface Combinable
cc
- the CombineContext to be used.CombineContext
protected void combineBounds(CombineContext cc)
protected void combineContours(CombineContext cc)
protected double computeEdgeIntervalsPerDegree(double resolution)
protected double computeEdgeIntervalsPerDegree(SurfaceTileDrawContext sdc)
protected List<Sector> computeSectors(DrawContext dc)
dc
- Current draw context.protected List<Sector> computeSectors(Globe globe)
globe
- Current globe.protected String containsPole(Iterable<? extends LatLon> locations)
locations
- Locations to test.canContainPole()
returns false.protected ShapeAttributes createActiveAttributes()
protected abstract List<List<LatLon>> createGeometry(Globe globe, double edgeIntervalsPerDegree)
protected List<List<LatLon>> createGeometry(Globe globe, SurfaceTileDrawContext sdc)
protected Object createGeometryKey(DrawContext dc, SurfaceTileDrawContext sdc)
protected List<LatLon> cutAlongDateLine(List<LatLon> locations, String pole, Globe globe)
locations
- Locations to cut at date line. This list is not modified.pole
- Pole contained by locations, either AVKey.NORTH or AVKey.SOUTH.globe
- Current globe.protected void determineActiveAttributes()
protected void determineActiveGeometry(DrawContext dc, SurfaceTileDrawContext sdc)
protected void doCombineContour(CombineContext cc, Iterable<? extends LatLon> contour)
protected void doCombineContours(CombineContext cc)
protected void doDrag(DragContext dragContext)
protected void doDrawGeographic(DrawContext dc, SurfaceTileDrawContext sdc)
protected void doGetRestorableState(RestorableSupport rs, RestorableSupport.StateObject context)
protected abstract void doMoveTo(Globe globe, Position oldReferencePosition, Position newReferencePosition)
protected abstract void doMoveTo(Position oldReferencePosition, Position newReferencePosition)
protected void doRestoreState(RestorableSupport rs, RestorableSupport.StateObject context)
protected Integer doTessellateInterior(DrawContext dc)
public void drag(DragContext dragContext)
Draggable
DragContext
.drag
in interface Draggable
dragContext
- the DragContext
of this dragging event.protected void drawGeographic(DrawContext dc, SurfaceTileDrawContext sdc)
AbstractSurfaceObject
drawGeographic
in class AbstractSurfaceObject
dc
- the current draw context.sdc
- the context containing a geographic region and screen viewport corresponding to a surface tile.protected void drawInterior(DrawContext dc, SurfaceTileDrawContext sdc)
protected void drawLineStrip(DrawContext dc, List<LatLon> locations)
protected void drawOutline(DrawContext dc, SurfaceTileDrawContext sdc)
protected void endDrawing(DrawContext dc)
public void export(String mimeType, Object output) throws IOException, UnsupportedOperationException
output
object will receive the exported data. The type of this object depends on
the export format. The formats and object types supported by this class are:
Format Supported output object types ================================================================================ KML (application/vnd.google-earth.kml+xml) java.io.Writer java.io.OutputStream javax.xml.stream.XMLStreamWriter
mimeType
- MIME type of desired export format.output
- An object that will receive the exported data. The type of this object depends on the export
format (see above).IOException
- If an exception occurs writing to the output object.UnsupportedOperationException
- if the format is not supported by this object, or if the output
argument is not of a supported type.protected void exportAsKML(Object output) throws IOException, XMLStreamException
IOException
XMLStreamException
protected void generateIntermediateLocations(Iterable<? extends LatLon> iterable, double edgeIntervalsPerDegree, boolean makeClosedPath, List<LatLon> locations)
protected ShapeAttributes getActiveAttributes()
public double getArea(Globe globe)
MeasurableArea
getArea
in interface MeasurableArea
globe
- The globe the object is related to.public double getArea(Globe globe, boolean terrainConformant)
SurfaceShape
terrainConformant
is true, the area returned is the
surface area of the terrain, including its hillsides and other undulations.getArea
in interface SurfaceShape
globe
- the globe the shape is related to.terrainConformant
- whether or not the returned area should treat the shape as conforming to the terrain.public ShapeAttributes getAttributes()
getAttributes
in interface Attributable
getAttributes
in interface SurfaceShape
protected List<List<LatLon>> getCachedGeometry(DrawContext dc, SurfaceTileDrawContext sdc)
public Extent getExtent(Globe globe, double verticalExaggeration)
Extent
in model coordinates,
given a specified Globe
and vertical exaggeration (see SceneController.getVerticalExaggeration()
.getExtent
in interface ExtentHolder
globe
- the Globe this SurfaceShape is related to.verticalExaggeration
- the vertical exaggeration of the scene containing this SurfaceShape.IllegalArgumentException
- if the Globe is null.public double getHeight(Globe globe)
MeasurableArea
getHeight
in interface MeasurableArea
globe
- The globe the object is related to.public ShapeAttributes getHighlightAttributes()
getHighlightAttributes
in interface Attributable
getHighlightAttributes
in interface SurfaceShape
protected WWTexture getInteriorTexture()
public double getLength(Globe globe)
MeasurableLength
getLength
in interface MeasurableLength
globe
- The globe the object is related to.public int[] getMinAndMaxEdgeIntervals()
SurfaceShape
getMinAndMaxEdgeIntervals
in interface SurfaceShape
SurfaceShape.setMinAndMaxEdgeIntervals(int, int)
public String getPathType()
SurfaceShape
getPathType
in interface SurfaceShape
public double getPerimeter(Globe globe)
MeasurableArea
getPerimeter
in interface MeasurableArea
globe
- The globe the object is related to.public abstract Position getReferencePosition()
Movable
getReferencePosition
in interface Movable
getReferencePosition
in interface Movable2
public String getRestorableState()
Restorable
restoreState
and passing the XML document.getRestorableState
in interface Restorable
public List<Sector> getSectors(DrawContext dc)
SurfaceRenderable
getSectors
in interface SurfaceRenderable
dc
- the draw context for which to determine this renderable's geographic bounds.public Object getStateKey(DrawContext dc)
Object.equals(Object)
in order to determine
whether or not a renderable has changed. The returned object is guaranteed to be globally unique with respect to
other SurfaceRenderable state keys; an equality test with a state key from another renderable 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.getStateKey
in interface SurfaceRenderable
getStateKey
in class AbstractSurfaceObject
dc
- the draw context for which to determine this renderable's current state.public double getTexelsPerEdgeInterval()
SurfaceShape
getTexelsPerEdgeInterval
in interface SurfaceShape
SurfaceShape.setTexelsPerEdgeInterval(double)
public double getWidth(Globe globe)
MeasurableArea
getWidth
in interface MeasurableArea
globe
- The globe the object is related to.protected void handleUnsuccessfulInteriorTessellation(DrawContext dc)
public boolean isDragEnabled()
Draggable
isDragEnabled
in interface Draggable
public String isExportFormatSupported(String format)
format
- Mime type for the export format.Exportable.FORMAT_SUPPORTED
, Exportable.FORMAT_NOT_SUPPORTED
, or Exportable.FORMAT_PARTIALLY_SUPPORTED
.export(String, Object)
public boolean isHighlighted()
isHighlighted
in interface Highlightable
isHighlighted
in interface SurfaceShape
SurfaceShape.setHighlighted(boolean)
,
SurfaceShape.setHighlightAttributes(ShapeAttributes)
protected static boolean isSectorEmpty(Sector sector)
protected void legacyRestoreState(RestorableSupport rs, RestorableSupport.StateObject context)
doRestoreState(gov.nasa.worldwind.util.RestorableSupport,
gov.nasa.worldwind.util.RestorableSupport.StateObject)
.rs
- RestorableSupport object which contains the state value properties.context
- active context in the RestorableSupport to read state from.protected void makeOrderedPreRenderable(DrawContext dc)
makeOrderedPreRenderable
in class AbstractSurfaceObject
dc
- the current draw context.public void move(Position position)
Movable
public void moveTo(Globe globe, Position position)
Movable2
public void moveTo(Position position)
Movable
protected void onShapeChanged()
protected List<List<LatLon>> repeatAroundDateline(List<LatLon> locations)
locations
- Locations to repeat. This is list not modified.public void restoreState(String stateInXml)
Restorable
restoreState
in interface Restorable
stateInXml
- an XML document string describing an object's state.public void setAttributes(ShapeAttributes normalAttrs)
setAttributes
in interface Attributable
setAttributes
in interface SurfaceShape
normalAttrs
- the normal attributes. May be null, in which case default attributes are used.public void setDragEnabled(boolean enabled)
Draggable
setDragEnabled
in interface Draggable
enabled
- true
if the object is enabled, else false
.public void setHighlightAttributes(ShapeAttributes highlightAttrs)
setHighlightAttributes
in interface Attributable
setHighlightAttributes
in interface SurfaceShape
highlightAttrs
- the highlight attributes. May be null, in which case default attributes are used.public void setHighlighted(boolean highlighted)
setHighlighted
in interface Highlightable
setHighlighted
in interface SurfaceShape
highlighted
- true to highlight the surface shape, otherwise false. The default value is false.SurfaceShape.setHighlightAttributes(ShapeAttributes)
public void setMinAndMaxEdgeIntervals(int minEdgeIntervals, int maxEdgeIntervals)
SurfaceShape
minEdgeIntervals
or maxEdgeIntervals
too large may adversely impact surface shape rendering performance.setMinAndMaxEdgeIntervals
in interface SurfaceShape
minEdgeIntervals
- the minimum number of interpolated edge intervals.maxEdgeIntervals
- the maximum number of interpolated edge intervals.SurfaceShape.setTexelsPerEdgeInterval(double)
public void setPathType(String pathType)
SurfaceShape
setPathType
in interface SurfaceShape
pathType
- path interpolation type.public void setTexelsPerEdgeInterval(double texelsPerEdgeInterval)
SurfaceShape
SurfaceShape.setMinAndMaxEdgeIntervals(int, int)
.setTexelsPerEdgeInterval
in interface SurfaceShape
texelsPerEdgeInterval
- the size, in texels, of each interpolated edge interval.SurfaceShape.setMinAndMaxEdgeIntervals(int, int)
protected AreaMeasurer setupAreaMeasurer(Globe globe)
protected Integer tessellateInterior(DrawContext dc)
protected Integer tessellateInteriorVertices(GLUtessellator tess)