diff options
author | Campbell Barton <ideasman42@gmail.com> | 2015-12-11 12:24:39 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2015-12-11 12:24:39 +0300 |
commit | 8cd7b428774fedf16cd6164b60615666045fb1fc (patch) | |
tree | 969fee690c618bcd597826e2244d5d36917c1aba /source/blender/bmesh/intern/bmesh_mesh.h | |
parent | 8ae8b62a0ed148863e8b64480a0c15f1d068fbf5 (diff) |
BMesh: Add option to use BMesh boolean modifier
This uses a bmesh-intersection, BLI_kdtree and watertight intersections to perform boolean operations.
For now keep both BMesh and Carve booleans usable at once for testing & bug reports,
however we plan to phase out Carve by next release.
Diffstat (limited to 'source/blender/bmesh/intern/bmesh_mesh.h')
-rw-r--r-- | source/blender/bmesh/intern/bmesh_mesh.h | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/source/blender/bmesh/intern/bmesh_mesh.h b/source/blender/bmesh/intern/bmesh_mesh.h index b157237c7d0..b9cdc4ccf66 100644 --- a/source/blender/bmesh/intern/bmesh_mesh.h +++ b/source/blender/bmesh/intern/bmesh_mesh.h @@ -94,8 +94,26 @@ extern const BMAllocTemplate bm_mesh_chunksize_default; (bm)->totvert), (bm)->totedge, (bm)->totloop, (bm)->totface} #define BMALLOC_TEMPLATE_FROM_ME(me) { (CHECK_TYPE_INLINE(me, Mesh *), \ (me)->totvert), (me)->totedge, (me)->totloop, (me)->totpoly} -#define BMALLOC_TEMPLATE_FROM_DM(dm) { (CHECK_TYPE_INLINE(dm, DerivedMesh *), \ - (dm)->getNumVerts(dm)), (dm)->getNumEdges(dm), (dm)->getNumLoops(dm), (dm)->getNumPolys(dm)} + +#define _VA_BMALLOC_TEMPLATE_FROM_DM_1(dm) { \ + (CHECK_TYPE_INLINE(dm, DerivedMesh *), \ + (dm)->getNumVerts(dm)), \ + (dm)->getNumEdges(dm), \ + (dm)->getNumLoops(dm), \ + (dm)->getNumPolys(dm), \ + } +#define _VA_BMALLOC_TEMPLATE_FROM_DM_2(dm_a, dm_b) { \ + (CHECK_TYPE_INLINE(dm_a, DerivedMesh *), \ + CHECK_TYPE_INLINE(dm_b, DerivedMesh *), \ + (dm_a)->getNumVerts(dm_a)) + (dm_b)->getNumVerts(dm_b), \ + (dm_a)->getNumEdges(dm_a) + (dm_b)->getNumEdges(dm_b), \ + (dm_a)->getNumLoops(dm_a) + (dm_b)->getNumLoops(dm_b), \ + (dm_a)->getNumPolys(dm_a) + (dm_b)->getNumPolys(dm_b), \ + } + +#define BMALLOC_TEMPLATE_FROM_DM(...) VA_NARGS_CALL_OVERLOAD(_VA_BMALLOC_TEMPLATE_FROM_DM_, __VA_ARGS__) + + enum { BM_MESH_CREATE_USE_TOOLFLAGS = (1 << 0) |