Fix T75977: Lower the merge limit in the bisect/mirror operation in symmetrize

This operation is using the code of the mirror modifier, so no default
is guaranteed to work in all cases. This value matches the defaults of
the mirror modifier.

Reviewed By: jbakker

Maniphest Tasks: T75977

Differential Revision: https://developer.blender.org/D7495
This commit is contained in:
Pablo Dobarro 2020-05-19 00:12:05 +02:00
parent dfe8195dfe
commit aa02a05bc7
Notes: blender-bot 2023-02-14 11:20:29 +01:00
Referenced by issue #75977, Symmetrize on small objects destroys geometry
1 changed files with 12 additions and 2 deletions

View File

@ -7373,7 +7373,7 @@ static bool sculpt_no_multires_poll(bContext *C)
return false;
}
static int sculpt_symmetrize_exec(bContext *C, wmOperator *UNUSED(op))
static int sculpt_symmetrize_exec(bContext *C, wmOperator *op)
{
Object *ob = CTX_data_active_object(C);
const Sculpt *sd = CTX_data_tool_settings(C)->sculpt;
@ -7424,7 +7424,7 @@ static int sculpt_symmetrize_exec(bContext *C, wmOperator *UNUSED(op))
MirrorModifierData mmd = {{0}};
int axis = 0;
mmd.flag = 0;
mmd.tolerance = 0.005f;
mmd.tolerance = RNA_float_get(op->ptr, "merge_tolerance");
switch (sd->symmetrize_direction) {
case BMO_SYMMETRIZE_NEGATIVE_X:
axis = 0;
@ -7481,6 +7481,16 @@ static void SCULPT_OT_symmetrize(wmOperatorType *ot)
/* API callbacks. */
ot->exec = sculpt_symmetrize_exec;
ot->poll = sculpt_no_multires_poll;
RNA_def_float(ot->srna,
"merge_tolerance",
0.001f,
0.0f,
1.0f,
"Merge Limit",
"Distance within which symmetrical vertices are merged",
0.0f,
FLT_MAX);
}
/**** Toggle operator for turning sculpt mode on or off ****/