are there any best practices for this? doing a non-destructive bmesh op in modal is trivial… you just update the existing geometry, but what do you do when the geometry is constantly changing?
For example, say I want to make a custom modal bridge operator. The operator starts with two edges selected by the user, a bmesh is created in invoke(), and then bmesh.ops.bridge_loops gets called in modal(), but after that all of the geometry is changed. The original selection we started with is no longer valid, so if we wanted to have modal controls to add edge loops or control the profile (or whatever, this is all hypothetical), we’ve lost our original selection. worse- we have all of this new geometry that wasn’t part of the original mesh now.
So that thought exercise got me thinking- what exactly is the best practice for something like this? The best I could come up with is creating a temporary copy of the original mesh with the original selection and essentially re-build the mesh at the beginning of every modal update, but with the updated parameters. That seems… wrong. That can’t be it, can it?