[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [37976] branches/soc-2011-onion/source/ blender/editors/uvedit/uvedit_ops.c: smart stitch - edge stitch complete.
Antony Riakiotakis
kalast at gmail.com
Thu Jun 30 05:35:57 CEST 2011
Revision: 37976
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=37976
Author: psy-fi
Date: 2011-06-30 03:35:53 +0000 (Thu, 30 Jun 2011)
Log Message:
-----------
smart stitch - edge stitch complete. N'joy :)
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-06-30 03:21:49 UTC (rev 37975)
+++ branches/soc-2011-onion/source/blender/editors/uvedit/uvedit_ops.c 2011-06-30 03:35:53 UTC (rev 37976)
@@ -1425,7 +1425,7 @@
/* Find the uv element for the other uv too */
for(el_iter2 = vmap->vert[v2->tmp.l]; el_iter2; el_iter2 = el_iter2->next){
if(el_iter2->separate)
- el_sep2 = el_iter;
+ el_sep2 = el_iter2;
if(el_iter2->face == efa){
element2 = el_iter2;
break;
@@ -1538,24 +1538,60 @@
}
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];
+ UvElement *tmp_iter;
+ int index_tmp;
- 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];
+ //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];
- if(editFace->tmp.l == -1)
- {
- if(editFace->v4)
+ //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 coincident uv's with initial */
+ for(tmp_iter = el_sep1; tmp_iter; tmp_iter = tmp_iter->next){
+ if(tmp_iter->separate && tmp_iter != el_sep1)
+ break;
+ tmp_iter->flag |= STITCH_STITCHABLE;
+ efa = tmp_iter->face;
+ index_tmp = tmp_iter - vmap->buf;
+ uv_average[index_tmp].count += uv_average_tmp[0].count;
+ uv_average[index_tmp].uv[0] += uv_average_tmp[0].uv[0];
+ uv_average[index_tmp].uv[1] += uv_average_tmp[0].uv[1];
+
+ if(efa->tmp.l == -1)
{
- editFace->tmp.l = preview->numOfQuads*8;
- preview->numOfQuads++;
+ if(efa->v4)
+ {
+ efa->tmp.l = preview->numOfQuads*8;
+ preview->numOfQuads++;
+ } else {
+ efa->tmp.l = preview->numOfTris*6;
+ preview->numOfTris++;
+ }
}
- else {
- editFace->tmp.l = preview->numOfTris*6;
- preview->numOfTris++;
+ }
+ for(tmp_iter = el_sep2; tmp_iter; tmp_iter = tmp_iter->next){
+ if(tmp_iter->separate && tmp_iter != el_sep2)
+ break;
+ efa = tmp_iter->face;
+ tmp_iter->flag |= STITCH_STITCHABLE;
+ index_tmp = tmp_iter - vmap->buf;
+ uv_average[index_tmp].count += uv_average_tmp[1].count;
+ uv_average[index_tmp].uv[0] += uv_average_tmp[1].uv[0];
+ uv_average[index_tmp].uv[1] += uv_average_tmp[1].uv[1];
+
+ if(efa->tmp.l == -1)
+ {
+ if(efa->v4)
+ {
+ efa->tmp.l = preview->numOfQuads*8;
+ preview->numOfQuads++;
+ } else {
+ efa->tmp.l = preview->numOfTris*6;
+ preview->numOfTris++;
+ }
}
}
More information about the Bf-blender-cvs
mailing list