[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44082] branches/bmesh/blender/source/ blender: own error - mixup with BMO_slot_mat_get/set

Campbell Barton ideasman42 at gmail.com
Mon Feb 13 06:59:21 CET 2012


Revision: 44082
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44082
Author:   campbellbarton
Date:     2012-02-13 05:59:14 +0000 (Mon, 13 Feb 2012)
Log Message:
-----------
own error - mixup with BMO_slot_mat_get/set

Modified Paths:
--------------
    branches/bmesh/blender/source/blender/bmesh/bmesh_operator_api.h
    branches/bmesh/blender/source/blender/bmesh/intern/bmesh_operators.c
    branches/bmesh/blender/source/blender/bmesh/operators/bmo_mirror.c
    branches/bmesh/blender/source/blender/bmesh/operators/bmo_primitive.c
    branches/bmesh/blender/source/blender/bmesh/operators/bmo_utils.c
    branches/bmesh/blender/source/blender/editors/mesh/bmeshutils.c
    branches/bmesh/blender/source/blender/modifiers/intern/MOD_array.c
    branches/bmesh/blender/source/blender/modifiers/intern/MOD_bevel.c

Modified: branches/bmesh/blender/source/blender/bmesh/bmesh_operator_api.h
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/bmesh_operator_api.h	2012-02-13 05:36:31 UTC (rev 44081)
+++ branches/bmesh/blender/source/blender/bmesh/bmesh_operator_api.h	2012-02-13 05:59:14 UTC (rev 44082)
@@ -278,9 +278,9 @@
 void BMO_op_flag_enable(struct BMesh *bm, struct BMOperator *op, const int op_flag);
 void BMO_op_flag_disable(struct BMesh *bm, struct BMOperator *op, const int op_flag);
 
-void  BMO_slot_float_set(struct BMOperator *op, const char *slotname, float f);
+void  BMO_slot_float_set(struct BMOperator *op, const char *slotname, const float f);
 float BMO_slot_float_get(BMOperator *op, const char *slotname);
-void  BMO_slot_int_set(struct BMOperator *op, const char *slotname, int i);
+void  BMO_slot_int_set(struct BMOperator *op, const char *slotname, const int i);
 int   BMO_slot_int_get(BMOperator *op, const char *slotname);
 
 /* don't pass in arrays that are supposed to map to elements this way.
@@ -297,9 +297,9 @@
 /* size must be 3 or 4; this api is meant only for transformation matrices.
  * note that internally the matrix is stored in 4x4 form, and it's safe to
  * call whichever BMO_Get_Mat* function you want. */
-void BMO_slot_mat_set(struct BMOperator *op, const char *slotname, float *mat, int size);
-void BMO_slot_mat4_set(struct BMOperator *op, const char *slotname, float mat[4][4]);
-void BMO_slot_mat3_set(struct BMOperator *op, const char *slotname, float mat[3][3]);
+void BMO_slot_mat_set(struct BMOperator *op, const char *slotname, const float *mat, int size);
+void BMO_slot_mat4_get(struct BMOperator *op, const char *slotname, float r_mat[4][4]);
+void BMO_slot_mat3_set(struct BMOperator *op, const char *slotname, float r_mat[3][3]);
 
 void BMO_mesh_flag_disable_all(BMesh *bm, BMOperator *op, const char htype, const short oflag);
 

Modified: branches/bmesh/blender/source/blender/bmesh/intern/bmesh_operators.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/intern/bmesh_operators.c	2012-02-13 05:36:31 UTC (rev 44081)
+++ branches/bmesh/blender/source/blender/bmesh/intern/bmesh_operators.c	2012-02-13 05:59:14 UTC (rev 44082)
@@ -306,7 +306,7 @@
  *
  */
 
-void BMO_slot_float_set(BMOperator *op, const char *slotname, float f)
+void BMO_slot_float_set(BMOperator *op, const char *slotname, const float f)
 {
 	BMOpSlot *slot = BMO_slot_get(op, slotname);
 	if (!(slot->slottype == BMO_OP_SLOT_FLT))
@@ -315,7 +315,7 @@
 	slot->data.f = f;
 }
 
-void BMO_slot_int_set(BMOperator *op, const char *slotname, int i)
+void BMO_slot_int_set(BMOperator *op, const char *slotname, const int i)
 {
 	BMOpSlot *slot = BMO_slot_get(op, slotname);
 	if (!(slot->slottype == BMO_OP_SLOT_INT))
@@ -325,7 +325,7 @@
 }
 
 /* only supports square mats */
-void BMO_slot_mat_set(struct BMOperator *op, const char *slotname, float *mat, int size)
+void BMO_slot_mat_set(struct BMOperator *op, const char *slotname, const float *mat, int size)
 {
 	BMOpSlot *slot = BMO_slot_get(op, slotname);
 	if (!(slot->slottype == BMO_OP_SLOT_MAT))
@@ -344,26 +344,25 @@
 		fprintf(stderr, "%s: invalid size argument %d (bmesh internal error)\n", __func__, size);
 
 		memset(slot->data.p, 0, sizeof(float) * 4 * 4);
-		return;
 	}
 }
 
