mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-11-13 09:39:52 +00:00
With Envelope Options > Distort Appearance on, the import tries type in an envelope mapped from its glyphs, and from its glyphs grown by half its strokes' weight (#6535), on its own warp and on its saved grid. In users' files the drawn art of some stroked type maps from the box of what the type paints instead, which differs from those where: - the type has sharp corners at its edges (slanted stems, pointed feet) and miter joins: the miter tip pokes out past half the weight, as far as the miter limit lets it, though not as far as the bounds with strokes allow (a miter at every corner); - a stroke carries a Transform effect that moves it (a drop shadow): the moved stroke paints past the glyphs on that side; - a glyph holds a contour of zero length at its edge, which paints nothing: the glyphs' box counts it. Such an envelope failed the drawn-art check and kept its drawn art. After every way it was tried before, and before a grid moved onto its drawn art, the envelope is now also tried mapped from what its type paints, where that box is another: its glyph outlines with their fills and strokes baked as the envelope bakes them under Distort Appearance (geometry effects applied), each piece measured by its visual bounds. Those are exact for miter joins (a tip counts where the limit keeps it) and round joins, and an upper bound for bevel joins, miters the limit cuts, width profiles and square-capped dashes. Effects on the type object itself are left out, as VectorCraft applies them after the envelope bends the type. Groups round type and other objects in the contents are measured as before. A side within 1e-4 pt of another box's counts as that side, so a box measured two ways isn't tried twice. The box is measured only when its try comes and a check is left for it, and once for an envelope: on a synthetic file of 256 envelopes of 2,000 characters each the import takes 13.3 s, as before, where measuring it up front took 14.7 s. On 224 of our own files (used locally, never committed), envelopes of type that open live go from 154 in 45 files to 161 in 50, none fewer in any file; no file changes whether it opens from its layers or its PDF part. Tests: ai::envelope::tests:: mitred_type_is_also_tried_mapped_from_what_its_stroke_paints_miter_tips_included, type_with_a_mitred_character_stroke_is_also_tried_mapped_from_what_it_paints, a_stroke_moved_by_a_transform_effect_counts_where_it_paints, round_joined_type_is_not_tried_twice_for_the_same_box, a_contour_of_zero_length_paints_nothing, a_side_within_the_slack_of_the_geometric_box_is_that_side, and tests_native::a_warp_of_mitred_type_maps_from_what_its_stroke_paints_where_its_drawn_art_does. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>