Package-level declarations
Types
Provides a collection to keep track of resources whose retrieval failed and when retrieval may be tried again.
AbstractSource instances are intended to be used as a key into a cache or other data structure that enables sharing of loaded resources.
Sibling of FloatArrayPool for ByteArrays; identical contract.
One reconstruction recipe — given a ContentManager and a CacheEntry, produce a layer/coverage/null. Implementations open the appropriate store on contentManager, wrap a fresh network source in the matching cache decorator, and return the assembled layer/coverage. To open in strict cache-only mode, call setOfflineOnly on the returned object.
Registry of (dataType, serviceType) → CachedLayerOpener. The same key pair the 2.x cache surface uses for dispatch — WmsImageLayer and WmsElevationCoverage both advertise "WMS" but are disambiguated by the data_type discriminator.
Persistent cache for vector-data and tile-pyramid layers. One ContentManager instance manages many independent content entries (each keyed by contentKey), each backed by one GeoPackage table or table set.
Ear-clipping polygon triangulator — a Kotlin port of mapbox/earcut (ISC licence). It is the triangulator MVT renderers (Mapbox GL, MapLibre, deck.gl) use for polygon fills: far cheaper than a GLU-style sweep-line tessellator because it builds only a small doubly-linked node list (no half-edge mesh), and it stays robust on real-world rings (holes, near-collinear / self-touching edges) via its hole-bridging and cureLocalIntersections / splitEarcut fallbacks.
Cross-thread reusable FloatArray pool. Single-queue, no size buckets — the queue converges to the largest-seen size, smaller acquirers get an oversized buffer (callers use their own valid count when reading/writing).
Primitive-Int dynamic list. Drop-in replacement for MutableList<Int> in hot loops where boxing each Int to a JVM Integer causes meaningful GC pressure. Used for shape index buffers (outlineElements, topElements, etc.) which can hold thousands of indices and are repopulated on every geometry assemble.
Configuration values for a multi-resolution, hierarchical collection of tiles organized into levels of increasing resolution.
LRU memory cache keyed by primitive Long, eliminating per-lookup boxing overhead that occurs with LruMemoryCache
LRU cache using an intrusive doubly-linked list for O(1) eviction. The list head is the most recently used entry, the tail is the least recently used; eviction walks tail→head until the cache drops below lowWater and has room for the requested allocation. trimToAge uses the same tail walk and stops at the first entry whose Entry.lastUsed crosses the threshold.
Splits polygons that cross the antimeridian and/or contain a pole.
Priority-ordered permit pool. acquire suspends until a permit is free; when multiple acquirers are waiting, release wakes the one with the highest priority (= largest Double). Replaces kotlinx.coroutines.sync.Semaphore, which is FIFO — under a fast pan with hundreds of queued tile-fetch requests, FIFO leaves the camera-relevant (or coarse-fallback) tile buried behind seconds of stale prior-frame requests. There is no in-flight cancellation: this reorders only the WAIT line, not the running set. Cesium 3D Tiles uses the same pattern in RequestScheduler.update().
Interface for resource post-processing
Shared, key-agnostic retrieval-lane bookkeeping. Used by every poll-per-frame retriever that has a local cache in front of a remote source — the image earth.worldwind.render.RenderResourceCache (keyed by ImageSource) and the gridded-coverage earth.worldwind.globe.elevation.coverage.AbstractTiledElevationCoverage (keyed by tile Long).
Next phase for a cache-backed source — see RetrievalLanes.planNetworkBound.
Polyline/ring simplification shared by the MVT decoder (earth.worldwind.layer.mvt.MvtGeometry) and the tiled WFS feature path (earth.worldwind.layer.FeatureRenderer).
Sequential scratch pool: hand out T instances in order during a single assembly pass, then reset the cursor at the start of the next pass to reuse the same instances. Distinct from BasicPool which is acquire/release-style — here callers don't release individually because they keep the acquired instances alive in a result list until the entire pass completes.
Provides utilities for determining the Sun geographic and celestial location.
Kotlin/Native threads are real - decode workers and the render thread share these pools, so acquire/release must lock or two consumers can be handed the same pooled instance.
JS use BasicPool instead of SynchronizedPool
Geographically rectangular tile within a LevelSet, typically representing terrain or imagery. Provides a base class for tiles used by tiled image layers and elevation models. Applications typically do not interact with this class.
Factory for delegating construction of Tile instances.
Slippy-map URL template with the WorldWind dialect of substitution tokens:
Functions
Bulk-open every cached entry whose CacheEntry.dataType matches category. Return type follows the category's phantom witness:
Open contentKey as an elevation coverage narrowed to T. Returns null when the key is absent, registered as a layer (use openLayer), or the materialized type doesn't match T. Bound is the broad ElevationCoverage interface for symmetry with openLayer's Layer bound; today only TiledElevationCoverage subtypes are reachable from cache, so non-tiled-typed callers always get null.
Open contentKey as a layer narrowed to T. Returns null when the key is absent, unregistered, backed by an elevation coverage (use openElevationCoverage), or the materialized type doesn't match T.