cad-editor/src
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Hakan Seven b36e85e46e refactor(snap): take an entity's snap points from its curve
Each entity built its own, and what they offered had drifted apart from
what the geometry actually has:

- An arc offered no quadrants at all. It now offers the ones its sweep
  covers, and no more.
- A spline offered its control points as endpoints. For a control-point
  spline those are not on the curve, so the cursor landed in empty space
  beside the geometry. It now offers its two real ends and its midpoint,
  with the fit points — which are on the curve — still on offer.
- An elliptical arc had no midpoint and no ends.

A new SnapHint::Endpoint carries an end that cannot go in key_vertices.
Consecutive entries there are taken to be joined by a straight segment
and their midpoint offered, which is right for a line or a polyline and
wrong for anything curved: an arc's two ends would also produce a snap
out on the chord. Splines lose their key_vertices for the same reason —
the chord between two fit points of a curvy spline does not run along
it.

A polyline's midpoints and arc-segment centres stay out of snap_pts
deliberately. The engine already derives a chain's midpoints from its
vertices, and a wire carrying a centre is treated as round elsewhere,
which a polyline with one bulge in it is not.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-09 00:43:44 +03:00
..
app fix(cursor): restore default geometry 2026-08-08 21:53:26 +03:00
entities refactor(snap): take an entity's snap points from its curve 2026-08-09 00:43:44 +03:00
io fix(web): give the browser build a load_file to fail through 2026-08-08 03:34:57 +03:00
modules feat(entities): give an entity its geometry as a curve 2026-08-09 00:43:35 +03:00
plugin fix(plugins): harden marketplace loading 2026-07-30 16:34:07 +03:00
scene refactor(snap): take an entity's snap points from its curve 2026-08-09 00:43:44 +03:00
shaders feat(render): add scene environment pipeline 2026-08-05 23:42:18 +03:00
ui fix(cursor): restore default geometry 2026-08-08 21:53:26 +03:00
cli.rs fix(renderer): add automatic compat fallback 2026-07-24 17:05:54 +03:00
command.rs feat(view): complete ZOOM options 2026-08-08 20:37:53 +03:00
config.rs feat(web): persist browser state 2026-07-29 00:44:00 +03:00
discussions.rs fix(plugins): trust platform certificates 2026-07-29 15:00:07 +03:00
i18n.rs feat(web): unify fonts and refine viewcube 2026-08-03 15:28:51 +03:00
lib.rs feat(locale): add Fluent translations 2026-08-02 18:53:38 +03:00
locale_catalog.rs fix(web): give the browser build a load_file to fail through 2026-08-08 03:34:57 +03:00
main.rs feat(locale): add Fluent translations 2026-08-02 18:53:38 +03:00
network.rs fix(plugins): trust platform certificates 2026-07-29 15:00:07 +03:00
par.rs feat(wasm): sequential rayon shim for the web build 2026-06-16 17:11:20 +03:00
patreon.rs fix: normalize recent Patreon support 2026-08-04 12:17:21 +03:00
perf.rs perf(scene): make geometry edits incremental 2026-07-28 17:16:27 +03:00
snap.rs refactor(snap): take an entity's snap points from its curve 2026-08-09 00:43:44 +03:00
sys.rs fix(linux): focus browser on external links 2026-07-30 21:07:31 +03:00
videos.rs fix(plugins): trust platform certificates 2026-07-29 15:00:07 +03:00