Updated with the changes requested by @Dalai Felinto (dfelinto).
Aug 31 2019
May 11 2018
May 9 2018
edbm_rip_invoke_vert and edbm_rip_invoke_edge are called only once in the whole codebase and they are not even declared in any header, so I assume it's fine to change the function signature.
May 8 2018
With Auto Perspective enabled, changing to top/front/side views and then rotating the view always goes back to perspective projection, even if orthographic was set before. Seems to me like this should be addressed first.
That is the intended behavior. It makes it so that artists can fluidly switch from orthographic side views and perspective. You pretty much never want to be in front view without ortho. And it makes it so that when you select a view, either from the view menu, or the viewport manipulator, it does the right thing.
Added a second diff that requires every object to have a first/last selected vertex to allow merge at first/last.
Not sure what's better.
Apr 28 2018
At least on that particular example, running the modifier on the GPU(gtx 950) is much faster than on the CPU(i7 4790k). And that's on a case where the ratio between evaluated pixels and vertices is just 1. For painting and compositing, shouldn't the payoff be much better ? It wouldn't even be necessary to send the whole mesh to the renderer.
May I suggest adding a bake texture function to the baking API instead of duplicating every node in C?
This function would evaluate a single mesh in isolation and would take a texture node tree instead of a material one (texture node trees would be just like regular material node trees without shader nodes).
This would likely be faster to evaluate since it could run in the GPU and would allow better integration with third party render engines.