What are TransVert and TransVertStore?

Hi,

I’m wondering why we need TransVert and TransVertStore. They are for example (only!?) used in VIEW3D_OT_snap_selected_to_cursor and in TRANSFORM_OT_vertex_random, but why not just move the vertices by using the macro BM_ITER_MESH as is done almost everywhere else?
Does it have something to do with the ‘dirty’ flag? If so, what is a dirty vertex?

Best,

The reason not to use BM_ITER_MESH directly is there would will need to be separate loops for lattice/curve/armature/metaballs.

I understand. Thanks a lot!