From be08163caaa2e1a5921d59fff6565506e0227c6d Mon Sep 17 00:00:00 2001 From: German Khokhlov Date: Sat, 7 Nov 2026 22:47:24 +0400 Subject: [PATCH] Document segment batches and draped Wildlife privacy cells Describe the segment batch lifecycle, per-item picks and styles, and the single-primitive engine implementations. Document the restored Wildlife fill and outline and replace the stale no-fill description. The documentation follows Cesium's stem behavior and original draped privacy appearance. No coupling count fell or grew; all eleven metrics remain unchanged. --- docs/CURRENT-STATE.md | 6 ++++-- docs/GLOBE-PRIMITIVES.md | 25 +++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/docs/CURRENT-STATE.md b/docs/CURRENT-STATE.md index b647fb8c9..e1efcd9c3 100644 --- a/docs/CURRENT-STATE.md +++ b/docs/CURRENT-STATE.md @@ -447,8 +447,10 @@ checks, is a fresh success that clears earlier rows; only a malformed or failed upstream reply serves stale and starts a retry cooldown. WHALES accepts only recognized cetaceans; other identified marine mammals appear under ALL or MAMMALS. Sensitive iNaturalist locations remain 0.2° privacy cells, drawn as -outlines (`engine.lines`), with no fill yet; Acartia -positions are rounded to 0.01° on the server. Acartia comments are never retained. +taxon-accent fills at 25% opacity with 2 px outlines at 80% opacity through +`engine.ground`, draped on terrain and tiles. Cells are not pickable and +identical bounds and accents share one item. Acartia positions are rounded to +0.01° on the server. Acartia comments are never retained. Observer identity is retained only for photo attribution. The layer draws on both engines through one display diff --git a/docs/GLOBE-PRIMITIVES.md b/docs/GLOBE-PRIMITIVES.md index 6c27f1c93..325eb25d8 100644 --- a/docs/GLOBE-PRIMITIVES.md +++ b/docs/GLOBE-PRIMITIVES.md @@ -625,6 +625,31 @@ stops animation and disables effects; engine destruction removes its stages and restores the borrowed bloom state. Sharpen intensity zero disables sharpening on both engines, following Cesium. +## Wildlife privacy cells + +Wildlife privacy cells use one `cell` ground set for distinct bounds and taxon +accents. The fill is 25% opaque and the 2 px outline is 80% opaque, matching +Cesium's original ground geometry. Both drape on terrain and tiles and pass +picks through to the badges. Wide views and detach release the set. + +## Batched line segments + +`engine.lines.createSegments({ id, widthPx, color, order })` groups independent +straight segments in one batch. `replace(items)` copies pairs of Earth-fixed +endpoints and optional per-item `widthPx`, `color` and `pickId`; `commit()` +rebuilds the drawing once. Segments never connect to one another. `show()` +and `destroy()` affect the whole batch; an empty replacement clears it. +The batch shares `createLine`'s id namespace and `list()`, which includes its +endpoint count and committed `pickIds` in item order. + +Cesium draws one synchronous primitive with per-instance colours and widths. +Navara draws one ribbon mesh in the overlay after tone mapping, with scene +depth and independent segment picks. Batches are solid and depth-tested; +curved, dashed, transformed and depth-fail lines still use `createLine`. +Infrastructure and cable references each use one batch for their visible +stems, preserving Cesium's colours, widths, label winners and update cadence. +Infrastructure excludes the whole stem batch while sampling its bases. + ### Choosing a primitive - **A position and an on-screen size:** a mover.