[Bf-blender-cvs] [1516d8d1d1d] soc-2017-normal-tools: Added point to origin and LMB click
Rohan Rathi
noreply at git.blender.org
Thu Jun 15 16:57:28 CEST 2017
Commit: 1516d8d1d1de3ec178c28e4146b470ae86332dd0
Author: Rohan Rathi
Date: Thu Jun 15 20:27:01 2017 +0530
Branches: soc-2017-normal-tools
https://developer.blender.org/rB1516d8d1d1de3ec178c28e4146b470ae86332dd0
Added point to origin and LMB click
===================================================================
M source/blender/editors/mesh/editmesh_tools.c
===================================================================
diff --git a/source/blender/editors/mesh/editmesh_tools.c b/source/blender/editors/mesh/editmesh_tools.c
index b16c27884f9..9d2fd2fa77b 100644
--- a/source/blender/editors/mesh/editmesh_tools.c
+++ b/source/blender/editors/mesh/editmesh_tools.c
@@ -5999,9 +5999,10 @@ static int init_point_normals(bContext *C, wmOperator *op, const wmEvent *event)
if (*vert_sel != -1) {
totloopsel = RNA_int_get(op->ptr, "loop_selected");
TransDataLoopNormal *tld = ld->normal = MEM_mallocN(sizeof(*tld) * totloopsel, "__func__");
+ int *vert_cur = vert_sel;
- for (int i = 0; i < length; i++, vert_sel++) {
- v = BM_vert_at_index_find_or_table(bm, *vert_sel);
+ for (int i = 0; i < length; i++, vert_cur++) {
+ v = BM_vert_at_index_find_or_table(bm, *vert_cur);
BM_ITER_ELEM(l, &liter, v, BM_LOOPS_OF_VERT) {
InitTransDataNormal(bm, tld, v, l, cd_custom_normal_offset);
@@ -6024,6 +6025,7 @@ static int init_point_normals(bContext *C, wmOperator *op, const wmEvent *event)
}
}
}
+ MEM_freeN(vert_sel);
ld->totloop = totloopsel;
ld->offset = cd_custom_normal_offset;
@@ -6095,7 +6097,7 @@ static int edbm_point_normals_modal(bContext *C, wmOperator *op, const wmEvent *
int i = 0;
bool handled = false;
- PropertyRNA *prop = RNA_struct_find_property(op->ptr, "Target Location");
+ PropertyRNA *prop = RNA_struct_find_property(op->ptr, "target_location");
if (ele_ref) {
BMElem *ele_new = BM_mesh_active_elem_get(bm);
@@ -6114,7 +6116,13 @@ static int edbm_point_normals_modal(bContext *C, wmOperator *op, const wmEvent *
if (event->val == KM_PRESS) {
BMVert *v;
BMIter viter;
-
+
+ if (event->type == LEFTMOUSE) {
+ ED_view3d_cursor3d_update(C, event->mval);
+ copy_v3_v3(target, ED_view3d_cursor3d_get(scene, v3d));
+ RNA_property_float_set_array(op->ptr, prop, target);
+ handled = true;
+ }
if (event->type == RIGHTMOUSE) {
ele_ref = BM_mesh_active_elem_get(bm);
int *vert_sel = MEM_mallocN(sizeof(*vert_sel) * bm->totvertsel, "__func_"), index;
@@ -6191,6 +6199,11 @@ static int edbm_point_normals_modal(bContext *C, wmOperator *op, const wmEvent *
}
handled = true;
}
+ else if (event->type == OKEY) {
+ copy_v3_v3(target, obedit->loc);
+ RNA_property_float_set_array(op->ptr, prop, target);
+ handled = true;
+ }
else if (ISKEYBOARD(event->type) && event->type != RIGHTALTKEY) {
point_normals_free(C, op);
return OPERATOR_CANCELLED;
@@ -6263,7 +6276,7 @@ static int edbm_point_normals_exec(bContext *C, wmOperator *op)
bool point_away = RNA_boolean_get(op->ptr, "point_away"), check_vert = RNA_boolean_get(op->ptr, "check_vert");
- prop = RNA_struct_find_property(op->ptr, "Target Location");
+ prop = RNA_struct_find_property(op->ptr, "target_location");
RNA_property_float_get_array(op->ptr, prop, target);
apply_point_normals(C, op, NULL, target, check_vert);
@@ -6294,8 +6307,9 @@ void MESH_OT_point_normals(struct wmOperatorType *ot)
PropertyRNA *prop;
- prop = RNA_def_property(ot->srna, "Target Location", PROP_FLOAT, PROP_XYZ);
+ prop = RNA_def_property(ot->srna, "target_location", PROP_FLOAT, PROP_XYZ);
RNA_def_property_array(prop, 3);
+ RNA_def_property_ui_text(prop, "Target Location", "Target location where normals will point");
prop = RNA_def_boolean(ot->srna, "check_vert", 0, "keep vert normal", "prevent vert normal from changing");
RNA_def_property_flag(prop, PROP_HIDDEN);
More information about the Bf-blender-cvs
mailing list