I'm trying to manipulate a number of BMesh items in code with the hope of stitching them together, via boolean operators, to produce more complex geometries/meshes. Do BMesh instances support boolean operations between one one another ? Or must we still drop to normal meshes for this sort of thing.
I suspect the answer will be one of Yes, No or Install Version X.YZ (I am currenty on 2.69).
Reading :
From a precursory oogle at google there appears to be two threads pertaining to this blenderartists, where it's stated that it is only possible to perform such operations on normal meshes using modifiers, and Elysiun, which provides an example on how to do so. Locally there are two questions pertaining to boolean operation, the link provided links to the other question. These simply serve as additional examples for the standard Mesh library. The other questions on here regarding boolean operations seem to focus on how to fix various problems and do not appear relevant. A few days ago I saw something on boolean operations being provided by the now deprecated NMesh. I was hoping BMesh would support the same. Looking at bmesh.ops there does not appear to be any such operators, have I missed something ?
Musings :
In a way this makes sense as bmesh seems to target the manipulation of a single mesh, rather then manipulate a generic mesh or a set of meshes which some of the forums seem to imply. Pythonically one sort of expects bmeshes to provide the following functionality, given two meshes meshA
and meshB
:
# Union (Addition)
meshA += meshB # B is destroyed/deleted leaving a modified A
meshC = meshA + meshB # A and B remain with the addition of C
# Exclusion/Difference/Subtraction
meshA -= meshB
meshC = meshA - meshB
# Intersection (Multiplication)
meshA *= meshB
meshC = meshA * meshB
Though such a proposal may be against the design goals of the BMesh API, alternatively there may be better operations to support. Where would one suggest such a thing ?
bmesh.ops
either as named operation or overloaded operator*+-
. I've asked for this too. Ideasman42 suggested that at this point it would be easy to implement. would love it. $\endgroup$