[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