[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [48065] branches/meshdata_transfer/source/ blender/editors/object/object_vgroup.c: Error reporting added.

Ove Murberg Henriksen sorayasilvermoon at hotmail.com
Tue Jun 19 04:23:38 CEST 2012


Revision: 48065
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=48065
Author:   cyborgmuppet
Date:     2012-06-19 02:23:31 +0000 (Tue, 19 Jun 2012)
Log Message:
-----------
Error reporting added. 
Note that when changing to optional methods that fails, it fails silently still.
Might have to adress this.

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-06-19 02:01:51 UTC (rev 48064)
+++ branches/meshdata_transfer/source/blender/editors/object/object_vgroup.c	2012-06-19 02:23:31 UTC (rev 48065)
@@ -436,7 +436,7 @@
 }
 
 int ED_vgroup_transfer_weight(Object *ob_dst, Object *ob_src, bDeformGroup *dg_src, Scene *scene,
-                              MethodMode method_mode, ReplaceMode replace_mode)
+                              MethodMode method_mode, ReplaceMode replace_mode, wmOperator *op)
 {
 	bDeformGroup *dg_dst;
 	Mesh *me_dst, *me_src;
@@ -466,7 +466,7 @@
 
 	/* sanity check */
 	if (!me_src->dvert) {
-		/*todo fix!***********************************************************************************************/
+		BKE_reportf(op->reports, RPT_ERROR, "Transfer failed. Source mesh does not have vertices");
 		return 0;
 	}
 
@@ -500,7 +500,7 @@
 				if (dv_array_src) MEM_freeN(dv_array_src);
 				if (dv_array_dst) MEM_freeN(dv_array_dst);
 				dmesh_src->release(dmesh_src);
-				/*todo: fix********************************************************************************************/
+				BKE_reportf(op->reports, RPT_ERROR, "Transfer failed. Indices are not matching");
 				return 0;
 			}
 
@@ -3062,6 +3062,7 @@
 	Scene *scene = CTX_data_scene(C);
 	Object *ob_act = CTX_data_active_object(C);
 	bDeformGroup *dg_src;
+	int fail = 0;
 
 	VertexGroupMode vertex_group_mode = RNA_enum_get(op->ptr, "vertex_group_mode");
 	MethodMode method_mode = RNA_enum_get(op->ptr, "method_mode");
@@ -3075,12 +3076,14 @@
 			switch (vertex_group_mode) {
 
 				case REPLACE_ACTIVE_VERTEX_GROUP:
-					ED_vgroup_transfer_weight(ob_act, ob_slc, BLI_findlink(&ob_slc->defbase, ob_slc->actdef - 1), scene, method_mode, replace_mode);
+					if (!ED_vgroup_transfer_weight(
+					        ob_act, ob_slc, BLI_findlink(&ob_slc->defbase, ob_slc->actdef - 1), scene, method_mode, replace_mode, op)) fail++;
 					break;
 
 				case REPLACE_ALL_VERTEX_GROUPS:
 					for (dg_src = ob_slc->defbase.first; dg_src; dg_src = dg_src->next) {
-						ED_vgroup_transfer_weight(ob_act, ob_slc, dg_src, scene, method_mode, replace_mode);
+						if (!ED_vgroup_transfer_weight(
+						        ob_act, ob_slc, dg_src, scene, method_mode, replace_mode, op)) fail++;
 					}
 					break;
 			}
@@ -3094,6 +3097,7 @@
 
 	CTX_DATA_END;
 
+	if (fail != 0) return OPERATOR_CANCELLED;
 	return OPERATOR_FINISHED;
 }
 




More information about the Bf-blender-cvs mailing list