Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/bmesh/intern/bmesh_mesh.h')
-rw-r--r--source/blender/bmesh/intern/bmesh_mesh.h22
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)