[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