feat(fold): emit per-face isometries and declare the named-line frame #31
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
beloch:named_linesexports one[a,b,c]triple with no declared coordinate frame, sofold2svgre-derives each face's isometry from float vertex pairs with reflection detection (71b6d77,6d1016c) — reconstructing, in JS floats, the orientation the exact core already holds inface.isobut never emits. The bug is non-emission, not precision: that hack keeps sprouting epsilons as long as the transform is guessed instead of read.Emit each face's isometry (
Isometry.t— linear part + translation) in abeloch:extension, and declare the coordinate frame thatbeloch:named_lines/beloch:named_pointsare expressed in. A proper isometry carries its orientation in its determinant sign, sofold2svgreads the reflection instead of detecting it. Float coefficients are sufficient here — vertex coincidence and layer order are already decided exactly in the kernel and encoded as integers (faces_vertices,faceOrders), so the emitted floats carry positions only, never a decision.Then port
fold2svgto consume the emitted isometry and delete the float reconstruction.Out of scope: exact coordinates (rational strings / minimal polynomial + isolating interval). Rendering lands on float regardless, and nothing verifies exactness today. Revisit if a verification or round-trip consumer appears — and then decide FOLD extension vs. a Beloch-native sidecar.
feat(fold): exact coordinates and per-face isometries in beloch:* fieldsto feat(fold): emit per-face isometries and declare the named-line frame