vectorcraft/crates
Hiroshi Inukai ea5a04504a PDF/.ai import: type set on a path comes back as type on a path
Apps write type on a path one glyph at a time, each placed and turned along the
curve. The importer joined glyphs into a line only while they kept the first
glyph's direction. Type on a gentle curve was flattened into straight lines, and
type on a tighter curve fell apart into one object per glyph.

A glyph that starts about where the previous one ends, turned a little from it
(under about 20°), now continues the line. A line whose baseline turned more than
about 3° becomes type on a path: its path is a smooth curve (Catmull-Rom as cubic
Béziers) through the glyphs' baseline origins and the end of the last glyph.
Spaces between words are measured along the last glyph. Straight type, rotated or
not, imports as before.

Test: "ARCHING" written glyph by glyph along an arc imports as one
type-on-a-path object with that text and a curved path; slightly rotated straight
type stays point type.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 13:03:00 +07:00
..
brush M4.39: SVG symbols as <symbol>/<use>, hidden layers on Save, Dublin Core metadata 2026-10-05 09:03:52 +07:00
cad Fix #177: DXF Fit and Aligned text span their two points 2026-10-07 02:14:39 +07:00
color M4.98: freeform gradients export to SVG as images clipped to their shapes 2026-10-05 13:25:16 +07:00
doc Fix #252: area type resizes its frame with the mouse 2026-10-07 13:02:55 +07:00
effects M8.14: Type and symbols in perspective are really projected and stay editable; attachments survive copies 2026-10-06 12:10:00 +07:00
engine Fix #252: area type resizes its frame with the mouse 2026-10-07 13:02:55 +07:00
eps Fix #234: EPS files from the reference app open 2026-10-07 09:34:27 +07:00
format M4.38: native and .ai save options: each artboard to its own file, linked files, ICC profiles, PDF content 2026-10-05 15:24:19 +07:00
geom M8.14: Type and symbols in perspective are really projected and stay editable; attachments survive copies 2026-10-06 12:10:00 +07:00
mcp Fix #257: format lists name every format the engine reads and writes 2026-10-07 12:10:12 +07:00
metafile M8.16: Envelopes bend images, symbols, gradients, patterns and appearance; warps keep their frame 2026-10-06 12:01:47 +07:00
pathops Fix #206: Live Paint treats every path as an edge, open lines included 2026-10-07 02:08:39 +07:00
pdf PDF/.ai import: type set on a path comes back as type on a path 2026-10-07 13:03:00 +07:00
plugins Fix #121: sandboxed WebAssembly plug-ins: object filters and live effects 2026-10-06 00:19:41 +07:00
render Type: find fonts by any of their names; say how each one resolved 2026-10-06 21:45:10 +09:00
svg i18n: add Japanese menus and initial vertical type tools 2026-10-06 16:55:47 +09:00
testkit M4.62: PDF/.ai layers from optional content: named layers with visibility, print state and lock; art that is off as hidden layers 2026-10-05 13:05:12 +07:00
text Fix #260: tate-chu-yoko numbers and upright glyphs keep their own cell in vertical text 2026-10-07 12:16:44 +07:00
tools Fix #252: area type resizes its frame with the mouse 2026-10-07 13:02:55 +07:00
trace Robustness: VectorCraft never crashes — no panics in shipped code 2026-10-05 06:28:59 +07:00
ui-egui Fix #277: Ctrl+Space zooms (Ctrl+Alt+Space out), Space alone pans 2026-10-07 13:03:00 +07:00