Revision: 41440
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41440
Author:   campbellbarton
Date:     2011-11-01 12:51:38 +0000 (Tue, 01 Nov 2011)
Log Message:
-----------
replace as many uses of BM_Get/SetIndex as possible with tagging with a temp 
flag, some uses need index values to be set, so this will need more effort to 
replace (crazy space and solidify for eg).

Modified Paths:
--------------
    branches/bmesh/blender/source/blender/bmesh/operators/extrudeops.c
    branches/bmesh/blender/source/blender/bmesh/operators/removedoubles.c
    branches/bmesh/blender/source/blender/editors/mesh/bmesh_select.c
    branches/bmesh/blender/source/blender/editors/mesh/bmesh_tools.c
    branches/bmesh/blender/source/blender/editors/mesh/bmeshutils.c
    branches/bmesh/blender/source/blender/editors/mesh/knifetool.c
    branches/bmesh/blender/source/blender/editors/transform/transform.c
    
branches/bmesh/blender/source/blender/editors/transform/transform_conversions.c
    branches/bmesh/blender/source/blender/editors/util/crazyspace.c
    branches/bmesh/blender/source/blender/editors/uvedit/uvedit_draw.c
    branches/bmesh/blender/source/blender/editors/uvedit/uvedit_ops.c

Modified: branches/bmesh/blender/source/blender/bmesh/operators/extrudeops.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/operators/extrudeops.c  
2011-11-01 11:00:08 UTC (rev 41439)
+++ branches/bmesh/blender/source/blender/bmesh/operators/extrudeops.c  
2011-11-01 12:51:38 UTC (rev 41440)
@@ -350,8 +350,12 @@
 
        /* Clear indices of verts & edges */
        BM_ITER(v, &viter, bm, BM_VERTS_OF_MESH, NULL) {
-               BM_SetIndex(v, 0);
+               BM_SetHFlag(v, BM_TMP_TAG);
        }
+       /* BMESH_TODO, don't abuse vertex index index info */
+
+       /* this is used to count edge users, we can probably
+        * use bmesh connectivity info here - campbell*/
        BM_ITER(e, &eiter, bm, BM_EDGES_OF_MESH, NULL) {
                BM_SetIndex(e, 0);
        }
@@ -444,8 +448,8 @@
                        else {
                                /* can't do anything useful here!
                                   Set the face index for a vert incase it gets 
a zero normal */
-                               BM_SetIndex(e->v1, -1);
-                               BM_SetIndex(e->v2, -1);
+                               BM_ClearHFlag(e->v1, BM_TMP_TAG);
+                               BM_ClearHFlag(e->v2, BM_TMP_TAG);
                                continue;
                        }
                }
@@ -472,7 +476,7 @@
                           edges */
                        BM_Vert_UpdateNormal(bm, v);
                }
