Commit Graph
2102 Commits
Author SHA1 Message Date
gianlucafiore 9fb075f8ee fix: improve plot style editing and print all plot actions 2026-08-11 18:45:00 -03:00
Hakan Seven c4dfa7567d fix(model): correct primitive creation and grips 2026-08-12 00:03:27 +03:00
Hakan Seven 59ca0f693f feat(model): edit primitive history properties 2026-08-11 20:14:51 +03:00
Hakan Seven 4ac10187c2 fix(model): preserve solid history lifecycle 2026-08-11 20:10:23 +03:00
Hakan Seven d2993fd054 feat(model): add parametric solid grips 2026-08-11 19:59:24 +03:00
Hakan Seven ea8dd24865 build: update cadkernel history service 2026-08-11 19:55:56 +03:00
Hakan Seven e37b77e426 feat(model): persist solid creation history 2026-08-11 19:52:17 +03:00
Hakan Seven dc6dc2256d fix(model): sync solid render interaction 2026-08-11 19:39:01 +03:00
Hakan Seven ed21681d48 feat(model): preview primitive height 2026-08-11 19:39:01 +03:00
gianlucafiore d76dcd8426 Merge pull request #741 from gianlucafiore/feature/objectscale-dialog
Add annotation object scale access from Properties
2026-08-11 12:10:41 -03:00
gianlucafiore 9741195c2c feat: add object scale button to properties 2026-08-11 12:08:55 -03:00
Hakan Seven 6cafea92bc fix(web): preserve DWG render state
Carry rendering fields omitted by document serialization and normalize block origins before building web caches.
2026-08-11 17:16:46 +03:00
Hakan Seven a1f64d7663 fix(render): restore solid surface rendering
Keep viewport styles from disabling selected shaded modes.\n\nPack mesh shader inputs to stay within WebGL limits.
2026-08-11 15:44:40 +03:00
gianlucafiore e0ead249b6 Merge pull request #740 from gianlucafiore/fix/dimension-properties-editable
Fix dimension styles incorrectly treated as read-only
2026-08-11 08:45:12 -03:00
gianlucafiore 3a752029cd fix: allow editing dimension styles 2026-08-11 08:40:54 -03:00
Hakan Seven 7775e3d2c9 chore(release): prepare v0.9.5 v0.9.5 2026-08-11 13:18:51 +03:00
Hakan Seven 6fdd090176 fix(ui): restore start actions and web copy
Route About info through browser clipboard on WASM.
Let Start-page links reach the existing command allowlist.

Refs #707
Refs #738
2026-08-11 13:15:09 +03:00
Hakan Seven 70f65270aa refactor(properties): remove detail sections 2026-08-11 12:49:28 +03:00
Hakan Seven de6f6c933b fix(acis): use kernel angle policy 2026-08-11 12:49:20 +03:00
Hakan Seven c00ee3d924 fix(acis): use source fit tolerance 2026-08-11 10:17:22 +03:00
gianlucafiore aedd0b8d2d Merge pull request #735 from gianlucafiore/feature/plotstyle-color-picker
Fix CTB plotting for inherited block colors
2026-08-10 20:02:19 -03:00
gianlucafiore efc881d5bc Merge remote-tracking branch 'upstream/main' into feature/plotstyle-color-picker 2026-08-10 20:00:13 -03:00
Karim Jerbi d9016e7196 Merge pull request #734 from KarimJerbi/feature/redraw-regen
Add REDRAW / REDRAWALL / REGEN / REGENALL commands- #721
2026-08-10 23:59:14 +01:00
gianlucafiore 97c904796e fix(plot): preserve inherited ACI for block plotting 2026-08-10 19:57:24 -03:00
Karim Jerbi f3d8904fc7 fix(alias): only advance the migration marker after the merge persists
Advancing ocad.pgp.version (or the web counterpart) could succeed while the
merged alias table write failed, so a later launch skipped migration against a
stale file and permanently lost the new aliases. Gate the version write on the
alias-table write (native fs::write / web set_item) succeeding.
2026-08-10 23:49:43 +01:00
Karim Jerbi 7013aa8cbb fix(alias): migrate new default aliases into existing profiles
Existing installs only got newly-added default aliases when storage was
absent; load_aliases parsed an already-present ocad.pgp or web alias table
verbatim, so R/RA/RE/REA remained unknown to profiles seeded before version 2.

