Ellipsoid

open class Ellipsoid @JvmOverloads constructor(center: Position, xRadius: Double, yRadius: Double, zRadius: Double, attributes: ShapeAttributes = ShapeAttributes()) : AbstractMesh

3D ellipsoid centered at a geographic position. Supports three independent semi-axes for a tri-axial ellipsoid; pass xRadius == yRadius for a rotation spheroid (the common "two-radius" case of one equatorial radius paired with a polar radius).

Local frame at center: X east, Y north, Z up. Orientation is aerospace 3-2-1 intrinsic (heading -> pitch -> roll) about the body axes:

  • heading rotates clockwise from north around Z (yaw).

  • pitch rotates around the body east (+X) axis; positive tilts the +Y "nose" up.

  • roll rotates around the body north (+Y) axis; positive tilts the +X "right wing" down.

Matches the convention documented on earth.worldwind.geom.CameraPose. Lighting opt-in via ShapeAttributes.isLightingEnabled.

Constructors

Link copied to clipboard
constructor(center: Position, xRadius: Double, yRadius: Double, zRadius: Double, attributes: ShapeAttributes = ShapeAttributes())

Types

Link copied to clipboard
object Companion
Link copied to clipboard

One of the three principal-plane great circles. Combine via outlineCircles to render any subset (e.g. { MERIDIAN_YZ } for a Fresnel-zone profile, { EQUATOR, MERIDIAN_YZ, MERIDIAN_XZ } for a CAD-style three-axis silhouette).

Properties

Link copied to clipboard
open override var altitudeMode: AltitudeMode

AltitudeMode used by movable object

Link copied to clipboard

Scales the altitudes of this mesh.

Link copied to clipboard
open override var attributes: ShapeAttributes

Indicates the shape's normal (non-highlight) attributes.

Link copied to clipboard

Base altitude level of shape sides. Is dependent on altitudeMode. Ground level by default.

Link copied to clipboard

Geographic position of the ellipsoid's center.

Link copied to clipboard
open override var displayName: String?
Link copied to clipboard

Rotation around the local up axis, clockwise from north. No effect on rotation spheroids.

Link copied to clipboard

Indicates the shape's highlight attributes.

Link copied to clipboard

Determines whether surface shape should be batched to terrain textures cache or single color attachment. Set this flag to true when shape editing is intended and to false when editing is finished.

Link copied to clipboard
open override var isEnabled: Boolean
Link copied to clipboard

Draw sides of the shape which extend from the defined position and altitude to baseAltitude level.

Link copied to clipboard

Determines whether this shape's geometry follows the terrain surface or is fixed at a constant altitude.

Link copied to clipboard
open override var isHighlighted: Boolean

Indicates whether the shape is highlighted.

Link copied to clipboard
open override var isPickEnabled: Boolean
Link copied to clipboard

true when this shape's referencePosition coincides with where the user actually sees the shape (Placemark, Label, sightlines — the reference is the rendered location). false for shapes whose reference is computed from extended geometry and may sit far from where the user grabbed (Polygon centroid, Path centroid, Mesh).

Link copied to clipboard

Optional lambda to control current shape visibility based on its attributes and frame render context

Link copied to clipboard

Maximum number of intermediate edge intervals across a half-equator (PI radians) of arc. Per-edge subdivision count is scaled by edge length: steps = round(maximumNumEdgeIntervals * distanceRadians / PI), then further adjusted by polarThrottle near the poles for surface shapes. 3D shapes use the unthrottled count. A value of 0 disables intermediate vertex generation.

Link copied to clipboard

Set of principal-plane great circles drawn when ShapeAttributes.isDrawOutline is enabled. Each entry is rendered as an independent line strip, so any combination of the equator and the two meridians can be enabled without spurious connecting segments. Defaults to { EQUATOR }.

Link copied to clipboard
Link copied to clipboard
open override var pickDelegate: Any?
Link copied to clipboard

Indicates whether this mesh is pickable when the pick point intersects transparent pixels of the image applied to this mesh. If no image is applied to this mesh, this property is ignored. If this property is true and an image with fully transparent pixels is applied to the mesh, the mesh is pickable at those transparent pixels, otherwise this mesh is not pickable at those transparent pixels.

Link copied to clipboard

Rotation around the body east (+X) axis. Positive tilts the +Y axis up ("nose up").

Link copied to clipboard

Pole-throttle factor: higher values shrink the subdivision step near ±90° latitude so the straight 2D lon/lat segments between samples more closely follow the true great-circle path. A value of 0 disables throttling (uniform step).

Link copied to clipboard

Indicates this shape's geographic position. The position's altitude is relative to this shape's altitude mode.

Link copied to clipboard
var roll: Angle

Rotation around the body north (+Y) axis. Positive tilts the +X axis down ("right wing down").

Link copied to clipboard
var slices: Int

Number of longitude divisions. Must be >= 4. Higher = smoother silhouette.

Link copied to clipboard
var stacks: Int

Number of latitude divisions. Must be >= 2. Higher = smoother poles.

Link copied to clipboard

Semi-axis along the local east direction, in metres.

Link copied to clipboard

Semi-axis along the local north direction, in metres.

Link copied to clipboard
open override var zOrder: Double
Link copied to clipboard

Semi-axis along the local up (polar) direction, in metres.

Functions

Link copied to clipboard
fun AbstractShape.applyFeatureStyle(properties: LinkedHashMap<String, Any?>, defaultLineColor: Color? = null, defaultFillColor: Color? = null)

Apply simplestyle stroke / fill / stroke-width to a Path or Polygon's attributes. Writes outline / interior color only when there's an explicit value to apply — either the feature's stroke / fill property OR a non-null defaultLineColor / defaultFillColor. With both null (the default), an absent property leaves the renderable's existing color alone — important when the layer's shapeAttributes supplied an intentional template colour at construction time (e.g. Shapefile's translucent blue) that would otherwise be clobbered by auto-style.

Link copied to clipboard
open override fun createSurfaceShape(): AbstractShape?
Link copied to clipboard
open override fun <T> getUserProperty(key: Any): T?
Link copied to clipboard
open override fun hasUserProperty(key: Any): Boolean
Link copied to clipboard
open override fun moveTo(globe: Globe, position: Position)

Move the shape over the globe's surface while maintaining its original azimuth, its orientation relative to North.

Link copied to clipboard
open override fun putUserProperty(key: Any, value: Any): Any?
Link copied to clipboard
open override fun removeUserProperty(key: Any): Any?
Link copied to clipboard
open override fun render(rc: RenderContext)
Link copied to clipboard
open override fun reset()