[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [47051] branches/meshdata_transfer/source/ blender/editors/object/object_vgroup.c: bug fixes, review issue 6256058.

Ove Murberg Henriksen sorayasilvermoon at hotmail.com
Sat May 26 17:27:21 CEST 2012


Revision: 47051
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47051
Author:   cyborgmuppet
Date:     2012-05-26 15:27:21 +0000 (Sat, 26 May 2012)
Log Message:
-----------
bug fixes, review issue 6256058.

Modified Paths:
--------------
    branches/meshdata_transfer/source/blender/editors/object/object_vgroup.c

Modified: branches/meshdata_transfer/source/blender/editors/object/object_vgroup.c
===================================================================
--- branches/meshdata_transfer/source/blender/editors/object/object_vgroup.c	2012-05-26 14:53:33 UTC (rev 47050)
+++ branches/meshdata_transfer/source/blender/editors/object/object_vgroup.c	2012-05-26 15:27:21 UTC (rev 47051)
@@ -402,12 +402,15 @@
 
 		case REPLACE_ALL_WEIGHTS:
 			*weight_dst = weight_src;
+			break;
 
 		case REPLACE_EMPTY_WEIGHTS:
 			if (!weight_dst || weight_dst == 0) *weight_dst = weight_src;
+			break;
 
 		case REPLACE_SELECTED_WEIGHTS:
 			if (mv_dst->flag & SELECT) *weight_dst = weight_src;
+			break;
 	}
 }
 
@@ -426,7 +429,7 @@
 	float weight, tmp_weight[4], tmp_co[3], normal[3], tmp_mat[4][4], dist_v1, dist_v2, dist_v3, dist_v4;
 
 	/*create new and overwrite vertex group on destination without data*/
-	if (!defgroup_find_name(ob_dst, dg_src->name) || replace_option == (ReplaceOption)REPLACE_ALL_WEIGHTS){
+	if (!defgroup_find_name(ob_dst, dg_src->name) || replace_option == REPLACE_ALL_WEIGHTS){
 		ED_vgroup_delete(ob_dst, defgroup_find_name(ob_dst, dg_src->name));
 		ED_vgroup_add_name(ob_dst, dg_src->name);
 	}
@@ -543,7 +546,9 @@
 				weight = tmp_weight[0] * defvert_verify_index(dv_array_src[mface_src[index_nearest].v1], index_src)->weight;
 				weight += tmp_weight[1] * defvert_verify_index(dv_array_src[mface_src[index_nearest].v2], index_src)->weight;
 				weight += tmp_weight[2] * defvert_verify_index(dv_array_src[mface_src[index_nearest].v3], index_src)->weight;
-				weight += tmp_weight[3] * defvert_verify_index(dv_array_src[mface_src[index_nearest].v4], index_src)->weight;
+				if (mface_src[index_nearest].v4 || mface_src[index_nearest].v4 == 0){
+					weight += tmp_weight[3] * defvert_verify_index(dv_array_src[mface_src[index_nearest].v4], index_src)->weight;
+				}
 
 				/*copy weight*/
 				dw_dst = defvert_verify_index(*dv_array_dst, index_dst);
@@ -3020,8 +3025,9 @@
 				case REPLACE_ALL_VERTEX_GROUPS:
 					for (dg_src = ob_act->defbase.first; dg_src; dg_src = dg_src->next){
 						if (ED_vgroup_transfer_weight(ob_slc, ob_act, dg_src, method_option, replace_option)) change++;
-						else fail++;break;
+						else fail++;
 					}
+					break;
 			}
 		}
 	}




More information about the Bf-blender-cvs mailing list