Fix T91511: GPencil weight_get and Vertex Groups not working at expected
The API was checking the number of total weights with the first point of the stroke and this was not valid because each point can have different number of weight elemnts,
This commit is contained in:
parent
738f1dbeff
commit
1f51672d71
Notes:
blender-bot
2023-02-14 07:39:46 +01:00
Referenced by issue #88449: Blender LTS: Maintenance Task 2.93 Referenced by issue #88449, Blender LTS: Maintenance Task 2.93 Referenced by issue #91511, GPencil: Scripting weight_get and Vertex Groups not working at expected with several groups
|
@ -843,17 +843,17 @@ static float rna_GPencilStrokePoints_weight_get(bGPDstroke *stroke,
|
|||
return -1.0f;
|
||||
}
|
||||
|
||||
if (dvert->totweight <= vertex_group_index || vertex_group_index < 0) {
|
||||
BKE_report(reports, RPT_ERROR, "Groups: index out of range");
|
||||
return -1.0f;
|
||||
}
|
||||
|
||||
if (stroke->totpoints <= point_index || point_index < 0) {
|
||||
BKE_report(reports, RPT_ERROR, "GPencilStrokePoints: index out of range");
|
||||
return -1.0f;
|
||||
}
|
||||
|
||||
MDeformVert *pt_dvert = stroke->dvert + point_index;
|
||||
if ((pt_dvert) && (pt_dvert->totweight <= vertex_group_index || vertex_group_index < 0)) {
|
||||
BKE_report(reports, RPT_ERROR, "Groups: index out of range");
|
||||
return -1.0f;
|
||||
}
|
||||
|
||||
MDeformWeight *dw = BKE_defvert_find_index(pt_dvert, vertex_group_index);
|
||||
if (dw) {
|
||||
return dw->weight;
|
||||
|
|
Loading…
Reference in New Issue