-void BMO_slot_mat4_set(struct BMOperator *op, const char *slotname, float mat[4][4])
+void BMO_slot_mat4_get(struct BMOperator *op, const char *slotname, float r_mat[4][4])
 {
 	BMOpSlot *slot = BMO_slot_get(op, slotname);
 	if (!(slot->slottype == BMO_OP_SLOT_MAT))
 		return;
 
-	memcpy(mat, slot->data.p, sizeof(float) * 4 * 4);
+	copy_m4_m4(r_mat, (float (*)[4])slot->data.p);
 }
 
-void BMO_slot_mat3_set(struct BMOperator *op, const char *slotname, float mat[3][3])
+void BMO_slot_mat3_set(struct BMOperator *op, const char *slotname, float r_mat[3][3])
 {
 	BMOpSlot *slot = BMO_slot_get(op, slotname);
 	if (!(slot->slottype == BMO_OP_SLOT_MAT))
 		return;
 
-	copy_m3_m4(mat, slot->data.p);
+	copy_m3_m4(r_mat, slot->data.p);
 }
 
 void BMO_slot_ptr_set(BMOperator *op, const char *slotname, void *p)

Modified: branches/bmesh/blender/source/blender/bmesh/operators/bmo_mirror.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/operators/bmo_mirror.c	2012-02-13 05:36:31 UTC (rev 44081)
+++ branches/bmesh/blender/source/blender/bmesh/operators/bmo_mirror.c	2012-02-13 05:59:14 UTC (rev 44082)
@@ -54,7 +54,7 @@
 	ototvert = bm->totvert;
 	ototedge = bm->totedge;
 	
-	BMO_slot_mat4_set(op, "mat", mtx);
+	BMO_slot_mat4_get(op, "mat", mtx);
 	invert_m4_m4(imtx, mtx);
 	
 	BMO_op_initf(bm, &dupeop, "dupe geom=%s", op, "geom");

Modified: branches/bmesh/blender/source/blender/bmesh/operators/bmo_primitive.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/operators/bmo_primitive.c	2012-02-13 05:36:31 UTC (rev 44081)
+++ branches/bmesh/blender/source/blender/bmesh/operators/bmo_primitive.c	2012-02-13 05:59:14 UTC (rev 44082)
@@ -234,7 +234,7 @@
 	if (tot < 2) tot = 2;
 	if (seg < 2) seg = 2;
 
-	BMO_slot_mat4_set(op, "mat", mat);
+	BMO_slot_mat4_get(op, "mat", mat);
 
 	/* one segment first: the X axis */
 	phi = 1.0f;
@@ -296,7 +296,7 @@
 	float phid, dia = BMO_slot_float_get(op, "diameter");
 	int a, seg = BMO_slot_int_get(op, "segments"), tot = BMO_slot_int_get(op, "revolutions");
 
-	BMO_slot_mat4_set(op, "mat", mat);
+	BMO_slot_mat4_get(op, "mat", mat);
 
 	phid = 2.0f * (float)M_PI / tot;
 	phi = 0.25f * (float)M_PI;
@@ -384,7 +384,7 @@
 	float dia = BMO_slot_float_get(op, "diameter");
 	int a, subdiv = BMO_slot_int_get(op, "subdivisions");
 
-	BMO_slot_mat4_set(op, "mat", mat);
+	BMO_slot_mat4_get(op, "mat", mat);
 
 	/* phid = 2.0f * (float)M_PI / subdiv; */ /* UNUSED */
 	/* phi = 0.25f * (float)M_PI; */         /* UNUSED */
@@ -441,7 +441,7 @@
 	float mat[4][4];
 	int i;
 
