[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44653] trunk/blender/source/blender/ blenkernel/intern/mesh.c: copying a mesh was generating tessfaces which isnt needed

Campbell Barton ideasman42 at gmail.com
Mon Mar 5 19:05:15 CET 2012


Revision: 44653
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44653
Author:   campbellbarton
Date:     2012-03-05 18:05:06 +0000 (Mon, 05 Mar 2012)
Log Message:
-----------
copying a mesh was generating tessfaces which isnt needed

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/mesh.c

Modified: trunk/blender/source/blender/blenkernel/intern/mesh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/mesh.c	2012-03-05 17:23:52 UTC (rev 44652)
+++ trunk/blender/source/blender/blenkernel/intern/mesh.c	2012-03-05 18:05:06 UTC (rev 44653)
@@ -474,6 +474,7 @@
 	MTFace *tface;
 	MTexPoly *txface;
 	int a, i;
+	const int do_tessface = ((me->totface != 0) && (me->totpoly == 0)); /* only do tessface if we have no polys */
 	
 	men= copy_libblock(&me->id);
 	
@@ -485,11 +486,17 @@
 
 	CustomData_copy(&me->vdata, &men->vdata, CD_MASK_MESH, CD_DUPLICATE, men->totvert);
 	CustomData_copy(&me->edata, &men->edata, CD_MASK_MESH, CD_DUPLICATE, men->totedge);
-	CustomData_copy(&me->fdata, &men->fdata, CD_MASK_MESH, CD_DUPLICATE, men->totface);
 	CustomData_copy(&me->ldata, &men->ldata, CD_MASK_MESH, CD_DUPLICATE, men->totloop);
 	CustomData_copy(&me->pdata, &men->pdata, CD_MASK_MESH, CD_DUPLICATE, men->totpoly);
-	mesh_update_customdata_pointers(men, TRUE);
+	if (do_tessface) {
+		CustomData_copy(&me->fdata, &men->fdata, CD_MASK_MESH, CD_DUPLICATE, men->totface);
+	}
+	else {
+		BKE_mesh_tessface_clear(men);
+	}
 
+	mesh_update_customdata_pointers(men, do_tessface);
+
 	/* ensure indirect linked data becomes lib-extern */
 	for (i=0; i<me->fdata.totlayer; i++) {
 		if (me->fdata.layers[i].type == CD_MTFACE) {




More information about the Bf-blender-cvs mailing list