Fix BMesh edge_bisect, edge_percent being ignored
authorAndrew Hale <TrumanBlending@gmail.com>
Mon, 20 Aug 2018 03:23:32 +0000 (13:23 +1000)
committerCampbell Barton <ideasman42@gmail.com>
Mon, 20 Aug 2018 03:38:10 +0000 (13:38 +1000)
Also fix float/int/bool access methods

source/blender/bmesh/intern/bmesh_operator_api_inline.h
source/blender/bmesh/operators/bmo_subdivide.c

index eb1c161f19d2d9a2b17f6a0b7d4fad1280fb8d59..a453cfa1769ace3e8566e907cc43e8e376f0a2b5 100644 (file)
@@ -168,7 +168,7 @@ BLI_INLINE float BMO_slot_map_float_get(BMOpSlot *slot, const void *element)
 
        data = BMO_slot_map_data_get(slot, element);
        if (data) {
-               return **(float **)data;
+               return *(float *)data;
        }
        else {
                return 0.0f;
@@ -183,7 +183,7 @@ BLI_INLINE int BMO_slot_map_int_get(BMOpSlot *slot, const void *element)
 
        data = BMO_slot_map_data_get(slot, element);
        if (data) {
-               return **(int **)data;
+               return *(int *)data;
        }
        else {
                return 0;
@@ -198,7 +198,7 @@ BLI_INLINE bool BMO_slot_map_bool_get(BMOpSlot *slot, const void *element)
 
        data = BMO_slot_map_data_get(slot, element);
        if (data) {
-               return **(bool **)data;
+               return *(bool *)data;
        }
        else {
                return false;
index 90cbe9a5d76ec6711a76e562c0010c3641fe23af..c8ba2134a730bd84754665e3729d515113c19f08 100644 (file)
@@ -1363,6 +1363,9 @@ void bmo_bisect_edges_exec(BMesh *bm, BMOperator *op)
 
        bmo_subd_init_shape_info(bm, &params);
 
+       /* tag edges in map */
+       BMO_slot_map_to_flag(bm, op->slots_in, "edge_percents", BM_EDGE, EDGE_PERCENT);
+
        /* go through and split edges */
        BMO_ITER (e, &siter, op->slots_in, "edges", BM_EDGE) {
                bm_subdivide_multicut(bm, e, &params, e->v1, e->v2);