GPv3: Opacity modifier #116946
|
@ -52,7 +52,7 @@ static void init_data(ModifierData *md)
|
|||
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(omd, modifier));
|
||||
|
||||
MEMCPY_STRUCT_AFTER(omd, DNA_struct_default_get(GreasePencilOpacityModifierData), modifier);
|
||||
greasepencil::init_influence_data(&omd->influence, true);
|
||||
modifier::greasepencil::init_influence_data(&omd->influence, true);
|
||||
}
|
||||
|
||||
static void copy_data(const ModifierData *md, ModifierData *target, const int flag)
|
||||
|
@ -62,22 +62,22 @@ static void copy_data(const ModifierData *md, ModifierData *target, const int fl
|
|||
GreasePencilOpacityModifierData *tomd = reinterpret_cast<GreasePencilOpacityModifierData *>(
|
||||
target);
|
||||
|
||||
greasepencil::free_influence_data(&tomd->influence);
|
||||
modifier::greasepencil::free_influence_data(&tomd->influence);
|
||||
|
||||
BKE_modifier_copydata_generic(md, target, flag);
|
||||
greasepencil::copy_influence_data(&omd->influence, &tomd->influence, flag);
|
||||
modifier::greasepencil::copy_influence_data(&omd->influence, &tomd->influence, flag);
|
||||
}
|
||||
|
||||
static void free_data(ModifierData *md)
|
||||
{
|
||||
GreasePencilOpacityModifierData *omd = reinterpret_cast<GreasePencilOpacityModifierData *>(md);
|
||||
greasepencil::free_influence_data(&omd->influence);
|
||||
modifier::greasepencil::free_influence_data(&omd->influence);
|
||||
}
|
||||
|
||||
static void foreach_ID_link(ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data)
|
||||
{
|
||||
GreasePencilOpacityModifierData *omd = reinterpret_cast<GreasePencilOpacityModifierData *>(md);
|
||||
greasepencil::foreach_influence_ID_link(&omd->influence, ob, walk, user_data);
|
||||
modifier::greasepencil::foreach_influence_ID_link(&omd->influence, ob, walk, user_data);
|
||||
}
|
||||
|
||||
static void modify_stroke_color(const GreasePencilOpacityModifierData &omd,
|
||||
LukasTonne marked this conversation as resolved
|
||||
|
@ -195,7 +195,7 @@ static void modify_curves(ModifierData *md,
|
|||
GreasePencilOpacityModifierData *omd = reinterpret_cast<GreasePencilOpacityModifierData *>(md);
|
||||
|
||||
IndexMaskMemory mask_memory;
|
||||
IndexMask curves_mask = greasepencil::get_filtered_stroke_mask(
|
||||
IndexMask curves_mask = modifier::greasepencil::get_filtered_stroke_mask(
|
||||
ctx->object, curves, omd->influence, mask_memory);
|
||||
|
||||
switch (omd->color_mode) {
|
||||
LukasTonne marked this conversation as resolved
Hans Goudey
commented
C++ style casts (elsewhere in this file too) C++ style casts (elsewhere in this file too)
|
||||
|
@ -229,9 +229,9 @@ static void modify_geometry_set(ModifierData *md,
|
|||
}
|
||||
|
||||
IndexMaskMemory mask_memory;
|
||||
IndexMask layer_mask = greasepencil::get_filtered_layer_mask(
|
||||
IndexMask layer_mask = modifier::greasepencil::get_filtered_layer_mask(
|
||||
*grease_pencil, omd->influence, mask_memory);
|
||||
Vector<Drawing *> drawings = greasepencil::get_drawings_for_write(
|
||||
Vector<Drawing *> drawings = modifier::greasepencil::get_drawings_for_write(
|
||||
*grease_pencil, layer_mask, frame);
|
||||
for (Drawing *drawing : drawings) {
|
||||
modify_curves(md, ctx, drawing->strokes_for_write());
|
||||
|
@ -275,10 +275,10 @@ static void panel_draw(const bContext *C, Panel *panel)
|
|||
if (uiLayout *influence_panel = uiLayoutPanel(
|
||||
C, layout, "Influence", ptr, "open_influence_panel"))
|
||||
{
|
||||
greasepencil::draw_layer_filter_settings(C, influence_panel, ptr);
|
||||
greasepencil::draw_material_filter_settings(C, influence_panel, ptr);
|
||||
greasepencil::draw_vertex_group_settings(C, influence_panel, ptr);
|
||||
greasepencil::draw_custom_curve_settings(C, influence_panel, ptr);
|
||||
modifier::greasepencil::draw_layer_filter_settings(C, influence_panel, ptr);
|
||||
modifier::greasepencil::draw_material_filter_settings(C, influence_panel, ptr);
|
||||
modifier::greasepencil::draw_vertex_group_settings(C, influence_panel, ptr);
|
||||
modifier::greasepencil::draw_custom_curve_settings(C, influence_panel, ptr);
|
||||
}
|
||||
|
||||
modifier_panel_end(layout, ptr);
|
||||
|
@ -295,14 +295,14 @@ static void blend_write(BlendWriter *writer, const ID * /*id_owner*/, const Modi
|
|||
reinterpret_cast<const GreasePencilOpacityModifierData *>(md);
|
||||
|
||||
BLO_write_struct(writer, GreasePencilOpacityModifierData, omd);
|
||||
greasepencil::write_influence_data(writer, &omd->influence);
|
||||
modifier::greasepencil::write_influence_data(writer, &omd->influence);
|
||||
}
|
||||
|
||||
static void blend_read(BlendDataReader *reader, ModifierData *md)
|
||||
{
|
||||
GreasePencilOpacityModifierData *omd = reinterpret_cast<GreasePencilOpacityModifierData *>(md);
|
||||
|
||||
greasepencil::read_influence_data(reader, &omd->influence);
|
||||
modifier::greasepencil::read_influence_data(reader, &omd->influence);
|
||||
}
|
||||
|
||||
} // namespace blender
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
|
||||
#include "UI_interface.hh"
|
||||
|
||||
namespace blender::greasepencil {
|
||||
namespace blender::modifier::greasepencil {
|
||||
|
||||
using bke::greasepencil::Drawing;
|
||||
using bke::greasepencil::Layer;
|
||||
|
@ -332,4 +332,4 @@ Vector<bke::greasepencil::Drawing *> get_drawings_for_write(GreasePencil &grease
|
|||
return drawings;
|
||||
}
|
||||
|
||||
} // namespace blender::greasepencil
|
||||
} // namespace blender::modifier::greasepencil
|
||||
|
|
|
@ -29,7 +29,7 @@ class Drawing;
|
|||
}
|
||||
} // namespace blender::bke
|
||||
|
||||
namespace blender::greasepencil {
|
||||
namespace blender::modifier::greasepencil {
|
||||
|
||||
void init_influence_data(GreasePencilModifierInfluenceData *influence_data, bool has_custom_curve);
|
||||
void copy_influence_data(const GreasePencilModifierInfluenceData *influence_data_src,
|
||||
|
@ -63,4 +63,4 @@ Vector<bke::greasepencil::Drawing *> get_drawings_for_write(GreasePencil &grease
|
|||
const IndexMask &layer_mask,
|
||||
int frame);
|
||||
|
||||
} // namespace blender::greasepencil
|
||||
} // namespace blender::modifier::greasepencil
|
||||
|
|
Loading…
Reference in New Issue
You should just be able to retrieve the vertex group as an attribute
Took some explaining from @filedescriptor how this works (maybe a good topic for technical docs?). As far as i understand the
VArray
wrapper for thecurves->deform_verts()
is ok here, since we're only using a single vertex group. For something like the armature modifier i'd guess we still want to use theMDeformVert
directly.Right, exactly