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:
authorCampbell Barton <ideasman42@gmail.com>2013-04-25 20:14:04 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-04-25 20:14:04 +0400
commitfaeeb4b3aa07de24519ddc486c84f293a5378118 (patch)
tree6ba4188e44404f53c6484c5d3a71dae059a9de95
parent656213e6b2fb9adea9db8d7b08148301c0ffde76 (diff)
individual inset was missing relative option.
-rw-r--r--source/blender/bmesh/intern/bmesh_opdefines.c1
-rw-r--r--source/blender/bmesh/operators/bmo_inset.c5
-rw-r--r--source/blender/editors/mesh/editmesh_inset.c6
3 files changed, 10 insertions, 2 deletions
diff --git a/source/blender/bmesh/intern/bmesh_opdefines.c b/source/blender/bmesh/intern/bmesh_opdefines.c
index 4ce56e23aec..09c053ff937 100644
--- a/source/blender/bmesh/intern/bmesh_opdefines.c
+++ b/source/blender/bmesh/intern/bmesh_opdefines.c
@@ -1512,6 +1512,7 @@ static BMOpDefine bmo_inset_individual_def = {
{"depth", BMO_OP_SLOT_FLT},
{"use_even_offset", BMO_OP_SLOT_BOOL},
{"use_interpolate", BMO_OP_SLOT_BOOL},
+ {"use_relative_offset", BMO_OP_SLOT_BOOL},
{{'\0'}},
},
/* slots_out */
diff --git a/source/blender/bmesh/operators/bmo_inset.c b/source/blender/bmesh/operators/bmo_inset.c
index 2324360291d..97444a50438 100644
--- a/source/blender/bmesh/operators/bmo_inset.c
+++ b/source/blender/bmesh/operators/bmo_inset.c
@@ -76,6 +76,7 @@ void bmo_inset_individual_exec(BMesh *bm, BMOperator *op)
const float thickness = BMO_slot_float_get(op->slots_in, "thickness");
const float depth = BMO_slot_float_get(op->slots_in, "depth");
const bool use_even_offset = BMO_slot_bool_get(op->slots_in, "use_even_offset");
+ const bool use_relative_offset = BMO_slot_bool_get(op->slots_in, "use_relative_offset");
const bool use_interpolate = BMO_slot_bool_get(op->slots_in, "use_interpolate");
/* Only tag faces in slot */
@@ -146,6 +147,10 @@ void bmo_inset_individual_exec(BMesh *bm, BMOperator *op)
}
/* Modify vertices and their normals */
+ if (use_relative_offset) {
+ mul_v3_fl(tvec, (BM_edge_calc_length(l_iter->e) + BM_edge_calc_length(l_iter->prev->e)) / 2.0f);
+ }
+
madd_v3_v3fl(v_new_co, tvec, thickness);
/* Set normal, add depth and write new vertex position*/
diff --git a/source/blender/editors/mesh/editmesh_inset.c b/source/blender/editors/mesh/editmesh_inset.c
index 43c197a7b26..ef1767de3bd 100644
--- a/source/blender/editors/mesh/editmesh_inset.c
+++ b/source/blender/editors/mesh/editmesh_inset.c
@@ -208,8 +208,10 @@ static bool edbm_inset_calc(wmOperator *op)
if (use_individual) {
EDBM_op_init(em, &bmop, op,
- "inset_individual faces=%hf thickness=%f depth=%f use_even_offset=%b use_interpolate=%b",
- BM_ELEM_SELECT, thickness, depth, use_even_offset, use_interpolate);
+ "inset_individual faces=%hf use_even_offset=%b use_relative_offset=%b"
+ "use_interpolate=%b thickness=%f depth=%f",
+ BM_ELEM_SELECT, use_even_offset, use_relative_offset, use_interpolate,
+ thickness, depth);
}
else {
EDBM_op_init(em, &bmop, op,