Revision: 51226
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=51226
Author:   genscher
Date:     2012-10-09 12:59:20 +0000 (Tue, 09 Oct 2012)
Log Message:
-----------
Bugfix [#32677] Cloth Pinning Does Not Obey Weight Map

Problem occured when having more than one weight map available.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/cloth.c

Modified: trunk/blender/source/blender/blenkernel/intern/cloth.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/cloth.c      2012-10-09 
12:41:37 UTC (rev 51225)
+++ trunk/blender/source/blender/blenkernel/intern/cloth.c      2012-10-09 
12:59:20 UTC (rev 51226)
@@ -773,11 +773,13 @@
                        else
                                verts->goal= 0.0f;
 
+                       /* Reset vertex flags */
+                       verts->flags &= ~CLOTH_VERT_FLAG_PINNED;
+                       verts->flags &= ~CLOTH_VERT_FLAG_NOSELFCOLL;
+
                        dvert = dm->getVertData ( dm, i, CD_MDEFORMVERT );
                        if ( dvert ) {
-
                                for ( j = 0; j < dvert->totweight; j++ ) {
-                                       verts->flags &= ~CLOTH_VERT_FLAG_PINNED;
                                        if (( dvert->dw[j].def_nr == 
(clmd->sim_parms->vgroup_mass-1)) && (clmd->sim_parms->flags & 
CLOTH_SIMSETTINGS_FLAG_GOAL )) {
                                                verts->goal = dvert->dw 
[j].weight;
 
@@ -789,7 +791,7 @@
                                                */
                                                
                                                verts->goal  = 
powf(verts->goal, 4.0f);
-                                               if ( verts->goal >=SOFTGOALSNAP 
)
+                                               if ( verts->goal >= 
SOFTGOALSNAP )
                                                         verts->flags |= 
CLOTH_VERT_FLAG_PINNED;
                                        }
                                        
@@ -804,7 +806,6 @@
                                                }
                                        }
 
-                                       verts->flags &= 
~CLOTH_VERT_FLAG_NOSELFCOLL;
                                        if (clmd->coll_parms->flags & 
CLOTH_COLLSETTINGS_FLAG_SELF ) {
                                                if ( dvert->dw[j].def_nr == 
(clmd->coll_parms->vgroup_selfcol-1)) {
                                                        if (dvert->dw 
[j].weight > 0.0f) {

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to