Skip to content

BaseEngineOptions

Defined in: map/base-engine.ts:276

Options every engine shares, owned and consumed once by the BaseEngine constructor. Each engine’s options type (e.g. GeoMapOptions, PlotOptions) extends this and adds only its own fields, so a base-level setting is declared in exactly one place and can’t drift or be silently dropped by an engine that forgot to wire it.

optional aspectRatio?: number

Defined in: map/base-engine.ts:267

width ÷ height. When set, the engine is width-driven and keeps this ratio on resize.

EngineSizing.aspectRatio


optional backend?: BackendType

Defined in: map/base-engine.ts:279

Which renderer to draw with — see BackendType. Defaults to "webgl". Use "auto" for an instant Canvas first paint that upgrades to WebGL in the background.


optional curveTolerance?: number

Defined in: map/base-engine.ts:303

Max deviation, in world units, between a curve (arc / bezierCurveTo / quadraticCurveTo in a layer’s draw) and the polyline it is baked to. Default DEFAULT_CURVE_TOLERANCE (0.25).

The bake happens once, when a layer is registered, and the view transform only scales it — so a facet measuring t world units measures t·k screen px at zoom k (#45). A chart that zooms to kMax and wants sub-pixel curves therefore wants curveTolerance: 0.25 / kMax.

It is a quality/size dial, not a free win, and it is deliberately opt-in: an arc’s segment count grows as 1/sqrt(tolerance), so 0.25 / 40 bakes ~6.3× the vertices of the world-scaled curved drawables only (straight paths, rects, and points() circles — which every backend draws analytically — are untouched). Costs nothing per frame.

Anchored sizeMode: "screen" glyphs are exempt (#283): they are drawn as constant-pixel offsets from their anchor, so their bake is already in screen px and cannot facet under zoom. They bake at max(curveTolerance, 0.25) — the default’s sub-pixel 0.25px, or coarser if you set a coarser tolerance — see anchoredCurveTolerance. The split is per drawable: a screen-sizeMode layer drawn without anchors is world-scaled geometry, so it refines.


optional height?: number

Defined in: map/base-engine.ts:265

EngineSizing.height


optional tooltipClass?: string

Defined in: map/base-engine.ts:281

Class(es) for the hover tooltip box, replacing its default inline look.


optional width?: number

Defined in: map/base-engine.ts:264

EngineSizing.width