Introduce a versioned default merge: track the default-table version each
profile has seen (wordless ocad.pgp.version marker / localStorage key) and
fold in only the aliases introduced after that version, never overwriting
user-defined mappings or resurrecting deliberately removed aliases. On first
migration the merged table and the advanced marker are persisted so later
launches skip the already-delivered aliases.
2026-08-10 23:39:46 +01:00
Karim Jerbi de1c1798a0 fix(scene): cfg-gate test-only refresh_pending_any to silence dead-code warning 2026-08-10 23:26:27 +01:00
Karim Jerbi 319710f36b test(commands): alias R routes like REDRAW 2026-08-10 23:26:27 +01:00
Karim Jerbi d2e18ead38 feat(aliases): R/RA/RE/REA for REDRAW/REGEN; register verbs 2026-08-10 23:26:26 +01:00
Karim Jerbi 692bb3babf feat(commands): REDRAW/REDRAWALL/REGEN/REGENALL 2026-08-10 23:26:26 +01:00
Karim Jerbi 7ace7fef9e feat(render): per-viewport REDRAW force_rasterize through builders to prepare gate 2026-08-10 23:26:26 +01:00
Karim Jerbi df103575b9 feat(scene): REDRAW refresh request resolved to per-viewport instance ids 2026-08-10 23:26:26 +01:00
gianlucafiore 4d15ac88b2 Merge pull request #733 from gianlucafiore/feature/plotstyle-color-picker
Improve plot style editor and PLOT integration
2026-08-10 19:11:43 -03:00
gianlucafiore e2e4bfdcd4 feat(plotstyle): improve CTB editor workflow 2026-08-10 19:09:40 -03:00
Hakan Seven 22a294c705 build(deps): update cadkernel revision 2026-08-10 21:14:53 +03:00
gianlucafiore c4322f4cbf Merge pull request #730 from gianlucafiore/fix/ltscale-line-arc-ellipse
Fix linetype scaling for lines, arcs and ellipses
2026-08-10 15:11:54 -03:00
gianlucafiore d22d0a272c fix(linetype): preserve patterns for basic curve entities 2026-08-10 15:10:42 -03:00
gianlucafiore 1cd1b89250 Merge pull request #729 from gianlucafiore/fix/705-grip-dynamic-input
Add dynamic input and precision snapping to 2D grip editing
2026-08-10 13:30:27 -03:00
Hakan Seven 3b6a4d1c4e build(deps): update cadkernel revision 2026-08-10 19:29:12 +03:00
gianlucafiore 86d7226df6 feat(grips): add dynamic input and precision snapping 2026-08-10 13:26:35 -03:00
Hakan Seven 873c36beb3 build(deps): update cadkernel revision 2026-08-10 16:32:26 +03:00
Hakan Seven c943dfe391 fix(render): draw spatial curves and widths 2026-08-10 16:30:43 +03:00
Hakan Seven ac8183ec91 refactor(cad): use direct stack dependencies 2026-08-10 15:03:31 +03:00
Hakan Seven 3b4fbabdba build: update acadifc revision 2026-08-10 14:13:43 +03:00
Hakan Seven 5a9de73096 build: update acadifc revision 2026-08-10 12:46:23 +03:00
Hakan Seven 96be8214f9 feat(tess): use angular sampling
Route curve, hatch, sweep, loft, surface, edge, and isoline tessellation through the shared kernel policy.
2026-08-10 12:12:16 +03:00
gianlucafiore f607422c9d Merge pull request #718 from gianlucafiore/feature/cad-color-picker
Add CAD indexed color picker with recent colors
2026-08-10 06:08:13 -03:00
Hakan Seven dc998fe46b refactor(tess): move solid sampling to kernel
Remove local face, edge, spline, sweep, loft, and silhouette
samplers. Meshes and overlays share the kernel tolerance and edge
schedule.
2026-08-10 10:18:53 +03:00
gianlucafiore 4697e8cc33 feat(color): add CAD indexed color picker 2026-08-09 23:40:55 -03:00
Hakan SevenandClaude Opus 5 60f5bca0d4 fix(tess): sample a solid's faces as finely as the edges drawn over them
The shaded surface of a curved solid was visibly coarser than its own
wireframe: the wire ran along the true rim while the facets cut inside it.

Two things were wrong, and only one was the tolerance.

`facet_res` is a resolution multiplier — the same one `scale_lod` divides the
fallback sampler's chord fraction by — and the kernel path was using it as a
sag in world units. At the default that asks for a whole unit of departure, so
nothing smaller than a metre subdivided at all and a face was only ever as
round as its own boundary. It is a fraction of each surface's own radius now,
which carries no assumption about the drawing's units.

And it is the *edges'* fraction, shared from `EDGE_CHORD_FRAC` rather than
copied. Those edges are drawn over these faces; sampling the two differently
is what put the wire across a facet instead of along its corners. `facet_res`
is deliberately not applied either, since the edges it must line up with are
built once at highest detail and never scaled.

A torus is measured by its tube rather than its ring — the tube is the tighter
bend, and sampling to the ring leaves the section a hexagon.

The primitive-volume test claimed a mesh can never read over its true size.
That holds for a convex solid, where every chord lies inside; a torus is not
one, and across the inside of its tube the chords fall outside the material.
It passed before only because the sampling was too coarse to show it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-10 03:17:12 +03:00