Class: AbstractShape

(protected) AbstractShape(attributes)

Provides a base class for shapes other than surface shapes. Implements common attribute handling and rendering flow. This is an abstract class and is meant to be instantiated only by subclasses.

In order to support simultaneous use of this shape by multiple windows and 2D globes, this shape maintains a cache of data computed relative to the globe displayed in each window. During rendering, the data for the currently active globe, as indicated in the draw context, is made current. Subsequently called methods rely on the existence of this data cache entry.

Constructor

(protected) new AbstractShape(attributes)

Constructs an abstract shape instance. Meant to be called only by subclasses.
Parameters:
Name Type Description
attributes ShapeAttributes The attributes to associate with this shape. May be null, in which case default attributes are associated.
Source:

Extends

Members

altitudeMode :String

The altitude mode to use when drawing this shape. Recognized values are:
  • WorldWind.ABSOLUTE
  • WorldWind.RELATIVE_TO_GROUND
  • WorldWind.CLAMP_TO_GROUND
Type:
  • String
Default Value:
  • WorldWind.ABSOLUTE
Source:

attributes :ShapeAttributes

This shape's normal (non-highlight) attributes.
Type:
Source:

displayName :String

The display name of the renderable.
Type:
  • String
Inherited From:
Default Value:
  • "Renderable"
Source:

enabled :Boolean

Indicates whether to display this renderable.
Type:
  • Boolean
Inherited From:
Default Value:
  • true
Source:

expirationInterval :Number

Indicates how long to use terrain-specific shape data before regenerating it, in milliseconds. A value of zero specifies that shape data should be regenerated every frame. While this causes the shape to adapt more frequently to the terrain, it decreases performance.
Type:
  • Number
Default Value:
  • 2000 (milliseconds)
Source:

highlightAttributes :ShapeAttributes

This shape's highlight attributes. If null or undefined and this shape's highlight flag is true, this shape's normal attributes are used. If they in turn are null or undefined, this shape is not drawn.
Type:
Default Value:
  • null
Source:

highlighted :Boolean

Indicates whether this shape uses its normal attributes or its highlight attributes when displayed. If true, the highlight attributes are used, otherwise the normal attributes are used. The normal attributes are also used if no highlight attributes have been specified.
Type:
  • Boolean
Default Value:
  • false
Source:

pickDelegate :Object

Indicates the object to return as the userObject of this shape when picked. If null, then this shape is returned as the userObject.
Type:
  • Object
Inherited From:
Default Value:
  • null
Source:
See:

userProperties :Object

An application defined object associated with this renderable. A typical use case is to associate application defined data with a picked renderable.
Type:
  • Object
Inherited From:
Default Value:
  • An empty object
Source:

useSurfaceShapeFor2D :Boolean

Indicates whether to use a surface shape to represent this shape when drawn on a 2D globe.
Type:
  • Boolean
Default Value:
  • false
Source:

Methods

(protected) applyMvpMatrix(dc)

Apply the current navigator's model-view-projection matrix.
Parameters:
Name Type Description
dc DrawContext The current draw context.
Source:

(protected) applyMvpMatrixForOutline(dc)

Apply the current navigator's model-view-projection matrix with an offset to make this shape's outline stand out.
Parameters:
Name Type Description
dc DrawContext The current draw context.
Source:

(protected) beginDrawing(dc)

Called during ordered rendering. Subclasses may override this method in order to perform operations prior to drawing the shape. Applications do not call this method.
Parameters:
Name Type Description
dc DrawContext The current draw context.
Source:

(protected) createShapeDataObject() → {Object}

Creates a new shape data object for the current globe state. Subclasses may override this method to modify the shape data object that this method creates, but must also call this method on this base class. Applications do not call this method.
Source:
Returns:
The shape data object.
Type
Object

(protected) doMakeOrderedRenderable(dc)

Called during rendering. Subclasses must override this method with one that creates and enques an ordered renderable for this shape if this shape is to be displayed. Applications do not call this method.
Parameters:
Name Type Description
dc DrawContext The current draw context.
Source:

(protected) doRenderOrdered(dc)

Called during ordered rendering. Subclasses must override this method to render the shape using the current shape data.
Parameters:
Name Type Description
dc DrawContext The current draw context.
Source:

(protected) endDrawing(dc)

Called during ordered rendering. Subclasses may override this method in order to perform operations after the shape is drawn. Applications do not call this method.
Parameters:
Name Type Description
dc DrawContext The current draw context.
Source:

(protected) isShapeDataCurrent(dc, shapeData) → {Boolean}

Indicates whether a specified shape data object is current. Subclasses may override this method to add criteria indicating whether the shape data object is current, but must also call this method on this base class. Applications do not call this method.
Parameters:
Name Type Description
dc DrawContext The current draw context.
shapeData Object The object to validate.
Source:
Returns:
true if the object is current, otherwise false.
Type
Boolean

(protected) isWithinProjectionLimits(dc) → {Boolean}

Indicates whether this shape is within the current globe's projection limits. Subclasses may implement this method to perform the test. The default implementation returns true. Applications do not call this method.
Parameters:
Name Type Description
dc DrawContext The current draw context.
Source:
Returns:
true if this shape is is within or intersects the current globe's projection limits, otherwise false.
Type
Boolean

render(dc)

Render this renderable. Some shapes actually draw themselves during this call, others only add themselves to the draw context's ordered rendering list for subsequent drawing when their renderOrdered method is called. This method is intended to be called by layers such as RenderableLayer and not by applications.
Parameters:
Name Type Description
dc DrawContext The current draw context.
Overrides:
Source:

renderOrdered(dc)

Draws this shape during ordered rendering. Implements the OrderedRenderable interface. This method is called by the WorldWindow and is not intended to be called by applications.
Parameters:
Name Type Description
dc DrawContext The current draw context.
Source:

(protected) reset()

Clears this shape's data cache. Should be called by subclasses when state changes invalidate cached data.
Source: