[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36587] branches/bmesh/blender/source/ blender/blenkernel/intern/editderivedbmesh.c: =bmesh= fixed mesh deform crasher

Joseph Eagar joeedh at gmail.com
Tue May 10 00:16:32 CEST 2011


Revision: 36587
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36587
Author:   joeedh
Date:     2011-05-09 22:16:31 +0000 (Mon, 09 May 2011)
Log Message:
-----------
=bmesh= fixed mesh deform crasher

Modified Paths:
--------------
    branches/bmesh/blender/source/blender/blenkernel/intern/editderivedbmesh.c

Modified: branches/bmesh/blender/source/blender/blenkernel/intern/editderivedbmesh.c
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/intern/editderivedbmesh.c	2011-05-09 22:07:31 UTC (rev 36586)
+++ branches/bmesh/blender/source/blender/blenkernel/intern/editderivedbmesh.c	2011-05-09 22:16:31 UTC (rev 36587)
@@ -1409,7 +1409,7 @@
 	bmDM_loopIter loopiter;
 } bmDM_faceIter;
 
-void bmDM_faceIterStep(void *self)
+static void bmDM_faceIterStep(void *self)
 {
 	bmDM_faceIter *iter = self;
 	
@@ -1431,7 +1431,7 @@
 	if (!iter->nextf) iter->head.done = 1;
 }
 
-void *bmDM_getFaceCDData(void *self, int type, int layer)
+static void *bmDM_getFaceCDData(void *self, int type, int layer)
 {
 	bmDM_faceIter *iter = self;
 
@@ -1440,7 +1440,7 @@
 	else return CustomData_bmesh_get_n(&iter->bm->pdata, iter->f->head.data, type, layer);
 }
 
-void bmDM_loopIterStep(void *self)
+static void bmDM_loopIterStep(void *self)
 {
 	bmDM_loopIter *iter = self;
 
@@ -1456,7 +1456,7 @@
 	iter->head.eindex = BMINDEX_GET(iter->l->e);
 }
 
-void *bmDM_getLoopCDData(void *self, int type, int layer)
+static void *bmDM_getLoopCDData(void *self, int type, int layer)
 {
 	bmDM_loopIter *iter = self;
 
@@ -1465,7 +1465,7 @@
 	else return CustomData_bmesh_get_n(&iter->bm->ldata, iter->l->head.data, type, layer);
 }
 
-void *bmDM_getVertCDData(void *self, int type, int layer)
+static void *bmDM_getVertCDData(void *self, int type, int layer)
 {
 	bmDM_loopIter *iter = self;
 
@@ -1479,7 +1479,7 @@
 	MEM_freeN(self);
 }
 
-void bmDM_nulliterFree(void *UNUSED(self))
+static void bmDM_nulliterFree(void *UNUSED(self))
 {
 }
 
@@ -1541,6 +1541,24 @@
 	return (DMFaceIter*) iter;
 }
 
+static void bmDM_getVertCos(DerivedMesh *dm, float (*cos_r)[3])
+{
+	EditDerivedBMesh *emdm= (EditDerivedBMesh*) dm;
+	BMVert *eve;
+	BMIter iter;
+	int i;
+	
+	BM_ITER(eve, &iter, emdm->tc->bm, BM_VERTS_OF_MESH, NULL) {
+		if (emdm->vertexCos) {
+			copy_v3_v3(cos_r[i], emdm->vertexCos[i]);
+		} else {
+			copy_v3_v3(cos_r[i], eve->co);
+		}
+		
+		i++;
+	}
+}
+
 static void bmDM_release(DerivedMesh *dm)
 {
 	EditDerivedBMesh *bmdm= (EditDerivedBMesh *)dm;
@@ -1625,7 +1643,8 @@
 	bmdm->dm.numFaceData = em->tottri;
 	bmdm->dm.numLoopData = bm->totloop;
 	bmdm->dm.numPolyData = bm->totface;
-
+	
+	bmdm->dm.getVertCos = bmDM_getVertCos;
 	bmdm->dm.getMinMax = bmDM_getMinMax;
 
 	bmdm->dm.getVertDataLayout = bmDm_getVertDataLayout;




More information about the Bf-blender-cvs mailing list