Commit Graph
10 Commits
Author SHA1 Message Date
dotCooCoo 711d7163f8 Brushes: repeated brush names are numbered when a document loads
A document or brush library file could hold two brushes of one name.
Renaming the first in Brush Options moved every stroke of that name and
left the second brush unreachable, deleting by name removed both, and
the Brushes panel could not select the second row.

Reading a stored brush library now keeps the first brush of a name as
stored and numbers each later one with the first "Name 2", "Name 3" and
so on that the file does not already have. Strokes name their brush,
and a name always found the first brush, so every stroke keeps drawing
the brush it drew before. The rule applies to opened documents and to
brush library files; brushes added to a document that already has the
name keep today's numbering.

Docs: docs/mcp.md, docs/target-app-parity.md.
2026-11-13 09:37:14 -08:00
dotCooCoo fc1a08edbd Merge main into feat/brushes-ink-wash-library 2026-11-12 08:46:00 -08:00
dotCooCoo ba23477b23 Merge main into feat/brushes-ink-wash-library 2026-11-12 05:50:48 -08:00
dotCooCoo 6e9ffa92cc Merge main into feat/brushes-dry-media-library 2026-11-12 05:31:21 -08:00
dotCooCoo c95a4d901f Brushes: built-in Ink and Wash library with tapered ink, brush pen and wash brushes
Window › Brush Libraries gains Ink and Wash after Art Ribbons: Tapered Ink, an art brush broad near its start that thins to a fine tip; Brush Pen, a calligraphic brush whose size follows the pen pressure; and Soft Wash and Pooling Wash, art brushes of translucent gray layers. The art brushes take the stroke color as tints. The names, shapes and opacities are VectorCraft's own.

Docs: docs/mcp.md, docs/gaps.md, docs/roadmap.md, docs/target-app-parity.md.
2026-11-11 23:17:31 -08:00
dotCooCoo 880cdea33c Brushes: a built-in Dry Media library of grainy chalk, pencil, crayon and charcoal art brushes
Window > Brush Libraries > Dry Media (`dry-media`) holds four art brushes:
Chalk Grain, Graphite Pencil, Wax Crayon and Charcoal Dust. Each is 100 pt
of filled vector paths generated from a fixed seed with integer steps and
plain arithmetic, at most 80 paths and 500 anchors, stretched along the
path with Tints colorization. The chalk and crayon art has even-odd gaps
cut out of its band.

The names, sizes and art are VectorCraft's own. A new i18n test checks
that every complete catalog names each built-in brush library.
2026-11-11 21:16:20 -08:00
dotCooCoo 123c9b5e7d Brushes: built-in Bristle Brushes library with one bristle brush for each tip shape
Window > Brush Libraries > Bristle Brushes holds ten original bristle
brushes generated in code, one for each tip shape: Fine Liner, Pointed
Flat, Stubby Round, Dry Scrub, Soft Dome, Filbert, Angled Round, Angled
Flat, Fan Blender and Grass Fan. Their names and values are VectorCraft's
own, and every value lies inside the range the bristle brush keeps.

A test checks the ranges, that every tip shape is covered, that no name
matches a default brush or another library's brush, that adding the
library is one undo step and a second add adds nothing, and that a saved
library reopens with the same brushes. The library and brush names have
rows in every catalog. docs/mcp.md lists the library.
2026-11-11 18:33:53 -08:00
Fabio William Conceição 72c7cb5a73 G5: built-in Energy Beams brush library
Six brush libraries; MCP docs list Energy Beams with the other generated brush libraries.
2026-11-11 18:07:54 +00:00
Fabio William Conceição 9dc15b8f1f G5: built-in Game Trails brush library
Add Speed Line, Dash Trail, Burst Ray and Zigzag as original art brushes so motion and impact strokes are one library click away.
2026-11-10 19:04:40 +00:00
aiongg 83eec43b18 refactor(engine): move tests_*.rs to tests/<topic>.rs 2026-10-26 18:26:56 +00:00