Number of layers in the current IR (0 when none / no layer table).
Honest capability notes for the current IR (DD-014 §6/§11) — e.g. a non-planar/CNC toolpath the flat 2D view cannot fully represent. Empty for faithfully-representable (planar) input.
Clear and redraw the active layer + ghosts. Returns the draw result (drawn:false when empty).
Number of preceding ghost layers drawn beneath the active one (clamped to ≥ 0).
Live-progress cut (DD-006); null clears it. Applied only when on the active layer.
Show/hide travel moves on the active layer (false hides).
A thin lifecycle wrapper binding a
ToolpathIRto a<canvas>: pick a layer, pick a color mode,render(). It owns no WebGL context and holds no per-layer geometry — eachrender()clears and redraws the active layer (plus its dimmed "ghost" layers), so peak memory stays near one layer (DD-014 §6). The view frame is the whole-model XY bounds (cached onsetToolpath), so scrubbing layers doesn't jump or rescale and ghosts overlay the active layer exactly. Adapter wiring (therenderer: '2d' | '3d'prop) arrives in a later E8 phase.