Commit graph cad-editor/src/modules
Author SHA1 Message Date
Hakan Seven
d9aead3fbc Merge pull request #856 from ramox81/codex/align-circle-behavior 2026-08-21 23:29:57 +03:00
Hakan Seven
a87ca09fa4 Merge pull request #854 from ramox81/codex/align-arc-behavior 2026-08-21 21:41:24 +03:00
Hakan Seven
bd5f9436ea Merge pull request #852 from ramox81/codex/complete-hatch-workflow 2026-08-21 21:02:14 +03:00
Hakan Seven
4bc02b6b4a fix: correct hatch geometry workflow 2026-08-21 20:52:03 +03:00
Hakan Seven
b648000e78 Merge pull request #850 from ramox81/codex/associative-center-mark 2026-08-21 20:19:54 +03:00
ramox81
c5900dfff4 Remove redundant circle preview closure 2026-08-21 16:50:01 +03:00
ramox81
fc9110de21 Use circle planes in offset and break 2026-08-21 16:49:56 +03:00
ramox81
4f24bb7d02 Complete tangent circle workflows 2026-08-21 16:49:08 +03:00
ramox81
b0e464f4b4 Correct circle size input and persistence 2026-08-21 16:48:41 +03:00
ramox81
5f9d8a9e0e Align arc creation and editing behavior 2026-08-21 14:03:58 +03:00
ramox81
f83037271c Complete hatch creation and editing workflow 2026-08-21 12:57:19 +03:00
ramox81
ff09fc7800 Implement associative center mark workflow 2026-08-21 12:05:18 +03:00
ramox81
eba4fb87a8 Complete associative centerline workflow 2026-08-21 11:01:18 +03:00
ramox81
17dc0aff39 Complete 2D solid workflow 2026-08-21 10:14:26 +03:00
Hakan Seven
464971969c feat: complete freehand sketch workflow
Co-authored-by: ramox81 <184937705+ramox81@users.noreply.github.com>
2026-08-21 00:17:44 +03:00
Hakan Seven
44efb8fd53 feat(frame): complete frame controls
Preserve frame geometry for selection while separating viewport and plot visibility across supported reference entities.

Refs #642
2026-08-20 23:37:02 +03:00
Hakan Seven
2a852f4479 feat(gradient): align editing and rendering 2026-08-20 21:17:10 +03:00
Hakan Seven
667f20d604 feat(revcloud): complete editing workflow
Keep source planes intact and stored Mline offsets in sync.

Refs #626
2026-08-20 20:33:57 +03:00
Hakan Seven
0e944c19a6 feat(boundary): trace exact planar loops 2026-08-20 19:44:16 +03:00
Hakan Seven
9cc0dcbe46 feat(draw): remember polygon side count 2026-08-20 19:11:40 +03:00
ramox81
b7819481f0 Complete wipeout workflow and editing 2026-08-20 17:56:11 +03:00
ramox81
5fbde4c711 Preserve freehand movement endpoints 2026-08-20 16:52:20 +03:00
ramox81
e3bfbf1590 Complete freehand sketch workflow 2026-08-20 16:31:22 +03:00
ramox81
aee3397f5d fix(gradient): align properties and editing 2026-08-20 15:33:09 +03:00
Hakan Seven
4d2c2dbd0f fix(circle): use kernel tangent solutions
Route tangent-tangent-radius construction through cadkernel so enclosing and external tangency share one geometry implementation.

Refs #814
2026-08-20 15:20:07 +03:00
ramox81
be2335bfa1 fix(revcloud): correct arcs and property editing 2026-08-20 14:43:55 +03:00
ramox81
4f375da191 feat(revcloud): complete creation and editing workflow 2026-08-20 14:16:43 +03:00
ramox81
4923e4c9da feat(boundary): complete region creation workflow 2026-08-20 13:14:48 +03:00
Hakan Seven
dcedf945ea feat(spline): correct property semantics
Merge PR #824 while keeping periodic and coplanarity geometry in cadkernel.
2026-08-20 12:13:35 +03:00
ramox81
098099afe5 Remember the last polygon side count 2026-08-20 10:05:46 +03:00
Hakan Seven
1c408e3a73 feat(spline): improve fit and CV editing
Keep planar conversions kernel-backed and leave unsupported 3D, CV-to-fit, and closed rebuilds unavailable instead of changing curve data.\n\nRefs #815
2026-08-20 00:18:45 +03:00
ramox81
1a6b61fb3a Correct spline property value semantics 2026-08-19 16:50:49 +03:00
NgoQuocViet2001
dddce684e6 fix(circle): offer enclosing solutions for tangent-tangent-radius
A circle of radius r tangent to a circle of radius r_i has its center at
r_i + r (external tangency) or |r_i - r| (internal). ttr_lc_candidates and
ttr_cc_candidates built that second distance as r_i - r and skipped the
combination when it came out negative, so every solution where the new
circle is the larger one and encloses an existing circle was dropped. TTR
over two circles could only ever return externally tangent results.

