photocraft/crates/vector/src
Valentin Klein 8458cf7095
Transform: Distort, Perspective and Warp keep shape layers live (#3009) (#3025)
Edit › Transform › Distort / Perspective and Warp on a shape layer let the
user edit the box or mesh and then refused at commit ("needs a rasterized
shape"). Photoshop maps the shape's path and keeps it a shape.

- photocraft-vector: new `map` module. `map_points` sends every anchor and
  control point through a map (Distort / Perspective: exact for straight
  segments, exact end tangents for curves). `map_path` follows a curved map
  (Warp), halving each segment until the mapped control points follow the
  mapped curve within a tolerance (at most 64 pieces a segment, bounded in
  total); straight segments whose image is straight stay straight.
- engine: `transform_layer` and `warp_layer` map a shape's path instead of
  refusing; a live rectangle/ellipse/polygon/line becomes a plain path. A
  linked vector mask now follows Distort / Perspective / Warp too. A map that
  sends a point to infinity is an error, not a corrupt path.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 16:16:04 -04:00
..
edit.rs Tools: Freeform Pen and Curvature Pen (#1054) (#2856) 2026-10-11 06:56:44 -04:00
flatten.rs Expose native shape stroke controls with staged previews (#2218) 2026-10-10 06:42:52 -04:00
lib.rs Transform: Distort, Perspective and Warp keep shape layers live (#3009) (#3025) 2026-10-11 16:16:04 -04:00
map.rs Transform: Distort, Perspective and Warp keep shape layers live (#3009) (#3025) 2026-10-11 16:16:04 -04:00
raster.rs Curved shapes no longer report bounds 1 px too wide (#2537) (#2641) 2026-10-10 13:41:51 -04:00
shapes.rs continued wip 2026-09-30 09:37:18 -04:00
stroke.rs Expose native shape stroke controls with staged previews (#2218) 2026-10-10 06:42:52 -04:00
tests.rs Curved shapes no longer report bounds 1 px too wide (#2537) (#2641) 2026-10-10 13:41:51 -04:00
trace.rs Tools: Freeform Pen and Curvature Pen (#1054) (#2856) 2026-10-11 06:56:44 -04:00