[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [42333] branches/bmesh/blender/source/ blender: changes to derived mesh editmode functions to be in closer sync with trunk .

Campbell Barton ideasman42 at gmail.com
Fri Dec 2 04:18:35 CET 2011


Revision: 42333
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42333
Author:   campbellbarton
Date:     2011-12-02 03:18:34 +0000 (Fri, 02 Dec 2011)
Log Message:
-----------
changes to derived mesh editmode functions to be in closer sync with trunk.

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

Modified: branches/bmesh/blender/source/blender/blenkernel/intern/editderivedmesh.c
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/intern/editderivedmesh.c	2011-12-02 03:16:06 UTC (rev 42332)
+++ branches/bmesh/blender/source/blender/blenkernel/intern/editderivedmesh.c	2011-12-02 03:18:34 UTC (rev 42333)
@@ -13,7 +13,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Tbmple Place - Suite 330, Boston, MA  02111-1307, USA.
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  * The Original Code is Copyright (C) 2005 Blender Foundation.
  * All rights reserved.
@@ -25,69 +25,47 @@
  * ***** END GPL LICENSE BLOCK *****
  */
 
-#include <string.h>
+/** \file blender/blenkernel/intern/editderivedmesh.c
+ *  \ingroup bke
+ */
 
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "GL/glew.h"
 
-#include "PIL_time.h"
-
-#include "MEM_guardedalloc.h"
-
-#include "DNA_effect_types.h"
-#include "DNA_mesh_types.h"
-#include "DNA_key_types.h"
-#include "DNA_meshdata_types.h"
-#include "DNA_modifier_types.h"
-#include "DNA_object_types.h"
-#include "DNA_object_force.h"
-#include "DNA_object_fluidsim.h" // N_T
-#include "DNA_scene_types.h" // N_T
-#include "DNA_texture_types.h"
-#include "DNA_view3d_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
-#include "DNA_particle_types.h"
-
 #include "BLI_utildefines.h"
-#include "BLI_math.h"
 #include "BLI_blenlib.h"
+#include "BLI_edgehash.h"
 #include "BLI_editVert.h"
-#include "BLI_edgehash.h"
-#include "BLI_linklist.h"
-#include "BLI_memarena.h"
-#include "BLI_scanfill.h"
-#include "BLI_ghash.h"
-#include "BLI_array.h"
+#include "BLI_math.h"
+#include "BLI_pbvh.h"
 
 #include "BKE_cdderivedmesh.h"
-#include "BKE_customdata.h"
-#include "BKE_DerivedMesh.h"
-#include "BKE_deform.h"
-#include "BKE_displist.h"
-#include "BKE_effect.h"
-#include "BKE_fluidsim.h"
 #include "BKE_global.h"
-#include "BKE_key.h"
-#include "BKE_material.h"
-#include "BKE_modifier.h"
 #include "BKE_mesh.h"
-#include "BKE_object.h"
-#include "BKE_subsurf.h"
-#include "BKE_texture.h"
-#include "BKE_particle.h"
-#include "BKE_tessmesh.h"
+#include "BKE_paint.h"
 
-#include "BLO_sys_types.h" // for intptr_t support
 
-#include "GL/glew.h"
+#include "DNA_meshdata_types.h"
+#include "DNA_object_types.h"
+#include "DNA_curve_types.h" /* for Curve */
 
+#include "MEM_guardedalloc.h"
+
+#include "GPU_buffers.h"
 #include "GPU_draw.h"
 #include "GPU_extensions.h"
 #include "GPU_material.h"
 
+#include <string.h>
+#include <limits.h>
+#include <math.h>
+
+/* bmesh */
+#include "BKE_tessmesh.h"
+#include "BLI_array.h"
+#include "BLI_scanfill.h"
+
 #include "bmesh.h"
+/* end bmesh */
 
 extern GLubyte stipple_quarttone[128]; /* glutil.c, bad level data */
 
@@ -95,7 +73,7 @@
 BMEditMesh *BMEdit_Create(BMesh *bm)
 {
 	BMEditMesh *tm = MEM_callocN(sizeof(BMEditMesh), __func__);
-	
+
 	tm->bm = bm;
 
 	BMEdit_RecalcTesselation(tm);
@@ -107,7 +85,7 @@
 {
 	BMEditMesh *tm2 = MEM_callocN(sizeof(BMEditMesh), __func__);
 	*tm2 = *tm;
-	
+
 	tm2->derivedCage = tm2->derivedFinal = NULL;
 
 	tm2->bm = BM_Copy_Mesh(tm->bm);
@@ -141,7 +119,7 @@
 	BMFace *f;
 	BMLoop *l;
 	int i = 0, j;
-	
+
 	if (tm->looptris) MEM_freeN(tm->looptris);
 
 	f = BMIter_New(&iter, bm, BM_FACES_OF_MESH, NULL);
@@ -246,12 +224,13 @@
 	BMEdit_RecalcTesselation_intern(em);
 
 	if (em->derivedFinal && em->derivedFinal == em->derivedCage) {
-		if (em->derivedFinal->recalcTesselation) 
+		if (em->derivedFinal->recalcTesselation)
 			em->derivedFinal->recalcTesselation(em->derivedFinal);
-	} else if (em->derivedFinal) {
-		if (em->derivedCage->recalcTesselation) 
+	}
+	else if (em->derivedFinal) {
+		if (em->derivedCage->recalcTesselation)
 			em->derivedCage->recalcTesselation(em->derivedCage);
-		if (em->derivedFinal->recalcTesselation) 
+		if (em->derivedFinal->recalcTesselation)
 			em->derivedFinal->recalcTesselation(em->derivedFinal);
 	}
 }
@@ -279,14 +258,14 @@
 /*does not free the BMEditMesh struct itself*/
 void BMEdit_Free(BMEditMesh *em)
 {
-	if(em->derivedFinal) {
+	if (em->derivedFinal) {
 		if (em->derivedFinal!=em->derivedCage) {
 			em->derivedFinal->needsFree= 1;
 			em->derivedFinal->release(em->derivedFinal);
 		}
 		em->derivedFinal= NULL;
 	}
-	if(em->derivedCage) {
+	if (em->derivedCage) {
 		em->derivedCage->needsFree= 1;
 		em->derivedCage->release(em->derivedCage);
 		em->derivedCage= NULL;
@@ -345,7 +324,7 @@
 	BMIter iter;
 	BMHeader *h;
 	int a, i, iters[3] = {BM_VERTS_OF_MESH, BM_EDGES_OF_MESH, BM_FACES_OF_MESH};
-	
+
 	bmdm->tv = bmdm->tc->bm->totvert;
 	bmdm->te = bmdm->tc->bm->totedge;
 	bmdm->tf = bmdm->tc->bm->totface;
@@ -357,11 +336,11 @@
 	bmdm->vhash = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp, "bmesh derived");
 	bmdm->ehash = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp, "bmesh derived");
 	bmdm->fhash = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp, "bmesh derived");
-	
+
 	if (bmdm->vtable) MEM_freeN(bmdm->vtable);
 	if (bmdm->etable) MEM_freeN(bmdm->etable);
 	if (bmdm->ftable) MEM_freeN(bmdm->ftable);
-	
+
 	if (bmdm->tc->bm->totvert)
 		bmdm->vtable = MEM_mallocN(sizeof(void**)*bmdm->tc->bm->totvert, "bmdm->vtable");
 	else bmdm->vtable = NULL;
@@ -369,11 +348,11 @@
 	if (bmdm->tc->bm->totedge)
 		bmdm->etable = MEM_mallocN(sizeof(void**)*bmdm->tc->bm->totedge, "bmdm->etable");
 	else bmdm->etable = NULL;
-	
+
 	if (bmdm->tc->bm->totface)
 		bmdm->ftable = MEM_mallocN(sizeof(void**)*bmdm->tc->bm->totface, "bmdm->ftable");
 	else bmdm->ftable = NULL;
-	
+
 	for (a=0; a<3; a++) {
 		h = BMIter_New(&iter, bmdm->tc->bm, iters[a], NULL);
 		for (i=0; h; h=BMIter_Step(&iter), i++) {
@@ -396,85 +375,95 @@
 	}
 }
 
-static void bmDM_calcNormals(DerivedMesh *UNUSED(dm))
+static void emDM_calcNormals(DerivedMesh *UNUSED(dm))
 {
 	/* Nothing to do: normals are already calculated and stored on the
 	   BMVerts and BMFaces */
 }
 
-static void bmDM_recalcTesselation(DerivedMesh *UNUSED(dm))
+static void emDM_recalcTesselation(DerivedMesh *UNUSED(dm))
 {
 	//EditDerivedBMesh *bmdm= (EditDerivedBMesh*) dm;
 
 	//bmdm_recalc_lookups(bmdm);
 }
 
-static void bmDM_foreachMappedVert(DerivedMesh *dm, void (*func)(void *userData, int index, float *co, float *no_f, short *no_s), void *userData)
+static void emDM_foreachMappedVert(
+		DerivedMesh *dm,
+		void (*func)(void *userData, int index, float *co, float *no_f, short *no_s),
+		void *userData)
 {
 	EditDerivedBMesh *bmdm= (EditDerivedBMesh*) dm;
 	BMVert *eve;
 	BMIter iter;
 	int i;
-	
+
 	eve = BMIter_New(&iter, bmdm->tc->bm, BM_VERTS_OF_MESH, NULL);
 	for (i=0; eve; i++, eve=BMIter_Step(&iter)) {
 		if (bmdm->vertexCos) {
 			func(userData, i, bmdm->vertexCos[i], bmdm->vertexNos[i], NULL);
-		} else {
+		}
+		else {
 			func(userData, i, eve->co, eve->no, NULL);
 		}
 	}
 }
-static void bmDM_foreachMappedEdge(DerivedMesh *dm, void (*func)(void *userData, int index, float *v0co, float *v1co), void *userData)
+static void emDM_foreachMappedEdge(
+		DerivedMesh *dm,
+		void (*func)(void *userData, int index, float *v0co, float *v1co),
+		void *userData)
 {
 	EditDerivedBMesh *bmdm= (EditDerivedBMesh*) dm;
 	BMEdge *eed;
 	BMIter iter;
 	int i;
-	
+
 	if (bmdm->vertexCos) {
 
 		BM_ElemIndex_Ensure(bmdm->tc->bm, BM_VERT);
 
 		eed = BMIter_New(&iter, bmdm->tc->bm, BM_EDGES_OF_MESH, NULL);
-		for(i=0; eed; i++,eed=BMIter_Step(&iter))
-			func(userData, i, 
-			     bmdm->vertexCos[BM_GetIndex(eed->v1)], 
-			     bmdm->vertexCos[BM_GetIndex(eed->v2)]);
-	} else {
+		for (i=0; eed; i++,eed=BMIter_Step(&iter))
+			func(userData, i,
+				 bmdm->vertexCos[BM_GetIndex(eed->v1)],
+				 bmdm->vertexCos[BM_GetIndex(eed->v2)]);
+	}
+	else {
 		eed = BMIter_New(&iter, bmdm->tc->bm, BM_EDGES_OF_MESH, NULL);
-		for(i=0; eed; i++,eed=BMIter_Step(&iter))
+		for (i=0; eed; i++,eed=BMIter_Step(&iter))
 			func(userData, i, eed->v1->co, eed->v2->co);
 	}
-
 }
 
-static void bmDM_drawMappedEdges(DerivedMesh *dm, int (*setDrawOptions)(void *userData, int index), void *userData) 
+static void emDM_drawMappedEdges(
+		DerivedMesh *dm,
+		int (*setDrawOptions)(void *userData, int index),
+		void *userData)
 {
 	EditDerivedBMesh *bmdm= (EditDerivedBMesh*) dm;
 	BMEdge *eed;
 	BMIter iter;
 	int i;
-	
+
 	if (bmdm->vertexCos) {
 
 		BM_ElemIndex_Ensure(bmdm->tc->bm, BM_VERT);
 
 		glBegin(GL_LINES);
 		eed = BMIter_New(&iter, bmdm->tc->bm, BM_EDGES_OF_MESH, NULL);
-		for(i=0; eed; i++,eed=BMIter_Step(&iter)) {
-			if(!setDrawOptions || setDrawOptions(userData, i)) {
+		for (i=0; eed; i++,eed=BMIter_Step(&iter)) {
+			if (!setDrawOptions || setDrawOptions(userData, i)) {
 				glVertex3fv(bmdm->vertexCos[BM_GetIndex(eed->v1)]);
 				glVertex3fv(bmdm->vertexCos[BM_GetIndex(eed->v2)]);
 			}
 		}
 		glEnd();
-
-	} else {
+	}
+	else {
 		glBegin(GL_LINES);
 		eed = BMIter_New(&iter, bmdm->tc->bm, BM_EDGES_OF_MESH, NULL);
-		for(i=0; eed; i++,eed=BMIter_Step(&iter)) {
-			if(!setDrawOptions || setDrawOptions(userData, i)) {
+		for (i=0; eed; i++,eed=BMIter_Step(&iter)) {
+			if (!setDrawOptions || setDrawOptions(userData, i)) {
 				glVertex3fv(eed->v1->co);
 				glVertex3fv(eed->v2->co);
 			}
@@ -482,13 +471,19 @@
 		glEnd();
 	}
 }
-
-static void bmDM_drawEdges(DerivedMesh *dm, int UNUSED(drawLooseEdges), int UNUSED(drawAllEdges))
+static void emDM_drawEdges(
+		DerivedMesh *dm,
+		int UNUSED(drawLooseEdges),
+		int UNUSED(drawAllEdges))
 {
-	bmDM_drawMappedEdges(dm, NULL, NULL);
+	emDM_drawMappedEdges(dm, NULL, NULL);
 }
 
-static void bmDM_drawMappedEdgesInterp(DerivedMesh *dm, int (*setDrawOptions)(void *userData, int index), void (*setDrawInterpOptions)(void *userData, int index, float t), void *userData) 
+static void emDM_drawMappedEdgesInterp(
+		DerivedMesh *dm,
+		int (*setDrawOptions)(void *userData, int index),
+		void (*setDrawInterpOptions)(void *userData, int index, float t),
+		void *userData)
 {
 	EditDerivedBMesh *bmdm= (EditDerivedBMesh*) dm;
 	BMEdge *eed;
@@ -501,8 +496,8 @@
 
 		glBegin(GL_LINES);
 		eed = BMIter_New(&iter, bmdm->tc->bm, BM_EDGES_OF_MESH, NULL);
-		for(i=0; eed; i++,eed=BMIter_Step(&iter)) {
-			if(!setDrawOptions || setDrawOptions(userData, i)) {
+		for (i=0; eed; i++,eed=BMIter_Step(&iter)) {
+			if (!setDrawOptions || setDrawOptions(userData, i)) {
 				setDrawInterpOptions(userData, i, 0.0);
 				glVertex3fv(bmdm->vertexCos[(int) BM_GetIndex(eed->v1)]);

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list