[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44168] branches/bmesh/blender/source/ blender/bmesh/operators/bmo_primitive.c: fix for bug with adding icosphere in editmode ( was normalizing the verts _after_ translating them away from 0, 0, 0)

Campbell Barton ideasman42 at gmail.com
Thu Feb 16 20:58:40 CET 2012


Revision: 44168
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44168
Author:   campbellbarton
Date:     2012-02-16 19:58:40 +0000 (Thu, 16 Feb 2012)
Log Message:
-----------
fix for bug with adding icosphere in editmode (was normalizing the verts _after_ translating them away from 0,0,0)

Modified Paths:
--------------
    branches/bmesh/blender/source/blender/bmesh/operators/bmo_primitive.c

Modified: branches/bmesh/blender/source/blender/bmesh/operators/bmo_primitive.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/operators/bmo_primitive.c	2012-02-16 19:33:46 UTC (rev 44167)
+++ branches/bmesh/blender/source/blender/bmesh/operators/bmo_primitive.c	2012-02-16 19:58:40 UTC (rev 44168)
@@ -378,7 +378,9 @@
 void bmesh_create_icosphere_exec(BMesh *bm, BMOperator *op)
 {
 	BMVert *eva[12];
+	BMVert *v;
 	BMIter liter;
+	BMIter viter;
 	BMLoop *l;
 	float vec[3], mat[4][4] /* , phi, phid */;
 	float dia = BMO_slot_float_get(op, "diameter");
@@ -396,7 +398,6 @@
 		vec[2] = dia * icovert[a][2];
 		eva[a] = BM_vert_create(bm, vec, NULL);
 
-		mul_m4_v3(mat, eva[a]->co);
 		BMO_elem_flag_enable(bm, eva[a], VERT_MARK);
 	}
 
@@ -431,6 +432,13 @@
 		BMO_op_finish(bm, &bmop);
 	}
 
+	/* must transform after becayse of sphere subdivision */
+	BM_ITER(v, &viter, bm, BM_VERTS_OF_MESH, NULL) {
+		if (BMO_elem_flag_test(bm, v, VERT_MARK)) {
+			mul_m4_v3(mat, v->co);
+		}
+	}
+
 	BMO_slot_from_flag(bm, op, "vertout", VERT_MARK, BM_VERT);
 }
 




More information about the Bf-blender-cvs mailing list