[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44061] branches/bmesh/blender/source/ blender: rename CDDM_To_BMesh to DM_to_editbmesh, since theres no requirement for

Campbell Barton ideasman42 at gmail.com
Sun Feb 12 16:02:36 CET 2012


Revision: 44061
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44061
Author:   campbellbarton
Date:     2012-02-12 15:02:33 +0000 (Sun, 12 Feb 2012)
Log Message:
-----------
rename CDDM_To_BMesh to DM_to_editbmesh, since theres no requirement for
the input to be a CDDM.

remove conversions to CDDM for edge split and bevel (will give some
speedup).

Modified Paths:
--------------
    branches/bmesh/blender/source/blender/blenkernel/BKE_DerivedMesh.h
    branches/bmesh/blender/source/blender/blenkernel/BKE_cdderivedmesh.h
    branches/bmesh/blender/source/blender/blenkernel/intern/modifiers_bmesh.c
    branches/bmesh/blender/source/blender/modifiers/intern/MOD_array.c
    branches/bmesh/blender/source/blender/modifiers/intern/MOD_bevel.c
    branches/bmesh/blender/source/blender/modifiers/intern/MOD_edgesplit.c

Modified: branches/bmesh/blender/source/blender/blenkernel/BKE_DerivedMesh.h
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/BKE_DerivedMesh.h	2012-02-12 14:40:08 UTC (rev 44060)
+++ branches/bmesh/blender/source/blender/blenkernel/BKE_DerivedMesh.h	2012-02-12 15:02:33 UTC (rev 44061)
@@ -440,6 +440,9 @@
  */
 void DM_to_mesh(DerivedMesh *dm, struct Mesh *me, struct Object *ob);
 
+struct BMEditMesh *DM_to_editbmesh(struct Object *ob, struct DerivedMesh *dm,
+                               struct BMEditMesh *existing, int do_tesselate);
+
 /* utility function to convert a DerivedMesh to a shape key block 
  */
 void DM_to_meshkey(DerivedMesh *dm, struct Mesh *me, struct KeyBlock *kb);

Modified: branches/bmesh/blender/source/blender/blenkernel/BKE_cdderivedmesh.h
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/BKE_cdderivedmesh.h	2012-02-12 14:40:08 UTC (rev 44060)
+++ branches/bmesh/blender/source/blender/blenkernel/BKE_cdderivedmesh.h	2012-02-12 15:02:33 UTC (rev 44061)
@@ -69,10 +69,6 @@
 /* useful for OrcoDM creation for curves with constructive modifiers */
 DerivedMesh *CDDM_from_curve_customDB(struct Object *ob, struct ListBase *dispbase);
 
-struct BMEditMesh *CDDM_To_BMesh(struct Object *ob, struct DerivedMesh *dm,
-                                 struct BMEditMesh *existing, int do_tesselate);
-
-
 /* Copies the given DerivedMesh with verts, faces & edges stored as
  * custom element data.
  */

Modified: branches/bmesh/blender/source/blender/blenkernel/intern/modifiers_bmesh.c
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/intern/modifiers_bmesh.c	2012-02-12 14:40:08 UTC (rev 44060)
+++ branches/bmesh/blender/source/blender/blenkernel/intern/modifiers_bmesh.c	2012-02-12 15:02:33 UTC (rev 44061)
@@ -43,7 +43,7 @@
 
 /* converts a cddm to a BMEditMesh.  if existing is non-NULL, the
  * new geometry will be put in there.*/
