Fix #106354: Account for hidden vertices in weight gradient operator
Weight gradient operator didn't respect hidden vertices. Now fixed. Pull Request: https://projects.blender.org/blender/blender/pulls/106417
This commit is contained in:
@@ -19,6 +19,7 @@
|
||||
#include "RNA_define.h"
|
||||
#include "RNA_enum_types.h"
|
||||
|
||||
#include "BKE_attribute.hh"
|
||||
#include "BKE_brush.h"
|
||||
#include "BKE_colortools.h"
|
||||
#include "BKE_context.h"
|
||||
@@ -593,6 +594,7 @@ struct WPGradient_userData {
|
||||
Mesh *me;
|
||||
MDeformVert *dvert;
|
||||
const bool *select_vert;
|
||||
blender::VArray<bool> hide_vert;
|
||||
Brush *brush;
|
||||
const float *sco_start; /* [2] */
|
||||
const float *sco_end; /* [2] */
|
||||
@@ -680,6 +682,10 @@ static void gradientVertUpdate__mapFunc(void *userData,
|
||||
return;
|
||||
}
|
||||
|
||||
if (grad_data->hide_vert[index]) {
|
||||
return;
|
||||
}
|
||||
|
||||
gradientVert_update(grad_data, index);
|
||||
}
|
||||
|
||||
@@ -818,12 +824,15 @@ static int paint_weight_gradient_exec(bContext *C, wmOperator *op)
|
||||
__func__));
|
||||
}
|
||||
|
||||
const blender::bke::AttributeAccessor attributes = me->attributes();
|
||||
|
||||
data.region = region;
|
||||
data.scene = scene;
|
||||
data.me = me;
|
||||
data.dvert = dverts;
|
||||
data.select_vert = (const bool *)CustomData_get_layer_named(
|
||||
&me->vdata, CD_PROP_BOOL, ".select_vert");
|
||||
data.hide_vert = attributes.lookup_or_default<bool>(".hide_vert", ATTR_DOMAIN_POINT, false);
|
||||
data.sco_start = sco_start;
|
||||
data.sco_end = sco_end;
|
||||
data.sco_line_div = 1.0f / len_v2v2(sco_start, sco_end);
|
||||
|
||||
Reference in New Issue
Block a user