[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