Only rho^2 reaches the algebra below, so taking the magnitude is enough,
which is how the tan-tan-tan path already computes it.

Fixes #814
2026-08-19 20:30:58 +07:00
ramox81
5595837a69 Align spline properties and editing 2026-08-19 12:00:02 +03:00
ramox81
0d37d3ff78 Improve spline fit and control vertex grips 2026-08-19 11:02:32 +03:00
Hakan Seven
7c818d15e9 fix(geometry): honor polyline OCS in commands
Route editing and derived geometry through kernel world-space curves.\n\nRefs #797\nRefs #798\nRefs #799
2026-08-18 22:09:48 +03:00
Hakan Seven
08f4cc97f8 feat(zoom): default to window mode
Keep all existing zoom modes available as interactive options.\n\nRefs #804
2026-08-18 20:29:55 +03:00
Hakan Seven
f9c3546551 fix(trim): keep retained geometry continuous
Use kernel trim spans so unrelated boundary crossings do not split survivors.
2026-08-18 20:12:30 +03:00
Hakan Seven
1dded7f881 fix: restore workspace verification 2026-08-15 23:11:26 +03:00
gianlucafiore
7810d2c154 fix: allow multiple stretch selection windows 2026-08-15 15:01:05 -03:00
Hakan Seven
1d2f0a09c1 feat(hatch): add associative boundaries 2026-08-13 23:47:50 +03:00
gianlucafiore
18ef42db82
Merge pull request #756 from gianlucafiore/fix/leader-behavior
Fix classic leader behavior and annotation linkage
2026-08-13 11:59:46 -03:00
gianlucafiore
2d1ee0d936 fix: improve classic leader behavior and annotation linkage 2026-08-13 11:58:54 -03:00
Hakan Seven
7a8da58d55 feat(hatch): add multi-region selection
Refs #532
2026-08-13 17:16:29 +03:00
Hakan Seven
4fd9b98da4 perf(render): instance block geometry
Share source buffers across block placements and render nested content with GPU instance transforms.\n\nChunk silhouettes and compact mesh material data so large drawings stay under device buffer limits and remain responsive.
2026-08-12 02:33:10 +03:00
Hakan Seven
c4dfa7567d fix(model): correct primitive creation and grips 2026-08-12 00:03:27 +03:00
Hakan Seven
e37b77e426 feat(model): persist solid creation history 2026-08-11 19:52:17 +03:00
Hakan Seven
ed21681d48 feat(model): preview primitive height 2026-08-11 19:39:01 +03:00
Hakan Seven
ac8183ec91 refactor(cad): use direct stack dependencies 2026-08-10 15:03:31 +03:00
Hakan Seven
8c7ebdc9f1 refactor: drop truck, and evaluate every curve through the kernel
The last four truck crates are gone from the manifest. What they were doing
falls into three parts, and each now has one answer instead of two.

NURBS evaluation. truck was carrying B-spline curves and surfaces for the
SPLINE entity, hatch boundaries, BLEND's endpoint frames, the spline preview
and ACIS spline-surface faces. The kernel now has both, over one de Boor
written across however many coordinates a control point holds — so a plane
curve and a space curve cannot drift apart, and a surface is the same
algorithm applied twice. The rational and the polynomial cases stop being
separate types: weights absent means polynomial.

The entity conversion. Every LINE, ARC, ELLIPSE, SPLINE and polyline was
built into truck topology purely so it could be sampled back into points.
They are sampled through `entities::curve` now, which is where each one's
geometry is already defined once and what EXTRUDE and REVOLVE read — so a
circle drawn on screen and a circle handed to the Model tab come from the
same definition. That retires four of TruckObject's variants and the module
is renamed for what it does.

SWEEP and LOFT. Both only ever produced a mesh, so both are built from point
lists: a band of quads per span, and a lid where a profile closes. Lofting
profiles of different densities resamples them by distance rather than by
index, so a circle lofted to a square no longer twists.

Two things worth noting for anyone reading the old comments. The tolerance
globals that lived in the tessellation module were never about truck at all —
they are the per-frame chord height, and they move to `curve_tol`. And the
rule that a profile handed over as `Lines` silently broke EXTRUDE and REVOLVE
no longer holds: those read the curve directly and never look at this channel.

The two `automation` test failures are unchanged from before this and are not
caused by it.

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