Evaluated meshes can now wrap other kinds of data (currently edit-mesh, in the future subsurf could be made to work too).
To ensure the mesh data is created, call BKE_mesh_wrapper_ensure_mdata, although this creates a full copy of the mesh and may add a noticeable slowdown in the case of heavy meshes and should be avoided by using the edit-mesh directly.
I have a problem I just realized when trying to test the difference between using BKE_mesh_wrapper_ensure_mdata , and what I thought was ‘using editmesh directly’ like you suggest. I am pretty sure that I don’t really know what you meant, and was hoping it was just something simple like this:
I can do Mesh *me = vc->obact->data; which will solve the original issue of mvert being NULL in 2.90, but when the mesh is changed at all, none of the face positions or new faces are updated. It thinks everything is exactly as it was entering edit mode. For example, if you subdivide all the faces, and then drag over the entire mesh, only the faces that existed last time you entered edit mode will be selected (in their new location and smaller size). Only way to update this information is to exit and re-enter edit mode.
But that has the same issue of not updating mesh info on each new selection.
Is there a way to update mesh info without exit re-enter edit mode?
Is there some equivalent to MVert that I can get/use from BMEditMesh to avoid BKE_mesh_wrapper_ensure_mdata(me);?
Thanks, I am already thinking the whole thing here: https://developer.blender.org/differential/changeset/?ref=229154
will need to be re-written to use BMEditMesh information, or something else, but that would mean me being able to understand it a lot better than I do.
Any help you can offer is appreciated. I’m looking around blind for the most part, trying to figure out where information is, some examples of how it’s used.