-	BMO_slot_mat4_set(op, "mat", mat);
+	BMO_slot_mat4_get(op, "mat", mat);
 
 	for (i = 0; i < monkeynv; i++) {
 		float v[3];
@@ -494,7 +494,7 @@
 	if (!segs)
 		return;
 	
-	BMO_slot_mat4_set(op, "mat", mat);
+	BMO_slot_mat4_get(op, "mat", mat);
 
 	phid = 2.0f * (float)M_PI / segs;
 	phi = .25f * (float)M_PI;
@@ -566,7 +566,7 @@
 	if (!segs)
 		return;
 	
-	BMO_slot_mat4_set(op, "mat", mat);
+	BMO_slot_mat4_get(op, "mat", mat);
 
 	phid = 2.0f * (float)M_PI / segs;
 	phi = 0.25f * (float)M_PI;
@@ -652,7 +652,7 @@
 	BMVert *v1, *v2, *v3, *v4, *v5, *v6, *v7, *v8;
 	float vec[3], mat[4][4], off = BMO_slot_float_get(op, "size") / 2.0f;
 
-	BMO_slot_mat4_set(op, "mat", mat);
+	BMO_slot_mat4_get(op, "mat", mat);
 
 	if (!off) off = 0.5f;
 

Modified: branches/bmesh/blender/source/blender/bmesh/operators/bmo_utils.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/operators/bmo_utils.c	2012-02-13 05:36:31 UTC (rev 44081)
+++ branches/bmesh/blender/source/blender/bmesh/operators/bmo_utils.c	2012-02-13 05:59:14 UTC (rev 44082)
@@ -58,7 +58,7 @@
 	BMVert *v;
 	float mat[4][4];
 
-	BMO_slot_mat4_set(op, "mat", mat);
+	BMO_slot_mat4_get(op, "mat", mat);
 
 	BMO_ITER(v, &iter, bm, op, "verts", BM_VERT) {
 		mul_m4_v3(mat, v->co);

Modified: branches/bmesh/blender/source/blender/editors/mesh/bmeshutils.c
===================================================================
--- branches/bmesh/blender/source/blender/editors/mesh/bmeshutils.c	2012-02-13 05:36:31 UTC (rev 44081)
+++ branches/bmesh/blender/source/blender/editors/mesh/bmeshutils.c	2012-02-13 05:59:14 UTC (rev 44082)
@@ -408,9 +408,9 @@
 	BMOperator bmop;
 	int usefaces = em->selectmode > SCE_SELECT_EDGE;
 
-	BMO_op_initf(em->bm, &bmop, 
-	            "regionextend geom=%hvef constrict=%d usefaces=%d",
-	            BM_ELEM_SELECT, 0, usefaces);
+	BMO_op_initf(em->bm, &bmop,
+	             "regionextend geom=%hvef constrict=%d usefaces=%d",
+	             BM_ELEM_SELECT, 0, usefaces);
 	BMO_op_exec(em->bm, &bmop);
 	BMO_slot_buffer_hflag_enable(em->bm, &bmop, "geomout", BM_ELEM_SELECT, BM_ALL);
 	BMO_op_finish(em->bm, &bmop);
@@ -423,9 +423,9 @@
 	BMOperator bmop;
 	int usefaces = em->selectmode > SCE_SELECT_EDGE;
 
-	BMO_op_initf(em->bm, &bmop, 
-	            "regionextend geom=%hvef constrict=%d usefaces=%d",
-	            BM_ELEM_SELECT, 0, usefaces);
+	BMO_op_initf(em->bm, &bmop,
+	             "regionextend geom=%hvef constrict=%d usefaces=%d",
+	             BM_ELEM_SELECT, 0, usefaces);
 	BMO_op_exec(em->bm, &bmop);
 	BMO_slot_buffer_hflag_enable(em->bm, &bmop, "geomout", BM_ELEM_SELECT, BM_ALL);
 	BMO_op_finish(em->bm, &bmop);

Modified: branches/bmesh/blender/source/blender/modifiers/intern/MOD_array.c
===================================================================
--- branches/bmesh/blender/source/blender/modifiers/intern/MOD_array.c	2012-02-13 05:36:31 UTC (rev 44081)
+++ branches/bmesh/blender/source/blender/modifiers/intern/MOD_array.c	2012-02-13 05:59:14 UTC (rev 44082)
@@ -162,48 +162,6 @@
 	return max_co - min_co;
 }
 
-typedef struct IndexMapEntry {
-	/* the new vert index that this old vert index maps to */
-	int new;
-	/* -1 if this vert isn't merged, otherwise the old vert index it
-	* should be replaced with
-	*/
-	int merge;
-	/* 1 if this vert's first copy is merged with the last copy of its
-	* merge target, otherwise 0
-	*/
-	short merge_final;
-} IndexMapEntry;
-
-#if 0 /* BMESH_TODO, keep this function??? */
-
-/* indexMap - an array of IndexMap entries
- * oldIndex - the old index to map
- * copyNum - the copy number to map to (original = 0, first copy = 1, etc.)
- */
-static int calc_mapping(IndexMapEntry *indexMap, int oldIndex, int copyNum)
-{
-	if(indexMap[oldIndex].merge < 0) {
-		/* vert wasn't merged, so use copy of this vert */
-		return indexMap[oldIndex].new + copyNum;
-	} else if(indexMap[oldIndex].merge == oldIndex) {
-		/* vert was merged with itself */
-		return indexMap[oldIndex].new;
-	} else {
-		/* vert was merged with another vert */
-		/* follow the chain of merges to the end, or until we've passed
-		* a number of vertices equal to the copy number
-		*/
-		if(copyNum <= 0)
-			return indexMap[oldIndex].new;
-		else
-			return calc_mapping(indexMap, indexMap[oldIndex].merge,
-						copyNum - 1);
-	}
-}
-
-#endif
-
 static DerivedMesh *arrayModifier_doArray(ArrayModifierData *amd,

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list