[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [37867] branches/soc-2011-avocado/blender/ source/blender/editors/mesh/autoseam_tools.c: Code clean up and refactoring .

shuvro sarker shuvro05 at gmail.com
Mon Jun 27 17:09:12 CEST 2011


Revision: 37867
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=37867
Author:   shuvro
Date:     2011-06-27 15:09:12 +0000 (Mon, 27 Jun 2011)
Log Message:
-----------
Code clean up and refactoring.

Modified Paths:
--------------
    branches/soc-2011-avocado/blender/source/blender/editors/mesh/autoseam_tools.c

Modified: branches/soc-2011-avocado/blender/source/blender/editors/mesh/autoseam_tools.c
===================================================================
--- branches/soc-2011-avocado/blender/source/blender/editors/mesh/autoseam_tools.c	2011-06-27 14:45:50 UTC (rev 37866)
+++ branches/soc-2011-avocado/blender/source/blender/editors/mesh/autoseam_tools.c	2011-06-27 15:09:12 UTC (rev 37867)
@@ -57,7 +57,6 @@
 #include "MEM_guardedalloc.h"
 #include "WM_api.h"
 
-//#include "AutoseamAdjacency.h"
 
 #define MAX_DEPTH 4
 
@@ -96,13 +95,7 @@
     BMFace *face;
 	BMFace *other_face;
     BMIter edge_iter, face_iter;
-
     
-//    for(edge = BMIter_New(&edge_iter, bm, BM_EDGES_OF_MESH, NULL ); edge; edge= BMIter_Step(&edge_iter)) 
-//    {
-//        BM_ClearHFlag(edge, BM_SEAM);
-//    }
-    
     for(edge = BMIter_New(&edge_iter, bm, BM_EDGES_OF_MESH, NULL ); edge; edge= BMIter_Step(&edge_iter)) 
     {
         if(!BM_Boundary_Edge(edge)){
@@ -149,7 +142,6 @@
 int is_element_in_array(int element, int *array, int num_array_element)
 {
     int i;
-    //printf("\nitem to search: %d\n", element);
     
     for(i = 0; i < num_array_element; i++){
         //printf("%d ", array[i]);
@@ -221,7 +213,7 @@
 }
 
 
-int generate_seam_recursive_v2(BMesh *bm, AUTOSEAM_Adjacency adj, int recursion_depth)
+int generate_seam_recursive(BMesh *bm, AUTOSEAM_Adjacency adj, int recursion_depth)
 {
     int s;
     int i, j;
@@ -259,16 +251,13 @@
     
     for(i = 0; i < nplus; i++){
         /*set's the mapping of the face index.This is placed here to reduce extra computation.*/
-        printf("index: %d value :%d\n", i, fplus[i]);
+        //printf("index: %d value :%d\n", i, fplus[i]);
         autoseam_set_mapping(adj_plus, i, fplus[i]);
-        //set_mapping(adj_plus, i, fplus[i]);
         
         for(j = i+1; j < nplus; j++){
-            //if(autoseam_is_adjacent(adj, fplus[i], fplus[j])){
             if(autoseam_is_adjacent(adj, i, j)){
-                //autoseam_set_adjacent(adj_plus, i, j, autoseam_get_value(adj, fplus[i], fplus[j]));
                 autoseam_set_adjacent(adj_plus, i, j, autoseam_get_value(adj, i, j));
-                printf("adjacency index: %d %d value: %f\n", i, j, autoseam_get_value(adj, i, j));
+                //printf("adjacency index: %d %d value: %f\n", i, j, autoseam_get_value(adj, i, j));
             }
         }
     }
@@ -280,23 +269,17 @@
     for(i = 0; i < nminus; i++){
         /*set's the mapping of the face index.This is placed here to reduce extra computation.*/
         autoseam_set_mapping(adj_minus, i, fminus[i]);
-        printf("index: %d value :%d\n", i, fminus[i]);
+        //printf("index: %d value :%d\n", i, fminus[i]);
         
         for(j = i+1; j < nminus; j++){
-            printf("two values are: %d %d\n", fminus[i], fminus[j]);
-            //if(autoseam_is_adjacent(adj, fminus[i], fminus[j])){
+            //printf("two values are: %d %d\n", fminus[i], fminus[j]);
             if(autoseam_is_adjacent(adj, i, j)){
-                //autoseam_set_adjacent(adj_minus, i, j, autoseam_get_value(adj, fminus[i], fminus[j]));
                 autoseam_set_adjacent(adj_plus, i, j, autoseam_get_value(adj, i, j));
                 //printf("adjacency index: %d %d value: %f\n", i, j, autoseam_get_value(adj, fminus[i], fminus[j]));
             }
         }
     }
 
-        
-    /* now delete the passed adjacency handle and make the recursive calls. */
-    //autoseam_delete_adjacency(adj);
-    
     /* also free the dynamically allocated memories. */
     MEM_freeN(fplus);
     MEM_freeN(fminus);
@@ -304,10 +287,11 @@
     /* prepare for the next round. */
     recursion_depth--;
     
+    /* recursive calls for two parts of the mesh. */
     if(nplus > 0)
-        generate_seam_recursive_v2(bm, adj_plus, recursion_depth);
+        generate_seam_recursive(bm, adj_plus, recursion_depth);
     if(nminus > 0)
-        generate_seam_recursive_v2(bm, adj_minus, recursion_depth);
+        generate_seam_recursive(bm, adj_minus, recursion_depth);
     
     autoseam_delete_adjacency(adj);
         
@@ -316,120 +300,7 @@
 }
 
 
-//static int recursion_depth = 0;
 
-//int generate_seam_recursive(BMesh *bm, int *fplus_p, int nplus_p, int *fminus_p, int nminus_p, int recursion_depth)
-//{
-//
-//    
-//    AUTOSEAM_Adjacency adj;
-//    AUTOSEAM_Adjacency adj_second;
-//    int num_faces;
-//    static int s, s2;
-//    int  *fplus, *fminus;
-//    int  *fplus2, *fminus2;
-//    
-//    int nplus = nplus_p;
-//    int nminus = nminus_p;
-//    
-//    int nplus2, nminus2;
-//    
-//    fplus = fplus_p;
-//    fminus = fminus_p;
-//
-//    
-//    if(!recursion_depth) 
-//        return 0;
-//    
-//    num_faces = BM_Count_Element(bm, BM_FACE);
-//        
-////    while(recursion_depth < MAX_DEPTH)
-////    {
-//        if(recursion_depth == MAX_DEPTH){
-//            
-//            adj = autoseam_create_adjacency(num_faces);
-//            
-//            autoseam_prepare_graph(bm);
-//            autoseam_create_graph(adj, bm, 1, -1, NULL);
-//            autoseam_generate_seam(adj);
-//            
-//            s = autoseam_get_best_split(adj);
-//            
-//            fplus = (int*)MEM_callocN(num_faces*sizeof(int), "autoseam_fplus");
-//            fminus = (int*)MEM_callocN(num_faces*sizeof(int), "autoseam_fminus");
-//            
-//            autoseam_get_split(adj, s, fplus, &nplus, fminus, &nminus);
-//            
-//            /* mark the seam on the mesh */
-//            autoseam_clear_seam(bm);
-//            autoseam_mark_seam(bm, fplus, nplus, fminus, nminus);
-//            
-//            autoseam_delete_adjacency(adj);
-////            recursion_depth--;
-//            generate_seam_recursive(bm,fplus, nplus, fminus, nminus, --recursion_depth);
-//
-//        
-//        }
-//        
-//        else{
-//            
-//            adj = autoseam_create_adjacency(num_faces);
-//            printf("plus portion : %d minus portion : %d\n", nplus, nminus);
-//            autoseam_create_graph(adj, bm, 1, nplus , fplus);
-//            MEM_freeN(fplus);
-//            autoseam_generate_seam(adj);
-//            
-//            adj_second = autoseam_create_adjacency(num_faces);
-//            autoseam_create_graph(adj_second, bm, 1, nminus , fminus);
-//            MEM_freeN(fminus);
-//            autoseam_generate_seam(adj_second);
-//            
-//            
-//            s = autoseam_get_best_split(adj);
-//            
-//            fplus = (int*)MEM_callocN(num_faces*sizeof(int), "autoseam_fplus");
-//            fminus = (int*)MEM_callocN(num_faces*sizeof(int), "autoseam_fminus");
-//            
-//            autoseam_get_split(adj, s, fplus, &nplus, fminus, &nminus);
-//            
-//            if(nplus || nminus) autoseam_mark_seam(bm, fplus, nplus, fminus, nminus);
-//            autoseam_delete_adjacency(adj);
-//            
-//            //printf("plus : %d  minus : %d\n", nplus, nminus);
-//            
-//                        
-//            
-//            s2 = autoseam_get_best_split(adj_second);
-//            
-//            fplus2 = (int*)MEM_callocN(num_faces*sizeof(int), "autoseam_fplus2");
-//            fminus2 = (int*)MEM_callocN(num_faces*sizeof(int), "autoseam_fminus2");
-//            
-//            autoseam_get_split(adj_second, s2, fplus2, &nplus2, fminus2, &nminus2);
-//            if(nplus2 || nminus2) autoseam_mark_seam(bm, fplus2, nplus2, fminus2, nminus2);
-//            autoseam_delete_adjacency(adj_second);
-//            
-//            //printf("plus2 : %d  minus2 : %d\n", nplus2, nminus2);
-//            
-//            
-//            //recursion_depth++;
-//            recursion_depth--;
-//            generate_seam_recursive(bm,fplus, nplus, fminus, nminus, recursion_depth);
-//            generate_seam_recursive(bm,fplus2, nplus2, fminus2, nminus2, recursion_depth);
-//
-//            
-//            //recursion_depth++;
-//            //generate_seam_recursive(bm);
-//
-//
-//        
-//        }
-//        
-//   // }
-//    
-//    return 0;
-//    
-//}
-
 static int generate_seam_exec(bContext *C, wmOperator *op)
 {
     Object *obedit= CTX_data_edit_object(C);
@@ -438,11 +309,7 @@
     BMesh *bm = em->bm;
     AUTOSEAM_Adjacency adj;
     
-//    int s;
-//    int *fplus;
-//    int *fminus;
-//    int nplus = 0;
-//    int nminus = 0;
+
     int num_faces;
 	
     me->drawflag |= ME_DRAWSEAMS;
@@ -460,29 +327,8 @@
     autoseam_clear_seam(bm);
     autoseam_set_map_default(adj);
 	
-//    /* calculate the eigenvalues and the actual seam */
-//    autoseam_generate_seam(adj);
-//    
-//    /* retrieve the best seam */
-//    s = autoseam_get_best_split(adj);
-//    
-//    fplus = (int*)MEM_callocN(num_faces*sizeof(int), "autoseam_fplus");
-//    fminus = (int*)MEM_callocN(num_faces*sizeof(int), "autoseam_fminus");
-//	
-//    autoseam_get_split(adj, s, fplus, &nplus, fminus, &nminus);
-//    
-//    /* mark the seam on the mesh */
-//    autoseam_mark_seam(bm, fplus, nplus, fminus, nminus);
-//    
-//    MEM_freeN(fplus);
-//    MEM_freeN(fminus);
-//    
-//    autoseam_delete_adjacency(adj);
+    generate_seam_recursive(bm, adj, MAX_DEPTH);
     
-    //generate_seam_recursive(bm,NULL, -1, NULL, -1, MAX_DEPTH);
-    generate_seam_recursive_v2(bm, adj, MAX_DEPTH);
-    //recursion_depth = 0;
-    
     DAG_id_tag_update(obedit->data, OB_RECALC_DATA);
     WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
     




More information about the Bf-blender-cvs mailing list