-               else if (normalize_v3(v->no) == 0.0f && BM_GetIndex(v) < 0) {
+               else if (normalize_v3(v->no) == 0.0f && !BM_TestHFlag(v, 
BM_TMP_TAG)) {
                        /* exceptional case, totally flat. use the normal
                           of any marked face around the vertex */
                        BM_ITER(f, &fiter, bm, BM_FACES_OF_VERT, v) {

Modified: branches/bmesh/blender/source/blender/bmesh/operators/removedoubles.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/operators/removedoubles.c       
2011-11-01 11:00:08 UTC (rev 41439)
+++ branches/bmesh/blender/source/blender/bmesh/operators/removedoubles.c       
2011-11-01 12:51:38 UTC (rev 41440)
@@ -123,6 +123,7 @@
                }
        }
 
+       /* BMESH_TODO, stop abusing face index here */
        BM_ITER(f, &iter, bm, BM_FACES_OF_MESH, NULL) {
                BM_SetIndex(f, 0);
                BM_ITER(l, &liter, bm, BM_LOOPS_OF_FACE, f) {

Modified: branches/bmesh/blender/source/blender/editors/mesh/bmesh_select.c
===================================================================
--- branches/bmesh/blender/source/blender/editors/mesh/bmesh_select.c   
2011-11-01 11:00:08 UTC (rev 41439)
+++ branches/bmesh/blender/source/blender/editors/mesh/bmesh_select.c   
2011-11-01 12:51:38 UTC (rev 41440)
@@ -1217,6 +1217,7 @@
 
        BLI_smallhash_init(&visithash);
 
+       /* BMESH_TODO this should be valid now, leaving here until we can 
ensure this - campbell */
        /* we need the vert */
        BM_ITER(v, &iter, em->bm, BM_VERTS_OF_MESH, NULL) {
                BM_SetIndex(v, totvert);
@@ -2203,11 +2204,11 @@
        sharp = (sharp * M_PI) / 180.0;
 
        BM_ITER(f, &iter, em->bm, BM_FACES_OF_MESH, NULL) {
-               BM_SetIndex(f, 0);
+               BM_ClearHFlag(f, BM_TMP_TAG);
        }
 
        BM_ITER(f, &iter, em->bm, BM_FACES_OF_MESH, NULL) {
-               if (BM_TestHFlag(f, BM_HIDDEN) || !BM_TestHFlag(f, BM_SELECT) 
|| BM_GetIndex(f))
+               if (BM_TestHFlag(f, BM_HIDDEN) || !BM_TestHFlag(f, BM_SELECT) 
|| BM_TestHFlag(f, BM_TMP_TAG))
                        continue;
 
                BLI_array_empty(stack);
@@ -2222,13 +2223,13 @@
 
                        BM_Select(em->bm, f, 1);
 
-                       BM_SetIndex(f, 1);
+                       BM_SetHFlag(f, BM_TMP_TAG);
 
                        BM_ITER(l, &liter, em->bm, BM_LOOPS_OF_FACE, f) {
                                BM_ITER(l2, &liter2, em->bm, BM_LOOPS_OF_LOOP, 
l) {
                                        float angle;
 
-                                       if (BM_GetIndex(l2->f) || 
BM_TestHFlag(l2->f, BM_HIDDEN))
+                                       if (BM_TestHFlag(l2->f, BM_TMP_TAG) || 
BM_TestHFlag(l2->f, BM_HIDDEN))
                                                continue;
 
                                        /* edge has exactly two neighboring 
faces, check angle */
@@ -2387,7 +2388,7 @@
        BMIter iter;
        
        BM_ITER(v, &iter, em->bm, BM_VERTS_OF_MESH, NULL) {
-               BM_SetIndex(v, 0);
+               BM_ClearHFlag(v, BM_TMP_TAG);
        }
        
        BM_ITER(f, &iter, em->bm, BM_FACES_OF_MESH, NULL) {
@@ -2396,14 +2397,14 @@
                
                BM_ITER(l, &liter, em->bm, BM_LOOPS_OF_FACE, f) {
                        if (BM_TestHFlag(l->v, BM_SELECT) && 
!BM_TestHFlag(l->v, BM_HIDDEN)) {
-                               BM_SetIndex(l->next->v, 1);
+                               BM_SetHFlag(l->next->v, BM_TMP_TAG);
                                BM_Select(em->bm, l->v, 0);
                        }
                }
        }
 
        BM_ITER(v, &iter, em->bm, BM_VERTS_OF_MESH, NULL) {
-               if (BM_GetIndex(v)) {
+               if (BM_TestHFlag(v, BM_TMP_TAG)) {
                        BM_Select(em->bm, v, 1);
                }
        }
@@ -2440,7 +2441,7 @@
        em_setup_viewcontext(C, &vc);
        
        BM_ITER(e, &iter, em->bm, BM_EDGES_OF_MESH, NULL) {
-               BM_SetIndex(e, 0);
+               BM_ClearHFlag(e, BM_TMP_TAG);
        }
 
        BM_ITER(f, &iter, em->bm, BM_FACES_OF_MESH, NULL) {
@@ -2456,14 +2457,14 @@
                        }
                        
                        if ((tot != totsel && totsel > 0) || (totsel == 1 && 
tot == 1))
-                               BM_SetIndex(l1->e, 1);
+                               BM_SetHFlag(l1->e, BM_TMP_TAG);
                }
        }
 
        EDBM_clear_flag_all(em, BM_SELECT);
        
        BM_ITER(e, &iter, em->bm, BM_EDGES_OF_MESH, NULL) {
-               if (BM_GetIndex(e) && !BM_TestHFlag(e, BM_HIDDEN))
+               if (BM_TestHFlag(e, BM_TMP_TAG) && !BM_TestHFlag(e, BM_HIDDEN))
                        BM_Select_Edge(em->bm, e, 1);
        }
 
@@ -2560,15 +2561,15 @@
        BLI_smallhash_init(&visithash);
        
        BM_ITER(f, &iter, em->bm, BM_FACES_OF_MESH, NULL) {
-               BM_SetIndex(f, 0);
+               BM_ClearHFlag(f, BM_TMP_TAG);
        }
 
        BM_ITER(e, &iter, em->bm, BM_EDGES_OF_MESH, NULL) {
                if (BM_TestHFlag(e, BM_SELECT)) {
                        BLI_array_append(edges, e);
-                       BM_SetIndex(e, 1);
+                       BM_SetHFlag(e, BM_TMP_TAG);
                } else {
-                       BM_SetIndex(e, 0);
+                       BM_ClearHFlag(e, BM_TMP_TAG);
                }
        }
        
@@ -2583,7 +2584,7 @@
                
                e = edges[i];
                
-               if (!BM_GetIndex(e))
+               if (!BM_TestHFlag(e, BM_TMP_TAG))
                        continue;
                
                BM_ITER(l, &liter, em->bm, BM_LOOPS_OF_EDGE, e) {
@@ -2612,9 +2613,9 @@
                        int j;
                        
                        for (j=0; j<tot; j++) {
-                               BM_SetIndex(region[j], 1);
+                               BM_SetHFlag(region[j], BM_TMP_TAG);
                                BM_ITER(l, &liter, em->bm, BM_LOOPS_OF_FACE, 
region[j]) {
-                                       BM_SetIndex(l->e, 0);
+                                       BM_ClearHFlag(l->e, BM_TMP_TAG);
                                }
                        }
                        
@@ -2650,7 +2651,7 @@
        EDBM_clear_flag_all(em, BM_SELECT);
        
        BM_ITER(f, &iter, em->bm, BM_FACES_OF_MESH, NULL) {
-               if (BM_GetIndex(f) && !BM_TestHFlag(f, BM_HIDDEN)) {
+               if (BM_TestHFlag(f, BM_TMP_TAG) && !BM_TestHFlag(f, BM_HIDDEN)) 
{
                        BM_Select_Face(em->bm, f, 1);
                }
        }

Modified: branches/bmesh/blender/source/blender/editors/mesh/bmesh_tools.c
===================================================================
--- branches/bmesh/blender/source/blender/editors/mesh/bmesh_tools.c    
2011-11-01 11:00:08 UTC (rev 41439)
+++ branches/bmesh/blender/source/blender/editors/mesh/bmesh_tools.c    
2011-11-01 12:51:38 UTC (rev 41440)
@@ -1517,7 +1517,12 @@
        /* Use index field to remember what was hidden before all is revealed. 
*/
        for (i=0; i<3; i++) {
                BM_ITER(ele, &iter, em->bm, types[i], NULL) {
-                       BM_SetIndex(ele, BM_TestHFlag(ele, BM_HIDDEN) ? 1 : 0);
+                       if (BM_TestHFlag(ele, BM_HIDDEN)) {
+                               BM_SetHFlag(ele, BM_TMP_TAG);
+                       }
+                       else {
+                               BM_ClearHFlag(ele, BM_TMP_TAG);
+                       }
                }
        }
 
@@ -1531,7 +1536,7 @@
                }
 
                BM_ITER(ele, &iter, em->bm, types[i], NULL) {
-                       if (BM_GetIndex(ele)) {
+                       if (BM_TestHFlag(ele, BM_TMP_TAG)) {
                                BM_Select(em->bm, ele, 1);
                        }
                }
@@ -2374,9 +2379,12 @@
        ED_view3d_ob_project_mat_get(rv3d, obedit, projectMat);
 
        BM_ITER(e, &iter, em->bm, BM_EDGES_OF_MESH, NULL) {
-               if (BM_TestHFlag(e, BM_SELECT))
-                       BM_SetIndex(e, 1);
-               else BM_SetIndex(e, 0);
+               if (BM_TestHFlag(e, BM_SELECT)) {
+                       BM_SetHFlag(e, BM_TMP_TAG);
+               }
+               else {
+                       BM_ClearHFlag(e, BM_TMP_TAG);
+               }
        }
 
        /*handle case of one vert selected.  identify
@@ -2425,12 +2433,12 @@
                } else if (BM_Edge_FaceCount(e2) == 2) {
                        l = e2->l;
                        e = BM_OtherFaceLoop(e2, l->f, v)->e;
-                       BM_SetIndex(e, 1);
+                       BM_SetHFlag(e, BM_TMP_TAG);
                        BM_Select(bm, e, 1);
                        
                        l = e2->l->radial_next;
                        e = BM_OtherFaceLoop(e2, l->f, v)->e;
-                       BM_SetIndex(e, 1);
+                       BM_SetHFlag(e, BM_TMP_TAG);
                        BM_Select(bm, e, 1);
                }
 
@@ -2441,7 +2449,7 @@
                        e2 = NULL;
                        i = 0;
                        BM_ITER(e, &eiter, bm, BM_EDGES_OF_VERT, v) {
-                               if (BM_GetIndex(e)) {
+                               if (BM_TestHFlag(e, BM_TMP_TAG)) {
                                        e2 = e;
                                        i++;
                                }
@@ -2509,9 +2517,12 @@
        BMO_HeaderFlag_Buffer(bm, &bmop, side?"edgeout2":"edgeout1", BM_SELECT, 
BM_EDGE);
 
        BM_ITER(e, &iter, bm, BM_EDGES_OF_MESH, NULL) {
-               if (BM_TestHFlag(e, BM_SELECT))
-                       BM_SetIndex(e, 1);
-               else BM_SetIndex(e, 0);
+               if (BM_TestHFlag(e, BM_SELECT)) {
+                       BM_SetHFlag(e, BM_TMP_TAG);
+               }
+               else {
+                       BM_ClearHFlag(e, BM_TMP_TAG);
+               }
        }
 
        /*constrict edge selection again*/
@@ -2519,7 +2530,7 @@
                e2 = NULL;
                i = 0;
                BM_ITER(e, &eiter, bm, BM_EDGES_OF_VERT, v) {
-                       if (BM_GetIndex(e)) {
+                       if (BM_TestHFlag(e, BM_TMP_TAG)) {
                                e2 = e;
                                i++;
                        }
@@ -3923,16 +3934,19 @@
        float mirror_co[3];
 
        BM_ITER(v1, &iter, em->bm, BM_VERTS_OF_MESH, NULL) {
-               if (!BM_TestHFlag(v1, BM_SELECT) || BM_TestHFlag(v1, BM_HIDDEN))
-                       BM_SetIndex(v1, 0);
-               else BM_SetIndex(v1, 1);
+               if (!BM_TestHFlag(v1, BM_SELECT) || BM_TestHFlag(v1, 
BM_HIDDEN)) {
+                       BM_ClearHFlag(v1, BM_TMP_TAG);
+               }
+               else {
+                       BM_SetHFlag(v1, BM_TMP_TAG);
+               }
        }
 
        if (!extend)
                EDBM_clear_flag_all(em, BM_SELECT);
 
        BM_ITER(v1, &iter, em->bm, BM_VERTS_OF_MESH, NULL) {
-               if (!BM_GetIndex(v1) || BM_TestHFlag(v1, BM_HIDDEN))
+               if (!BM_TestHFlag(v1, BM_TMP_TAG) || BM_TestHFlag(v1, 
BM_HIDDEN))
                        continue;
 
                copy_v3_v3(mirror_co, v1->co);

Modified: branches/bmesh/blender/source/blender/editors/mesh/bmeshutils.c
===================================================================
--- branches/bmesh/blender/source/blender/editors/mesh/bmeshutils.c     
2011-11-01 11:00:08 UTC (rev 41439)
+++ branches/bmesh/blender/source/blender/editors/mesh/bmeshutils.c     
2011-11-01 12:51:38 UTC (rev 41440)
@@ -624,7 +624,8 @@
        
        if (do_face_idx_array)
                EDBM_init_index_arrays(em, 0, 0, 1);
-       
+
+       /* BMESH_TODO this should be valid now, leaving here until we can 
ensure this - campbell */
        /* we need the vert */
        totverts=0;
        BM_ITER(ev, &iter, em->bm, BM_VERTS_OF_MESH, NULL) {

Modified: branches/bmesh/blender/source/blender/editors/mesh/knifetool.c
===================================================================
--- branches/bmesh/blender/source/blender/editors/mesh/knifetool.c      
2011-11-01 11:00:08 UTC (rev 41439)
+++ branches/bmesh/blender/source/blender/editors/mesh/knifetool.c      
2011-11-01 12:51:38 UTC (rev 41440)
@@ -1395,7 +1395,8 @@
        
        BMO_push(bm, NULL);
        bmesh_begin_edit(bm, BMOP_UNTAN_MULTIRES);
-       
+
+       /* BMESH_TODO this should be valid now, leaving here until we can 
ensure this - campbell */
        i = 0;
        BM_ITER(f, &bmiter, bm, BM_FACES_OF_MESH, NULL) {
                BM_SetIndex(f, i);

Modified: branches/bmesh/blender/source/blender/editors/transform/transform.c

@@ Diff output truncated at 10240 characters. @@
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to