feat(fold): emit per-face isometries, consume them in fold2svg #55
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fold-isometry-emission"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Stacked on #53 — base is
vscode-preview.Emits each folded face's paper→table isometry as
beloch:faces_matrixand declares the named-line frame (beloch:named_lines_frame: "creasePattern"). Portsfold2svgto consume the isometry and deletes the float-vertex-pair reconstruction (applyIsoplus its shoelace reflection detection) — the renderer no longer re-derives, in JS floats, a transform the exact core already holds inface.iso. Topology (vertex coincidence, layer order) is already decided exactly upstream and carried as integers, so float coefficients are sufficient here.Also fixes a pre-existing clip bug the port surfaced: the folded overlay clipped named lines against the final crease pattern's vertices even for intermediate
--stepframes, whose face indices belong to a different dedup pass. It now pulls each line into the face's own table frame (lineToFace) and clips against that frame's polygon, dropping the crease-pattern index dependence.Exact coordinates stay out of scope — rendering lands on float regardless and nothing verifies exactness yet; the reasoning is in #31. The golden-regen tool lives at
tools/regen.ml.Follow-up: #54 (integration fixture for the folded named-line overlay).
For #31.
cube-root.belfolded top view — creases placed on each folded face via the emitted isometry: