The Final Death of EditMesh
When I originally got the updated BMesh API from Geoffry Bantle, we both knew it was going to be a lot of work to integrate it. We had tried and failed a from-scratch rewrite (that started by removing much of the old tools code) in the first BMesh project, so when I started again I decided to keep unported mesh code working via a compatibility layer, until it came time to rewrite it. This worked very well in the beginning of the project, as I could write tools and improve the BMesh API. More then that, I was able to rewrite or refactor a large portion of the mesh code one piece at a time, and still have everything mostly working.
Unfortunately, as more and more tools and code got ported to BMesh, the compatibility layer got more and more unstable and buggy. From a coding point of view, it made the code more confusing and muddled the underlying design. I finally realized I was going to have to remove it entirely, and port the remaining tools to the new system.
I have now started this process. I’ve removed the compatibility layer and all the old code it supported, and I’ve started porting it to BMesh. Currently join triangles, a bunch of selection tools, and some of the primitives code (cone/grid/circle/tube) remain to be ported. I hope to have all of this done within the next two weeks; the hardest will be join triangles and region to loop, the rest is only one or two days of work.
BMesh should be much more stable after this, as no longer will things randomly break or tools unpredictably mess up your mesh. After that, all I have to do is fix the remaining bugs and BMesh will be ready for a merge into trunk (yay!).
Entry filed under: Uncategorized.