[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [38627] branches/soc-2011-onion/source/ blender/editors/uvedit/uvedit_ops.c: smart stitch
Antony Riakiotakis
kalast at gmail.com
Sat Jul 23 00:11:53 CEST 2011
Revision: 38627
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38627
Author: psy-fi
Date: 2011-07-22 22:11:52 +0000 (Fri, 22 Jul 2011)
Log Message:
-----------
smart stitch
============================
- smart stitch: Hoping this is the last bug to squash in stitch operator (yeah, right :) ). Edge seaming would fail sometimes if uv was shared by different stitchable islands.
Modified Paths:
--------------
branches/soc-2011-onion/source/blender/editors/uvedit/uvedit_ops.c
Modified: branches/soc-2011-onion/source/blender/editors/uvedit/uvedit_ops.c
===================================================================
--- branches/soc-2011-onion/source/blender/editors/uvedit/uvedit_ops.c 2011-07-22 21:57:04 UTC (rev 38626)
+++ branches/soc-2011-onion/source/blender/editors/uvedit/uvedit_ops.c 2011-07-22 22:11:52 UTC (rev 38627)
@@ -1698,40 +1698,55 @@
}
if(element->flag & STITCH_STITCHABLE &&
element2->flag & STITCH_STITCHABLE){
+ uv_average[index1].count += uv_average_tmp[0].count;
+ uv_average[index1].uv[0] += uv_average_tmp[0].uv[0];
+ uv_average[index1].uv[1] += uv_average_tmp[0].uv[1];
+ uv_average[index2].count += uv_average_tmp[1].count;
+ uv_average[index2].uv[0] += uv_average_tmp[1].uv[0];
+ uv_average[index2].uv[1] += uv_average_tmp[1].uv[1];
+
/* update uv's on the update stack */
for(stack_iter = 0; stack_iter < stackSize1; stack_iter++){
- index1 = commonVertMaps[stack_iter] - vmap->buf,
- efa = commonVertMaps[stack_iter]->face;
-
commonVertMaps[stack_iter]->flag |= STITCH_STITCHABLE;
+ }
+ for(stack_iter = 0; stack_iter < stackSize2; stack_iter++){
+ commonVertMaps2[stack_iter]->flag |= STITCH_STITCHABLE;
+ }
- uv_average[index1].count += uv_average_tmp[0].count;
- uv_average[index1].uv[0] += uv_average_tmp[0].uv[0];
- uv_average[index1].uv[1] += uv_average_tmp[0].uv[1];
+ for(el_iter = vmap->vert[v1->tmp.l]; el_iter; el_iter = el_iter->next){
+ if(el_iter->flag & STITCH_STITCHABLE){
+ int index = el_iter - vmap->buf;
+ efa = el_iter->face;
- if(state->snapIslands){
- island_stitch_data[commonVertMaps[stack_iter]->island].addedForPreview = 1;
+ uv_average[index].count = uv_average[index1].count;
+ uv_average[index].uv[0] = uv_average[index1].uv[0];
+ uv_average[index].uv[1] = uv_average[index1].uv[1];
+
+ if(state->snapIslands){
+ island_stitch_data[el_iter->island].addedForPreview = 1;
+ }
+ else {
+ stitch_update_face_preview_index(efa, preview);
+ }
}
- else {
- stitch_update_face_preview_index(efa, preview);
- }
}
- for(stack_iter = 0; stack_iter < stackSize2; stack_iter++){
- index2 = commonVertMaps2[stack_iter] - vmap->buf;
- efa = commonVertMaps2[stack_iter]->face;
+ for(el_iter = vmap->vert[v2->tmp.l]; el_iter; el_iter = el_iter->next){
+ if(el_iter->flag & STITCH_STITCHABLE){
+ int index = el_iter - vmap->buf;
+ efa = el_iter->face;
- commonVertMaps2[stack_iter]->flag |= STITCH_STITCHABLE;
+ uv_average[index].count = uv_average[index2].count;
+ uv_average[index].uv[0] = uv_average[index2].uv[0];
+ uv_average[index].uv[1] = uv_average[index2].uv[1];
- uv_average[index2].count += uv_average_tmp[1].count;
- uv_average[index2].uv[0] += uv_average_tmp[1].uv[0];
- uv_average[index2].uv[1] += uv_average_tmp[1].uv[1];
- if(state->snapIslands){
- island_stitch_data[commonVertMaps2[stack_iter]->island].addedForPreview = 1;
+ if(state->snapIslands){
+ island_stitch_data[el_iter->island].addedForPreview = 1;
+ }
+ else {
+ stitch_update_face_preview_index(efa, preview);
+ }
}
- else {
- stitch_update_face_preview_index(efa, preview);
- }
}
}
MEM_freeN(commonVertMaps2);
More information about the Bf-blender-cvs
mailing list