-BMEditMesh *CDDM_To_BMesh(Object *ob, DerivedMesh *dm, BMEditMesh *existing, int do_tesselate)
+BMEditMesh *DM_to_editbmesh(Object *ob, DerivedMesh *dm, BMEditMesh *existing, int do_tesselate)
 {
 	int allocsize[4] = {512, 512, 2048, 512};
 	BMesh *bm, bmold; /*bmold is for storing old customdata layout*/
@@ -75,8 +75,8 @@
 	totedge = dm->getNumEdges(dm);
 	totface = dm->getNumPolys(dm);
 
-	vtable = MEM_callocN(sizeof(void**)*totvert, "vert table in BMDM_Copy");
-	etable = MEM_callocN(sizeof(void**)*totedge, "edge table in BMDM_Copy");
+	vtable = MEM_callocN(sizeof(void**) * totvert, "vert table in BMDM_Copy");
+	etable = MEM_callocN(sizeof(void**) * totedge, "edge table in BMDM_Copy");
 
 	/*do verts*/
 	mv = mvert = dm->dupVertArray(dm);

Modified: branches/bmesh/blender/source/blender/modifiers/intern/MOD_array.c
===================================================================
--- branches/bmesh/blender/source/blender/modifiers/intern/MOD_array.c	2012-02-12 14:40:08 UTC (rev 44060)
+++ branches/bmesh/blender/source/blender/modifiers/intern/MOD_array.c	2012-02-12 15:02:33 UTC (rev 44061)
@@ -208,8 +208,8 @@
 					  Scene *scene, Object *ob, DerivedMesh *dm,
 										  int UNUSED(initFlags))
 {
-	DerivedMesh *cddm = dm; //copying shouldn't be necassary here, as all modifiers return CDDM's
-	BMEditMesh *em = CDDM_To_BMesh(ob, cddm, NULL, FALSE);
+	DerivedMesh *result;
+	BMEditMesh *em = DM_to_editbmesh(ob, dm, NULL, FALSE);
 	BMOperator op, oldop, weldop;
 	int i, j, indexLen;
 	/* offset matrix */
@@ -228,8 +228,8 @@
 
 	unit_m4(offset);
 
-	src_mvert = cddm->getVertArray(dm);
-	maxVerts = cddm->getNumVerts(dm);
+	src_mvert = dm->getVertArray(dm);
+	maxVerts = dm->getNumVerts(dm);
 
 	if(amd->offset_type & MOD_ARR_OFF_CONST)
 		add_v3_v3v3(offset[3], offset[3], amd->offset);
@@ -389,13 +389,13 @@
 	BMO_pop(em->bm);
 
 	BLI_assert(em->looptris == NULL);
-	cddm = CDDM_from_BMEditMesh(em, NULL, FALSE, FALSE);
+	result = CDDM_from_BMEditMesh(em, NULL, FALSE, FALSE);
 
 	BMEdit_Free(em);
 	MEM_freeN(em);
 	MEM_freeN(indexMap);
 
-	return cddm;
+	return result;
 }
 
 static DerivedMesh *applyModifier(ModifierData *md, Object *ob,

Modified: branches/bmesh/blender/source/blender/modifiers/intern/MOD_bevel.c
===================================================================
--- branches/bmesh/blender/source/blender/modifiers/intern/MOD_bevel.c	2012-02-12 14:40:08 UTC (rev 44060)
+++ branches/bmesh/blender/source/blender/modifiers/intern/MOD_bevel.c	2012-02-12 15:02:33 UTC (rev 44061)
@@ -110,20 +110,16 @@
 						int UNUSED(useRenderParams),
 						int UNUSED(isFinalCalc))
 {
+	DerivedMesh *result;
 	BMesh *bm;
 	BMEditMesh *em;
-	DerivedMesh *cddm;
 	BMIter iter;
 	BMEdge *e;
 	BevelModifierData *bmd = (BevelModifierData*) md;
 	/* int allocsize[] = {512, 512, 2048, 512}; */ /* UNUSED */
 	float threshold = cos((bmd->bevel_angle + 0.00001) * M_PI / 180.0);
 
-	if (!CDDM_Check(dm)) {
-		cddm = CDDM_copy(dm);
-	} else cddm = dm;
-
-	em = CDDM_To_BMesh(ob, dm, NULL, FALSE);
+	em = DM_to_editbmesh(ob, dm, NULL, FALSE);
 	bm = em->bm;
 
 	BM_mesh_normals_update(bm);
@@ -153,17 +149,12 @@
 	            EDGE_MARK, bmd->value, (bmd->flags & BME_BEVEL_EVEN)!=0, (bmd->flags & BME_BEVEL_DIST)!=0);
 	BMO_pop(bm);
 
-	if (cddm != dm) {
-		cddm->needsFree = 1;
-		cddm->release(cddm);
-	}
-
 	BLI_assert(em->looptris == NULL);
-	cddm = CDDM_from_BMEditMesh(em, NULL, TRUE, FALSE);
+	result = CDDM_from_BMEditMesh(em, NULL, TRUE, FALSE);
 	BMEdit_Free(em);
 	MEM_freeN(em);
 
-	return cddm;
+	return result;
 }
 
 

Modified: branches/bmesh/blender/source/blender/modifiers/intern/MOD_edgesplit.c
===================================================================
--- branches/bmesh/blender/source/blender/modifiers/intern/MOD_edgesplit.c	2012-02-12 14:40:08 UTC (rev 44060)
+++ branches/bmesh/blender/source/blender/modifiers/intern/MOD_edgesplit.c	2012-02-12 15:02:33 UTC (rev 44061)
@@ -59,19 +59,15 @@
 
 static DerivedMesh *doEdgeSplit(DerivedMesh *dm, EdgeSplitModifierData *emd, Object *ob)
 {
+	DerivedMesh *result;
 	BMesh *bm;
 	BMEditMesh *em;
-	DerivedMesh *cddm;
 	BMIter iter;
 	BMEdge *e;
 	/* int allocsize[] = {512, 512, 2048, 512}; */ /* UNUSED */
 	float threshold = cos((emd->split_angle + 0.00001) * M_PI / 180.0);
-	
-	if (!CDDM_Check(dm)) {
-		cddm = CDDM_copy(dm);
-	} else cddm = dm;
-	
-	em = CDDM_To_BMesh(ob, dm, NULL, FALSE);
+
+	em = DM_to_editbmesh(ob, dm, NULL, FALSE);
 	bm = em->bm;
 
 	BM_mesh_normals_update(bm);	
@@ -101,18 +97,13 @@
 	BMO_op_callf(bm, "edgesplit edges=%fe", EDGE_MARK);
 	
 	BMO_pop(bm);
-	
-	if (cddm != dm) {
-		cddm->needsFree = 1;
-		cddm->release(cddm);
-	}
 
 	BLI_assert(em->looptris == NULL);
-	cddm = CDDM_from_BMEditMesh(em, NULL, TRUE, FALSE);
+	result = CDDM_from_BMEditMesh(em, NULL, TRUE, FALSE);
 	BMEdit_Free(em);
 	MEM_freeN(em);
 	
-	return cddm;
+	return result;
 }
 
 static void initData(ModifierData *md)




More information about the Bf-blender-cvs mailing list