Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOve Murberg Henriksen <sorayasilvermoon@hotmail.com>2012-02-29 23:46:31 +0400
committerOve Murberg Henriksen <sorayasilvermoon@hotmail.com>2012-02-29 23:46:31 +0400
commit94a2775a14865ef699901afd41294b688e7211a5 (patch)
treeb19d6d93b20687c29522737c7085dae63d029464 /source/blender/editors
parentaf0a469307d5abe30d59c62c61d8bbc361bdf359 (diff)
M source/blender/editors/object/object_vgroup.c
M source/blender/editors/object/object_ops.c M source/blender/editors/object/object_intern.h
Diffstat (limited to 'source/blender/editors')
-rw-r--r--source/blender/editors/object/object_intern.h1
-rw-r--r--source/blender/editors/object/object_ops.c1
-rw-r--r--source/blender/editors/object/object_vgroup.c29
3 files changed, 31 insertions, 0 deletions
diff --git a/source/blender/editors/object/object_intern.h b/source/blender/editors/object/object_intern.h
index 526706b566d..b1c071ea2a0 100644
--- a/source/blender/editors/object/object_intern.h
+++ b/source/blender/editors/object/object_intern.h
@@ -200,6 +200,7 @@ void OBJECT_OT_vertex_group_copy_to_selected(struct wmOperatorType *ot);
void OBJECT_OT_vertex_group_copy(struct wmOperatorType *ot);
void OBJECT_OT_vertex_group_normalize(struct wmOperatorType *ot);
void OBJECT_OT_vertex_group_normalize_all(struct wmOperatorType *ot);
+void OBJECT_OT_vertex_group_transfer_weight(struct wmOperatorType *ot); /*cyborgmuppets experimental test */
void OBJECT_OT_vertex_group_levels(struct wmOperatorType *ot);
void OBJECT_OT_vertex_group_lock(struct wmOperatorType *ot);
void OBJECT_OT_vertex_group_fix(struct wmOperatorType *ot);
diff --git a/source/blender/editors/object/object_ops.c b/source/blender/editors/object/object_ops.c
index 542b75e1f19..550082d7554 100644
--- a/source/blender/editors/object/object_ops.c
+++ b/source/blender/editors/object/object_ops.c
@@ -173,6 +173,7 @@ void ED_operatortypes_object(void)
WM_operatortype_append(OBJECT_OT_vertex_group_copy);
WM_operatortype_append(OBJECT_OT_vertex_group_normalize);
WM_operatortype_append(OBJECT_OT_vertex_group_normalize_all);
+ WM_operatortype_append(OBJECT_OT_vertex_group_transfer_weight); /*cyborgmuppets experimental test*/
WM_operatortype_append(OBJECT_OT_vertex_group_lock);
WM_operatortype_append(OBJECT_OT_vertex_group_fix);
WM_operatortype_append(OBJECT_OT_vertex_group_invert);
diff --git a/source/blender/editors/object/object_vgroup.c b/source/blender/editors/object/object_vgroup.c
index c60041fe67b..f14177ae3a3 100644
--- a/source/blender/editors/object/object_vgroup.c
+++ b/source/blender/editors/object/object_vgroup.c
@@ -1176,6 +1176,8 @@ static void vgroup_normalize_all(Object *ob, int lock_active)
}
}
+static void vgroup_transfer_weight()
+{}
static void vgroup_lock_all(Object *ob, int action)
{
@@ -2367,6 +2369,33 @@ void OBJECT_OT_vertex_group_normalize_all(wmOperatorType *ot)
"Keep the values of the active group while normalizing others");
}
+static int vertex_group_transfer_weight_exec(bContext *C, wmOperator *op)
+{
+ Object *ob= ED_object_context(C);
+
+ vgroup_transfer_weight();
+
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
+ WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
+ WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob->data);
+
+ return OPERATOR_FINISHED;
+}
+
+void OBJECT_OT_vertex_group_transfer_weight(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Transfer Weight";
+ ot->idname= "OBJECT_OT_vertex_group_transfer_weight";
+
+ /* api callbacks */
+ ot->poll= vertex_group_poll;
+ ot->exec= vertex_group_transfer_weight_exec;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
static int vertex_group_fix_exec(bContext *C, wmOperator *op)
{
Object *ob= CTX_data_active_object(C);