[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44080] branches/bmesh/blender/source/ blender: marked navmesh as BMESH_TODO, mixed mface/ mpoly functions were being used for navmesh too, now editing funcs use polygons only.

Campbell Barton ideasman42 at gmail.com
Mon Feb 13 05:52:48 CET 2012


Revision: 44080
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44080
Author:   campbellbarton
Date:     2012-02-13 04:52:41 +0000 (Mon, 13 Feb 2012)
Log Message:
-----------
marked navmesh as BMESH_TODO, mixed mface/mpoly functions were being used for navmesh too, now editing funcs use polygons only.

Modified Paths:
--------------
    branches/bmesh/blender/source/blender/blenkernel/intern/DerivedMesh.c
    branches/bmesh/blender/source/blender/blenkernel/intern/mesh.c
    branches/bmesh/blender/source/blender/editors/mesh/mesh_navmesh.c

Modified: branches/bmesh/blender/source/blender/blenkernel/intern/DerivedMesh.c
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/intern/DerivedMesh.c	2012-02-13 04:21:22 UTC (rev 44079)
+++ branches/bmesh/blender/source/blender/blenkernel/intern/DerivedMesh.c	2012-02-13 04:52:41 UTC (rev 44080)
@@ -2715,6 +2715,15 @@
 /* --- NAVMESH (begin) --- */
 #ifdef WITH_GAMEENGINE
 
+/* BMESH_TODO, navmesh is not working right currently
+ * All tools set this as MPoly data, but derived mesh currently draws from MFace (tessface)
+ *
+ * Proposed solution, rather then copy CD_RECAST into the MFace array,
+ * use ORIGINDEX to get the original poly index and then get the CD_RECAST
+ * data from the original me->mpoly layer. - campbell
+ */
+
+
 BM_INLINE int navmesh_bit(int a, int b)
 {
 	return (a & (1 << b)) >> b;

Modified: branches/bmesh/blender/source/blender/blenkernel/intern/mesh.c
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/intern/mesh.c	2012-02-13 04:21:22 UTC (rev 44079)
+++ branches/bmesh/blender/source/blender/blenkernel/intern/mesh.c	2012-02-13 04:52:41 UTC (rev 44080)
@@ -2936,16 +2936,16 @@
 
 void BKE_mesh_ensure_navmesh(Mesh *me)
 {
-	if (!CustomData_has_layer(&me->fdata, CD_RECAST)) {
+	if (!CustomData_has_layer(&me->pdata, CD_RECAST)) {
 		int i;
-		int numFaces = me->totface;
+		int numFaces = me->totpoly;
 		int* recastData;
-		CustomData_add_layer_named(&me->fdata, CD_RECAST, CD_CALLOC, NULL, numFaces, "recastData");
-		recastData = (int*)CustomData_get_layer(&me->fdata, CD_RECAST);
+		CustomData_add_layer_named(&me->pdata, CD_RECAST, CD_CALLOC, NULL, numFaces, "recastData");
+		recastData = (int*)CustomData_get_layer(&me->pdata, CD_RECAST);
 		for (i=0; i<numFaces; i++) {
 			recastData[i] = i+1;
 		}
-		CustomData_add_layer_named(&me->fdata, CD_RECAST, CD_REFERENCE, recastData, numFaces, "recastData");
+		CustomData_add_layer_named(&me->pdata, CD_RECAST, CD_REFERENCE, recastData, numFaces, "recastData");
 	}
 }
 

Modified: branches/bmesh/blender/source/blender/editors/mesh/mesh_navmesh.c
===================================================================
--- branches/bmesh/blender/source/blender/editors/mesh/mesh_navmesh.c	2012-02-13 04:21:22 UTC (rev 44079)
+++ branches/bmesh/blender/source/blender/editors/mesh/mesh_navmesh.c	2012-02-13 04:52:41 UTC (rev 44080)
@@ -618,7 +618,7 @@
 	Object *ob = ED_object_active_context(C);
 	if (ob && (ob->mode == OB_MODE_OBJECT) && (ob->type == OB_MESH)) {
 		Mesh *me= ob->data;
-		return CustomData_has_layer(&me->fdata, CD_RECAST);
+		return CustomData_has_layer(&me->pdata, CD_RECAST);
 	}
 	return FALSE;
 }
@@ -637,7 +637,7 @@
 	Object *ob = ED_object_active_context(C);
 	Mesh *me= ob->data;
 
-	CustomData_free_layers(&me->fdata, CD_RECAST, me->totface);
+	CustomData_free_layers(&me->pdata, CD_RECAST, me->totpoly);
 
 	BKE_mesh_ensure_navmesh(me);
 
@@ -667,7 +667,7 @@
 	Object *ob = ED_object_active_context(C);
 	Mesh *me= ob->data;
 
-	CustomData_free_layers(&me->fdata, CD_RECAST, me->totface);
+	CustomData_free_layers(&me->pdata, CD_RECAST, me->totpoly);
 
 	DAG_id_tag_update(&me->id, OB_RECALC_DATA);
 	WM_event_add_notifier(C, NC_GEOM|ND_DATA, &me->id);




More information about the Bf-blender-cvs mailing list