ramox81
e3bfbf1590
Complete freehand sketch workflow
2026-08-20 16:31:22 +03:00
Hakan Seven
bb49f92e99
fix(model): repair solid booleans
...
Track selection order for directional subtraction and use the kernel fixes for periodic curved-face intersections.\n\nRefs #816
2026-08-20 16:00:20 +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
Hakan Seven
5e62da464e
fix(properties): preserve literal text
...
Separate numeric fields from names and content so only numeric property values are evaluated as expressions.
Refs #809
2026-08-20 14:58:12 +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
Hakan Seven
9202297d1b
fix(plugin): trace MText registry enums
2026-08-20 00:26:32 +03:00
Hakan Seven
7c878a725c
Merge pull request #819 from schoeller/patch-1
2026-08-20 00:23:34 +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
Hakan Seven
0f250bb485
feat(ellipse): add complete grip editing
2026-08-19 23:48:13 +03:00
Hakan Seven
8601fd8e4b
fix(render): draw block-contained 3D faces
2026-08-19 23:34:10 +03:00
Hakan Seven
c8840e2706
fix(web): force WebGL2 backend
...
Affected Chromium adapters fail after selecting WebGPU even when packed renderer paths are forced. Use WebGL2 for the web app and let device limits select renderer tiers.\n\nRefs #788
2026-08-19 19:04:58 +03:00
ramox81
96e8d75cc5
Separate spline fit and control properties
2026-08-19 17:21:49 +03:00
ramox81
1a6b61fb3a
Correct spline property value semantics
2026-08-19 16:50:49 +03:00
NgoQuocViet2001
67ae0c2803
fix(boolean): give SUBTRACT a deterministic operand order
...
solid_boolean() collects the selected solids straight out of
scene.selected, a HashSet, and then uses handles[0] and handles[1] as the
two operands. Set iteration order is arbitrary and can differ between
runs, so SUBTRACT — the one non-commutative operation of the three — could
cut either solid out of the other for the same selection.
Sort the pair by handle, so the solid created first is the body the other
is taken out of. UNION and INTERSECT are unaffected.
2026-08-19 20:39:39 +07: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
NgoQuocViet2001
dd9ff89904
fix(expr-eval): don't evaluate identifiers found inside words
...
The embedded-expression rescan in eval_to_string tries every substring, so
any identifier the evaluator knows is also recognised in the middle of
ordinary text. Because `pi` needs no arguments it resolves anywhere it
appears, and names typed into property or command fields were rewritten:
`ASPIRATORE` came back as `AS3.141592653589793RATORE`.
Require a candidate whose first or last token is an identifier to start,
respectively end, on a word boundary. Leading and trailing numbers stay
unrestricted so mixed input such as `def10*10abc` still evaluates.
Fixes #809
2026-08-19 20:19:54 +07:00
ramox81
df71fa61bd
Show effective spline endpoint tangents
2026-08-19 15:54:28 +03:00
Sebastian
cc8d27b52f
Update build.rs to include MText in V4 json
2026-08-19 14:33:11 +02: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
ramox81
283e6db324
feat(ellipse): add editable arc endpoint grips
2026-08-19 10:02:38 +03:00
ramox81
3f9c3a9e9a
fix(ellipse): add symmetric axis grips
2026-08-19 09:28:18 +03:00
Hakan Seven
97a6322e2a
fix(web): use compatibility renderer
...
Chromium can advertise WebGPU limits that its shader path does not reliably support. Keep web builds on the packed/texture pipelines.\n\nRefs #788
2026-08-18 22:35:39 +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
f4889d4c70
fix(grid): restore viewport visibility
...
Draw the grid above opaque GPU surfaces and below interaction overlays.\n\nRefs #789
2026-08-18 20:21:14 +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
afd4c96a78
fix(properties): measure bulged polylines
...
Merge PR #808 and use kernel area, length, and centroid measurements.
2026-08-18 19:50:08 +03:00
Hakan Seven
3a53a110cc
fix(properties): hide unsafe MLine geometry
...
Merge PR #807 . MLine vertex fields mutate stored points without rebuilding dependent geometry.
2026-08-18 19:31:58 +03:00
Hakan Seven
5d4a279c1d
fix(properties): correct XLine geometry
...
Merge PR #806 and route point/direction math through the kernel so valid near-zero directions are not rejected by an application tolerance.
2026-08-18 19:21:50 +03:00
Hakan Seven
c62bbe59a9
fix(plugin): skip non-V4 notifications
2026-08-18 18:46:19 +03:00
ramox81
7687211fbb
fix(ellipse): show full end angle as 360
...
Use kernel closure tolerance so Properties matches geometric classification.
2026-08-18 18:43:16 +03:00
ramox81
c17c25fef1
fix(properties): measure bulged polylines exactly
2026-08-18 16:46:16 +03:00
ramox81
cdd337261f
fix(properties): remove MLine geometry section
2026-08-18 16:24:54 +03:00
ramox81
5bd104faab
fix(properties): normalize XLine direction edits
2026-08-18 16:09:09 +03:00
ramox81
74c1fe48d8
fix(properties): expose XLine second point
2026-08-18 16:07:35 +03:00
Sebastian
fcd4a278e4
fix(plugin): skip non-V4 plugins in broadcast_notification
...
PluginManager::broadcast_notification was fanning out host notifications to every loaded plugin. Only V4 plugin processes can receive host->plugin notifications; V2/V3 plugins correctly rejected them with notify_plugin requires V4 protocol.
Add PluginProcess::is_v4() and skip non-V4 plugins in broadcast_notification so V4 document snapshot notifications only go to V4-capable plugins. Fixes repeated console errors for Example, Land Survey and V2 Compat.
2026-08-18 12:12:42 +02:00
Hakan Seven
403247cbc3
feat(i18n): add Bulgarian locale
2026-08-17 23:45:04 +03:00
Hakan Seven
6c3455fb09
fix(plugin): bound shared-memory mappings
...
Reject malformed or oversized snapshots before mmap and apply checked size arithmetic to both host and reader paths.
2026-08-17 23:22:58 +03:00
Hakan Seven
313349fd71
fix(io): verify saves through edit leases
2026-08-17 23:13:07 +03:00
Hakan Seven
f9e7afdee2
fix(build): scope Windows debug stack
...
Apply /STACK only to the debug app binary instead of every Windows target artifact.
2026-08-17 22:46:50 +03:00
Sebastian
fcffa13693
fix(build): increase Windows debug stack
...
Increase the Windows debug executable stack reserve to prevent startup overflow.
2026-08-17 22:40:45 +03:00
Hakan Seven
04b9363666
test(plot): verify printer property commands
...
Use exact platform-specific command expectations.\n\nRefs #773
2026-08-17 22:29:47 +03:00
Ngo Quoc Viet
3a94c37eea
fix(plot): open selected printer properties
...
Open the selected printer's properties on Windows and retain the printer-list fallback.
Refs #773
2026-08-17 22:26:29 +03:00
Hakan Seven
ac3392d81b
fix(commands): reset selection gestures
...
Clear held box and lasso input before a new command starts.\n\nRefs #732
2026-08-17 22:16:14 +03:00
Ngo Quoc Viet
ba990d440e
fix(commands): cancel pending marquee
...
Cancel a pending selection marquee before starting a non-transparent command.
Refs #732
2026-08-17 22:11:41 +03:00
Hakan Seven
687023391e
fix(flatten): project entities through kernel
...
Invalidate scene caches through entity updates and reject projections
that cannot be represented without changing geometry.
Refs #728
2026-08-17 21:59:09 +03:00
Ngo Quoc Viet
69604012d6
fix(flatten): project polylines and planar faces
...
Add initial FLATTEN coverage for polyline families, SOLID, and 3DFACE.
Refs #728
2026-08-17 21:40:17 +03:00
Hakan Seven
aab30f1b5e
fix(blocks): preserve insert unit scaling
...
Compose unit conversion with authored transforms and attributes. Keep unit-factor display and the full INSUNITS mapping consistent.
Refs #706
2026-08-17 21:32:28 +03:00
Hakan Seven
a65ba28270
Merge pull request #776 from NgoQuocViet2001/fix-unitless-block-insert-scale
...
fix(blocks): don't unit-scale unitless block inserts
2026-08-17 21:17:55 +03:00