[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54137] trunk/blender/source/blender/ editors/mesh/mesh_navmesh.c: fix for usability issue - navmesh would create the new object on the first layer , rather then the layer of the source object(s).

Campbell Barton ideasman42 at gmail.com
Mon Jan 28 07:34:21 CET 2013


Revision: 54137
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54137
Author:   campbellbarton
Date:     2013-01-28 06:34:13 +0000 (Mon, 28 Jan 2013)
Log Message:
-----------
fix for usability issue - navmesh would create the new object on the first layer, rather then the layer of the source object(s).

Modified Paths:
--------------
    trunk/blender/source/blender/editors/mesh/mesh_navmesh.c

Modified: trunk/blender/source/blender/editors/mesh/mesh_navmesh.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/mesh_navmesh.c	2013-01-28 06:06:55 UTC (rev 54136)
+++ trunk/blender/source/blender/editors/mesh/mesh_navmesh.c	2013-01-28 06:34:13 UTC (rev 54137)
@@ -56,7 +56,8 @@
 #include "recast-capi.h"
 
 
-static void createVertsTrisData(bContext *C, LinkNode *obs, int *nverts_r, float **verts_r, int *ntris_r, int **tris_r)
+static void createVertsTrisData(bContext *C, LinkNode *obs,
+                                int *nverts_r, float **verts_r, int *ntris_r, int **tris_r, unsigned int *r_lay)
 {
 	MVert *mvert;
 	int nfaces = 0, *tri, i, curnverts, basenverts, curnfaces;
@@ -91,6 +92,8 @@
 			if (mf->v4)
 				ntris += 1;
 		}
+
+		*r_lay |= ob->lay;
 	}
 
 	/* create data */
@@ -295,7 +298,8 @@
 	return true;
 }
 
-static Object *createRepresentation(bContext *C, struct recast_polyMesh *pmesh, struct recast_polyMeshDetail *dmesh, Base *base)
+static Object *createRepresentation(bContext *C, struct recast_polyMesh *pmesh, struct recast_polyMeshDetail *dmesh,
+                                  Base *base, unsigned int lay)
 {
 	float co[3], rot[3];
 	BMEditMesh *em;
@@ -316,7 +320,7 @@
 
 	if (createob) {
 		/* create new object */
-		obedit = ED_object_add_type(C, OB_MESH, co, rot, FALSE, 1);
+		obedit = ED_object_add_type(C, OB_MESH, co, rot, FALSE, lay);
 	}
 	else {
 		obedit = base->object;
@@ -452,15 +456,16 @@
 		struct recast_polyMesh *pmesh = NULL;
 		struct recast_polyMeshDetail *dmesh = NULL;
 		bool ok;
+		unsigned int lay = 0;
 
 		int nverts = 0, ntris = 0;
 		int *tris = 0;
 		float *verts = NULL;
 
-		createVertsTrisData(C, obs, &nverts, &verts, &ntris, &tris);
+		createVertsTrisData(C, obs, &nverts, &verts, &ntris, &tris, &lay);
 		BLI_linklist_free(obs, NULL);
 		if ((ok = buildNavMesh(&scene->gm.recastData, nverts, verts, ntris, tris, &pmesh, &dmesh, op->reports))) {
-			createRepresentation(C, pmesh, dmesh, navmeshBase);
+			createRepresentation(C, pmesh, dmesh, navmeshBase, lay);
 		}
 
 		MEM_freeN(verts);




More information about the Bf-blender-cvs mailing list