[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [37496] branches/soc-2011-avocado/blender: Marked mesh edges as seam edges and minimized some memory usage.

shuvro sarker shuvro05 at gmail.com
Wed Jun 15 05:24:07 CEST 2011


Revision: 37496
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=37496
Author:   shuvro
Date:     2011-06-15 03:24:02 +0000 (Wed, 15 Jun 2011)
Log Message:
-----------
Marked mesh edges as seam edges and minimized some memory usage.

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

Modified: branches/soc-2011-avocado/blender/intern/autoseam/AutoseamUtility.cpp
===================================================================
--- branches/soc-2011-avocado/blender/intern/autoseam/AutoseamUtility.cpp	2011-06-15 02:40:25 UTC (rev 37495)
+++ branches/soc-2011-avocado/blender/intern/autoseam/AutoseamUtility.cpp	2011-06-15 03:24:02 UTC (rev 37496)
@@ -94,11 +94,11 @@
         
         eigen_values[i] = es.eigenvalues()[i].real();
         //std::cout << "Column "  << i << ": value " << es.eigenvalues()[i] << std::endl;
-        std::cout << "Column "  << i << ": vector " << es.eigenvectors().col(i) << std::endl;
+        //std::cout << "Column "  << i << ": vector " << es.eigenvectors().col(i) << std::endl;
         
         for(loop = 0; loop < num_vectors; loop++){
             eigen_vectors[i][loop] = es.eigenvectors().col(i)[loop].real();
-            std::cout << "vector value: " << es.eigenvectors().col(i)[loop].real() << std::endl;
+            //std::cout << "vector value: " << es.eigenvectors().col(i)[loop].real() << std::endl;
             
         }
         

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-15 02:40:25 UTC (rev 37495)
+++ branches/soc-2011-avocado/blender/source/blender/editors/mesh/autoseam_tools.c	2011-06-15 03:24:02 UTC (rev 37496)
@@ -57,7 +57,7 @@
 #include "MEM_guardedalloc.h"
 #include "bmesh.h"
 
-#define MAX_LOOPS_OF_EDGE 1000
+//#define MAX_LOOPS_OF_EDGE 1000
 
 int get_sign(float number){
     return number > 0.0 ? 1 : 2;
@@ -69,10 +69,13 @@
     BMLoop *l;
     BMFace *face_left, *face_right;
     
-    int i,k,m,face_index[MAX_LOOPS_OF_EDGE];
-    float poly_centres[MAX_LOOPS_OF_EDGE][3];
+    
+    int i,k,m;
+    float poly_centres[2][3];
     double edge_length;
     
+    //int stored_index = -1;
+    
     float **dummy_dual_graph;
     int num_faces;
     float **eigen_vectors;
@@ -81,7 +84,7 @@
     //float face_center[3], face_center_second[3];
     
     num_faces = BM_Count_Element(bm, BM_FACE);
-    printf("The number of faces: %d\n", num_faces);
+    //printf("The number of faces: %d\n", num_faces);
     
     /* allocate memory for a num_faces x num_faces matrix */
     dummy_dual_graph = (float **)MEM_callocN(sizeof(float*)*num_faces, "dual_graph");
@@ -108,37 +111,40 @@
         /* if not boundary edge */
         if(!BM_Boundary_Edge(eed)){
             
-            printf("is manifold : %d", BM_Nonmanifold_Edge(bm,eed));
-            printf("index : %d\n", eed->head.index);
             i = 0;
-            
             BM_ITER(l, &iter2, bm, BM_LOOPS_OF_EDGE, eed) {
-                face_index[i] = l->f->head.index;
-                BM_Compute_Face_Center(bm, l->f, poly_centres[i]);
+                
+                //face_index[i] = l->f->head.index;
+                printf("indexes : %d %d\n", l->f->head.index,l->radial_next->f->head.index);
+                
+                if(!combinatorial){
+                    dummy_dual_graph[l->f->head.index][l->radial_next->f->head.index] = 1;
+                    dummy_dual_graph[l->radial_next->f->head.index][l->f->head.index] = 1;
+                }
+                else{
+                    double dx, dy, dz;
+                    
+                    BM_Compute_Face_Center(bm, l->f, poly_centres[0]);
+                    BM_Compute_Face_Center(bm, l->radial_next->f, poly_centres[1]);
+                    //printf("indexes are: %d %d\n", face_index[m], face_index[k]);
+                    
+                    
+                    dx = poly_centres[0][0] - poly_centres[1][0];
+                    dy = poly_centres[0][1] - poly_centres[1][1];
+                    dz = poly_centres[0][2] - poly_centres[1][2];
+                    edge_length = sqrt(dx*dx + dy*dy + dz*dz);
+                    
+                    
+                    dummy_dual_graph[l->f->head.index][l->radial_next->f->head.index] = edge_length;
+                    dummy_dual_graph[l->radial_next->f->head.index][l->f->head.index] = edge_length;
+                }
+                
+                
+                
+                //BM_Compute_Face_Center(bm, l->f, poly_centres[i]);
                 i++;
             }
             
-            for(m = 0; m < i ; m++){
-                for(k = m + 1 ; k < i ; k++){
-                    
-                    if(!combinatorial){
-                        dummy_dual_graph[face_index[m]][face_index[k]] = 1;
-                        printf("%d %d", face_index[m], face_index[k]);
-                    }
-                    else{
-                        double dx, dy, dz;
-                        
-                        dx = poly_centres[m][0] - poly_centres[k][0];
-                        dy = poly_centres[m][1] - poly_centres[k][1];
-                        dz = poly_centres[m][2] - poly_centres[k][2];
-                        edge_length = sqrt(dx*dx + dy*dy + dz*dz);
-                        printf("The edge length is: %lf\n",edge_length);
-                        dummy_dual_graph[face_index[m]][face_index[k]] = edge_length;
-                        //int BM_Compute_Face_Center ( BMesh *bm, BMFace *f, float center[3] );
-                    }
-                }
-            }
-            //dummy_dual_graph[face_index[0]][face_index[1]] = 1;
         }
         else
         {
@@ -173,26 +179,26 @@
                     flag = 1;
                     face_right = l->f;
                     
-                    printf("indexes : %d %d", face_left->head.index, face_right->head.index);
+                    //printf("indexes : %d %d", face_left->head.index, face_right->head.index);
                     break;
                 }
                 i++;
             }
             
             if(flag){
-                BMVert *v1, *v2;
-                BMEdge *seam_edge;
-                float vert_co[3];
+//                BMVert *v1, *v2;
+//                BMEdge *seam_edge;
+//                float vert_co[3];
+//                
+//                BM_Compute_Face_Center(bm, face_left, vert_co);
+//                v1 = BM_Make_Vert(bm, vert_co, NULL);
+//                
+//                BM_Compute_Face_Center(bm, face_right, vert_co);
+//                v2 = BM_Make_Vert(bm, vert_co, NULL);
+//                
+//                seam_edge = BM_Make_Edge(bm, v1, v2, NULL, 0);
                 
-                BM_Compute_Face_Center(bm, face_left, vert_co);
-                v1 = BM_Make_Vert(bm, vert_co, NULL);
-                
-                BM_Compute_Face_Center(bm, face_right, vert_co);
-                v2 = BM_Make_Vert(bm, vert_co, NULL);
-                
-                seam_edge = BM_Make_Edge(bm, v1, v2, NULL, 0);
-                
-                BM_SetHFlag(seam_edge, BM_SEAM);
+                BM_SetHFlag(eed, BM_SEAM);
             }
         
         }




More information about the Bf-blender-cvs mailing list