own error - mixup with BMO_slot_mat_get/set
authorCampbell Barton <ideasman42@gmail.com>
Mon, 13 Feb 2012 05:59:14 +0000 (05:59 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Mon, 13 Feb 2012 05:59:14 +0000 (05:59 +0000)
source/blender/bmesh/bmesh_operator_api.h
source/blender/bmesh/intern/bmesh_operators.c
source/blender/bmesh/operators/bmo_mirror.c
source/blender/bmesh/operators/bmo_primitive.c
source/blender/bmesh/operators/bmo_utils.c
source/blender/editors/mesh/bmeshutils.c
source/blender/modifiers/intern/MOD_array.c
source/blender/modifiers/intern/MOD_bevel.c

index 6e5c5887ee6c85362b97ebf539ed776b41dde7e9..793c1748af714464948a961173c06e806fe1c5cb 100644 (file)
@@ -278,9 +278,9 @@ enum {
 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 @@ void  BMO_slot_vec_get(BMOperator *op, const char *slotname, float r_vec[3]);
 /* 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);
 
index 09f587c39d31556db542219951970d02eed008bc..af38a1870f03a3f9e78a350eaeec8919bc30c7ea 100644 (file)
@@ -306,7 +306,7 @@ void BMO_slot_copy(BMOperator *source_op, BMOperator *dest_op, const char *src,
  *
  */
 
-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 @@ void BMO_slot_float_set(BMOperator *op, const char *slotname, float f)
        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 @@ void BMO_slot_int_set(BMOperator *op, const char *slotname, int i)
 }
 
 /* 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 @@ void BMO_slot_mat_set(struct BMOperator *op, const char *slotname, float *mat, i
                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)
index b59594099f61bf7a3f2f48eb27a7019581433eb3..29a74b9f02acf33c8e83e7e328f8c4c452c96fab 100644 (file)
@@ -54,7 +54,7 @@ void bmesh_mirror_exec(BMesh *bm, BMOperator *op)
        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");
index 27bcccd14e31bbf36bdfa02da1d4b1bb64d438dc..311ddfbf55e2f0fce568034d78bc3eb5f8a7cdc2 100644 (file)
@@ -234,7 +234,7 @@ void bmesh_create_grid_exec(BMesh *bm, BMOperator *op)
        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 @@ void bmesh_create_uvsphere_exec(BMesh *bm, BMOperator *op)
        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 @@ void bmesh_create_icosphere_exec(BMesh *bm, BMOperator *op)
        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 @@ void bmesh_create_monkey_exec(BMesh *bm, BMOperator *op)
        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 @@ void bmesh_create_circle_exec(BMesh *bm, BMOperator *op)
        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 @@ void bmesh_create_cone_exec(BMesh *bm, BMOperator *op)
        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 @@ void bmesh_create_cube_exec(BMesh *bm, BMOperator *op)
        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;
 
index 25e2cdf5c3c00d1958f1a506ca38fb2cb0672af8..b660ebbb5fc3610fc89914c7fbdcbe946d29111c 100644 (file)
@@ -58,7 +58,7 @@ void bmesh_transform_exec(BMesh *bm, BMOperator *op)
        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);
index 669bfe636e85fa0de6b3ff8001f8e08befc9b75d..7777a3772e09dfa1fb447e8aaf4e01f11804329a 100644 (file)
@@ -408,9 +408,9 @@ void EDBM_select_more(BMEditMesh *em)
        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 @@ void EDBM_select_less(BMEditMesh *em)
        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);
index a711650676bde16d5240557f022340cfab4e8c13..0f25fdbe88bb5094c96bbbf76935bbd97f52c56f 100644 (file)
@@ -162,48 +162,6 @@ static float vertarray_size(MVert *mvert, int numVerts, int axis)
        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,
                                          Scene *scene, Object *ob, DerivedMesh *dm,
                                                                                  int UNUSED(initFlags))
@@ -325,8 +283,8 @@ static DerivedMesh *arrayModifier_doArray(ArrayModifierData *amd,
                        BMHeader *h;
 
                        BMO_op_initf(em->bm, &findop,
-                               "finddoubles verts=%av dist=%f keepverts=%s",
-                               amd->merge_dist, &op, "geom");
+                                    "finddoubles verts=%av dist=%f keepverts=%s",
+                                    amd->merge_dist, &op, "geom");
 
                        i = 0;
                        BMO_ITER(h, &oiter, em->bm, &op, "geom", BM_ALL) {
index 789244c6e884fb909d1a0d16b6daac6f3d6ba413..91ff1ad00639046b5fe367ae150bf3e2a9e66f80 100644 (file)
@@ -145,7 +145,7 @@ static DerivedMesh *applyModifier(ModifierData *md, struct Object *ob,
        }
 
        BMO_op_callf(bm, "bevel geom=%fe percent=%f use_even=%i use_dist=%i",
-                   EDGE_MARK, bmd->value, (bmd->flags & BME_BEVEL_EVEN)!=0, (bmd->flags & BME_BEVEL_DIST)!=0);
+                    EDGE_MARK, bmd->value, (bmd->flags & BME_BEVEL_EVEN)!=0, (bmd->flags & BME_BEVEL_DIST) != 0);
        BMO_pop(bm);
 
        BLI_assert(em->looptris == NULL);