Skip to content

LabelLayer

Defined in: labels/label-layer.ts:134

An HTML overlay of absolutely-positioned label elements. On each update it maps reference anchors through the view transform to screen pixels, culls to the viewport with collision resolution, and reconciles the DOM (reusing nodes by id). Geometry stays on the GPU; only the surviving labels are in the DOM.

The container should be positioned (e.g. position: relative) and overlay the canvas; label nodes are position: absolute.

new LabelLayer(container, text, className?, style?): LabelLayer

Defined in: labels/label-layer.ts:140

HTMLElement

(anchor) => string

string

Optional class set on each label element, for styling the overlay (font, colour, halo).

LabelStyle

Optional inline CSS set on each label element, applied ONCE at creation — never on the per-transform update path. Applied as given: engine callers pass the default-merged result of resolveLabelStyle; omitted, elements inherit from the container as before.

LabelLayer

destroy(): void

Defined in: labels/label-layer.ts:253

void


setHover(anchor, restore, transform): void

Defined in: labels/label-layer.ts:234

Show anchor’s text (the label in full) in place of its trimmed twin while hovered (#496), or clear it (null). restore is the text the label returns to on the next call. O(1): one node lookup (a new node is made only when the label was not placed), no placement pass, so a hover sweep costs the same per pointer move whatever number of labels is placed. The stored anchor also applies on every later update.

LabelAnchor | null

string

ViewTransform

void


update(anchors, transform, viewport): void

Defined in: labels/label-layer.ts:187

readonly LabelAnchor[]

ViewTransform

number

number

void