This code is from Andrew Wiggen (ender79) and reviewed by me.
His comments:
Implements some tools that were marked TODO:
- select nth
- separate loose parts
And also fixes a few bugs;
- extrude and move on normals causes faces to disappear until the move starts
- hiding verts/edges/faces does not deselect them
- deleting a selection sometimes deletes too much (e.g. a solid cube and a wire cube build of only edges, join them on a single edge, select only the faces of the solid cube and delete, some of the deselected edges from the wire cube were also being deleted)
----------------------------------------------
Loop multiselect operator brought back. It can
be accessed via the select->edge loop and
select->edge ring menu entries or through the
ctrl-e edge specials menu.
----------------------------------------------
Select non manifold was not working properly
because BM_Nonmanifold_Edge considered border
edges to be manifold.
1. Removed pinning, at least until after trunk
reintegration (it's a usefull feature, but
incomplete).
2. Ripped out the subclassing code I originally
wrote so bmesh would be more usable for modifiers
(I ended up improving CDDM instead).
3. Inlined some of the macros in bmesh.h, still need to
do the macros in bmesh_operator_api.h.
4. Removed the BMESH_ITER_*** macros (except for BMESH_ITER_INDEX).
They were too clunkly to be worth it.
Multires interpolation. It's quite usable yet; I wanted to avoid
subsurfing the multires data and ray tracing original/new
topology. The result is kindof like trunk's interpolation.
I'll see how much better I can get it. I might have to go with
the full-on ray tracing solution. Right now, it's not very good.
Also made it so trunk files with multires open correctly.
Implemented a new "super knife". Activate with k. Holding CTRL
will allow extended cutting ala old lines mode. Confirm with enter
and escape. You cannot cancel, btw, you can only confirm (and undo
later if you want). Hopefully I'll support undo within the tool soon.
* Supports cutting edges, into faces, etc. You can pretty much do whatever
you want. Will snap to vertices too.
* Note that if you cut into a face, it must be valid topologically when
you press enter to confirm.
* It's pretty and graphical :)
* You can only cut visible geometry.
* UVs/vcols are a little buggy still
Now, thou shalt all cease and desist all lack of motivation for
testing! No longer shall users put off testing until "it's cooler"!
:P
------------
Correct problems with edgetag_context_set(), edgetag_shortest_path(),
minmax_tface(); parameters were missing or of incorrect type.
Joseph: please review these changes.
I've removed editmesh altogether (other then scanfill, which is
seperate code that happens to reuse the editmesh structures).
The compatibility layer I had written for old editmesh tools
was more trouble then it was worth, though it did help in the
early stages of this project.
There's a fair amount of breakage, and there's bunches of tools
(mostly minor ones) I need to port over still. Biggest ones are
join triangles and loop to region, and spin/screw.
This probably isn't really testable, I'll hopefully have more
work done on this soon, but might not be before next week.
Most likely will not compile for others, I'd appreciate any build errors
and missing files reports (I can never seem to get everything committed
and all the build systems working without help).
Porting over the sculpt/multires tools was a breeze,
thanks goes to brecht for a design that didn't exclude
ngons and was easy to port.
Note that I've not tested externally-backed multires
file support yet. Also, I still need to write version
patch code for some cases.
Some notes:
* Like trunk, topological changes don't update multires right,
so e.g. subdivide will duplicate multires data on the new faces,
instead of subdividing it.
* If you set the debug value (ctrl-alt-d) to 1 it'll turn on
my experiments in speeding up sculpting on higher-res multires
meshes (but note it makes partial redraw not completely accurate).
* There's a bug where you have to go through editmode to get out
of sculpt mode, not sure if I inherited or created this myself.
The patch was by Wael El Oraiby, who did a great job on it.
Yay for Wael! Commit of patch #19242.
There's also some CCGSubSurf stuff mixed in with this, though it's
still not working right (fixed tons of bugs, just the main ones
for some reason are still there, despite their original causes
being fixed :-/).
as does only edges and individual faces extrude (individual vert
extrude already did).
Note that I need to port this, after we all figure out how to handle
operators with variable transform follow-ons.
I also implemented the merge->collapse function, which is currently
accessable under ctrl->v, Bmesh Test Operator. I still need to
implement the other merge modes, and properly hook everything into
the merge menu tool, which I plan on doing soon (tomorrow hopefully).
The cool thing about the collapse tool, is not only does it handle (all)
UV layers, it handles vcols as well. To do this, I had to add a few math
functions to the customdata API, which seem to be working well.