[Bf-committers] Report of HE Mesh

joeedh joeeagar at prodigy.net
Sun Mar 6 23:09:33 CET 2005

Hi.  Here is the current feature (and bug) list of HE Mesh.

---Good things:----
* Full support for all three selection modes
* Region and (winged) vertex extrusion tools.
* Subdive tool
* Select more/less tool
* Unified tool interface
* A special move-along normal tool just for HE, to be used until the new 
transform is compatible with the unified tool interface.
* Tool macro support
* Tool painting support, consisting of a extern_qread() loop that 
selects a face and executes a tool macro once every 0.7 seconds (if the 
mouse button is down).
* Subdivision Surface support, including optimal draw (this took writing 
a more generic optimal-reference layer in addition to the current one of 
top of the subdivisor.  note: whoever wrote subsurf included ngons from 
the start!).
* Face and edge loops (although yesterday face loops suddenly started to 
make Blender crash, need to investigate).
* Convert normal mesh to HE mesh.
* Simple error system used to undo tools that ruin manifoldness.
* Simple method of catching non-manifoldness of normal meshes on 
conversion, and rejecting them based on simple error system.

----Bad things----
* Render converter code isn't quite there yet.  I intend to have HE Mesh 
convert itself to a triangulated normal Mesh, and then feed that to the 
* Material buttons arn't working, either.  I once rewrote a portion of 
the unified linking buttons (which I believe is what is causing the 
problem) for my old CSG project, but I can't really remember what I did.
* Smooth/Solid flags arn't working either; right now non-subsurf is 
solid, and subsurfed is smooth shaded.
* Fast undo restore code doesn't work, so I have to use a slightly 
slower version.  Not too bad, but is a little slow on large meshes.
* Method of fast-edge lookup isn't the best, and can sometimes cause 
crashes if you're not careful coding user tools.  Edge references are 
store inside the verts (NOTE: this is NEVER to be used for writing tools 
that depend on adjacent edges around a vert!  There are functions for 
gettting that info based on the HE structure that's more correct and 

Later on I'll post in the Wiki info about my modulator API, which I use 
to manage certain sub-modules of HE.

Also, I think we need to figure out some conventions for when there are 
sub-modules within a module.  Naming conventions for this is something 
I'm having problems with.  Should it be MODULE_FirstWord(blah) for 
extern functions, MODULE_firstWord(blah) for sub-module extern 
functions, and module_firstword(blah) for internal static functions?

Of course, if I end up porting all my code to my modulator api, then 
that would become a moot point (just the way it works).


More information about the Bf-committers mailing list