[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