Files
JK3D f0d305a783 Move triad: dragging in large designs does less work per step (#7273) (#7276)
* claim: #7273

* Viewport: drag a component as a GPU layer of its own

Each step of a Move triad drag placed the component anew, and the
viewport then rebuilt the model scene and uploaded it again. The dragged
bodies are now drawn from the scene built where the drag found them,
moved on the GPU by the drag's motion; the rest of the model stays as it
was. In the viewport a step meshes, builds and uploads no geometry;
only the transform (and the ground shadow) changes.

- gpu: Frame::moving draws a second scene with its own model matrix
  (U.model, applied in every vertex entry, instanced parts included);
  blocks, evaluated chunks and instanced triangles pass between the
  model scene and the layer instead of being uploaded again; glass is
  sorted in the layer's frame; the AO prepass and see-through pass
  cover it; the frame key includes the layer.
- doc: ModelBody::display_moved_from gives the rigid motion between two
  worlds' copies of one solid.
- ui-egui: the model scene without the dragged bodies is built once;
  dragged bodies are matched by name; the step's body boxes are the
  start boxes moved; selected or hovered dragged bodies light where they
  stand. A drag back where it began keeps its layer. A section, an
  analysis, continuity seams or no GPU draw the drag as before;
  capturing the move makes the scene whole again.

* feat(ui): a setting to keep the highlight under the pointer while Move drags

A Move triad drag drawn as a GPU layer picks nothing under the pointer, which keeps a step from
meshing the dragged bodies where they stand and from looking up the Browser row a highlight
follows. Preferences > Tools > Assembly Move > "Highlight what is under the pointer while dragging
a component" (`move_drag_highlights`, off by default) picks and highlights as before.

Also: the drag layer test takes `as_chunks` (clippy 1.99's `chunks_exact_to_as_chunks`).

* fix(ui): say when the Move drag highlight setting applies

The label names Move's arrows, and the tooltip says that with a section or an analysis shown the drag highlights all the same, and that a part dragged along its joints never does.
2026-11-05 12:12:06 +00:00
..