37 const float radius_squared = radius * radius;
45 params, use_selection_masking, memory);
50 params, use_selection_masking, memory);
55 const IndexRange points = points_by_curve[curve];
57 float3 average_color(0.0f);
59 for (
const int point : points) {
62 view_positions[point]);
69 if (color_count == 0) {
72 average_color = average_color / color_count;
73 const ColorGeometry4f mix_color(average_color.x, average_color.y, average_color.z, 1.0f);
75 for (
const int point : points) {
77 paint, brush, view_positions[point], extension_sample,
params.multi_frame_falloff);
79 if (
color.a > 0.0f && influence > 0.0f) {
92 return std::make_unique<VertexBlurOperation>();
Scene * CTX_data_scene(const bContext *C)
Low-level operations for curves.
Low-level operations for grease pencil.
Paint * BKE_paint_get_active_from_context(const bContext *C)
Brush * BKE_paint_brush(Paint *paint)
GreasePencilStrokeOperationCommon()=default
void init_stroke(const bContext &C, const InputSample &start_sample)
void foreach_editable_drawing(const bContext &C, FunctionRef< bool(const GreasePencilStrokeParams ¶ms, const DeltaProjectionFunc &projection_fn)> fn) const
void on_stroke_begin(const bContext &C, const InputSample &start_sample) override
void on_stroke_extended(const bContext &C, const InputSample &extension_sample) override
void on_stroke_done(const bContext &C) override
void foreach_index(Fn &&fn) const
float distance(VecOp< float, D >, VecOp< float, D >) RET
bool ED_grease_pencil_any_vertex_mask_selection(const ToolSettings *tool_settings)
IndexMask curve_mask_for_stroke_operation(const GreasePencilStrokeParams ¶ms, bool use_selection_masking, IndexMaskMemory &memory)
IndexMask point_mask_for_stroke_operation(const GreasePencilStrokeParams ¶ms, bool use_selection_masking, IndexMaskMemory &memory)
float brush_point_influence(const Paint &paint, const Brush &brush, const float2 &co, const InputSample &sample, float multi_frame_falloff)
Array< float2 > calculate_view_positions(const GreasePencilStrokeParams ¶ms, const IndexMask &selection)
std::unique_ptr< GreasePencilStrokeOperation > new_vertex_blur_operation()
float brush_radius(const Paint &paint, const Brush &brush, float pressure)
T interpolate(const T &a, const T &b, const FactorT &t)
T distance_squared(const VecBase< T, Size > &a, const VecBase< T, Size > &b)
ColorSceneLinear4f< eAlpha::Premultiplied > ColorGeometry4f
VecBase< float, 3 > float3
struct ToolSettings * toolsettings