engine: mesh.node.move moves nodes by a vector or to a point

The grabbed nodes (listed, on B-rep faces, or a sphere's) move; the nodes
within the radius follow by a falloff or harmonically; nodes stay on the
geometry as Relax Nodes moves them; the move is scaled back until no element
inverts. The reply gives the region's scaled Jacobian before and after and the
elements that got worse and better. One undo step. Toolbar entry Move Nodes
(Mesh, Improve) with its own icon.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01UhhZMBTviDQxZvwnyP89fo
This commit is contained in:
jyvikoandClaude Opus 5.5 authored and Irakli Kourtis committed 2026-10-17 10:35:53 -04:00
1 parent e52eda728f
commit 711e51074c
11 files changed
+586 -10

No files matched your search

+11
View File
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24">
<title>mesh.node.move</title>
<g id="Layer_1" data-name="Layer 1">
<path d="M4 4 L20 4 L20 20 L4 20 Z" fill="none" stroke="#dde2ea" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M12 4 L12 20 M4 12 L20 12" fill="none" stroke="#dde2ea" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="1.5 1.5"/>
<path d="M12 4 L16 8.5 M20 12 L16 8.5 M4 12 L16 8.5 M12 20 L16 8.5" fill="none" stroke="#dde2ea" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M10.7 12 C10.7 11.282 11.282 10.7 12 10.7 C12.718 10.7 13.3 11.282 13.3 12 C13.3 12.718 12.718 13.3 12 13.3 C11.282 13.3 10.7 12.718 10.7 12 Z" fill="none" stroke="#dde2ea" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M13.6 8.5 C13.6 7.175 14.675 6.1 16 6.1 C17.325 6.1 18.4 7.175 18.4 8.5 C18.4 9.825 17.325 10.9 16 10.9 C14.675 10.9 13.6 9.825 13.6 8.5 Z" fill="#4f9ce8" stroke="#4f9ce8" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.
+1
View File
@@ -0,0 +1 @@
{"shapes": [{"rect": [4, 4, 16, 16], "stroke": "line", "width": 1.25}, {"d": "M12 4 L12 20 M4 12 L20 12", "stroke": "line", "width": 1.0, "dash": [1.5, 1.5]}, {"d": "M12 4 L16 8.5 M20 12 L16 8.5 M4 12 L16 8.5 M12 20 L16 8.5", "stroke": "line", "width": 1.25}, {"circle": [12, 12, 1.3], "stroke": "line", "width": 1.0}, {"circle": [16, 8.5, 2.4], "fill": "accent", "stroke": "accent"}]}