mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-11-08 03:41:28 +00:00
The walk measured every object's visual box to leave out what is off the page. A plain group or layer is measured as the union of its members, and each member then measured itself again when it was written, so an object in plain groups was measured once for each level it sits at. Measuring a plain group or layer now keeps its members' boxes in a tree, and each member uses its box when it is written. A container written whatever its box is (a PDF layer's group, placed symbol art) is not measured. A knockout group's elements are measured for the group's box and again for the list of elements on the page, and that second box is used for the element and for its mask. Objects in a live container (Blend, Envelope, Repeat, Intertwine) are still measured with the container and again after it is expanded. Node::visual_of_members holds the formula that Node::visual also uses, so the boxes and every decision are unchanged. The output is byte for byte the same on one open path of 200,000 anchors, 20,000 rectangles in 200 groups of 100, and 5,000 point type objects, and on a document of plain, see-through, clipping and knockout groups on and off the page, each exported with default settings, with uncompressed text and with PDF layers.