92 const int iterations = 2;
96 return brush_point_influence(
97 scene, brush, view_positions[point_], extension_sample, params.multi_frame_falloff);
103 bool changed =
false;
115 params.drawing.tag_positions_changed();
142 curves.tag_radii_changed();
168 return std::make_unique<SmoothOperation>(stroke_mode, temp_smooth);
Scene * CTX_data_scene(const bContext *C)
Main * CTX_data_main(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)
Brush * BKE_paint_brush_from_essentials(Main *bmain, eObjectMode obmode, const char *name)
@ GP_SCULPT_FLAGMODE_APPLY_UV
@ GP_SCULPT_FLAGMODE_APPLY_POSITION
@ GP_SCULPT_FLAGMODE_APPLY_THICKNESS
@ GP_SCULPT_FLAGMODE_APPLY_STRENGTH
#define GPENCIL_ANY_SCULPT_MASK(flag)
@ OB_MODE_SCULPT_GREASE_PENCIL
eGP_Sculpt_SelectMaskFlag
static VArray ForSpan(Span< T > values)
static VArray ForFunc(const int64_t size, GetFunc get_func)
GSpanAttributeWriter lookup_or_add_for_write_span(StringRef attribute_id, AttrDomain domain, eCustomDataType data_type, const AttributeInit &initializer=AttributeInitDefaultValue())
float2 prev_mouse_position
GreasePencilStrokeOperationCommon()
void stroke_extended(const InputSample &extension_sample)
void init_stroke(const bContext &C, const InputSample &start_sample)
float2 start_mouse_position
BrushStrokeMode stroke_mode
void foreach_editable_drawing(const bContext &C, FunctionRef< bool(const GreasePencilStrokeParams ¶ms)> fn) const
void on_stroke_done(const bContext &) override
void on_stroke_extended(const bContext &C, const InputSample &extension_sample) override
GreasePencilStrokeOperationCommon()
SmoothOperation(const BrushStrokeMode stroke_mode, const bool temp_smooth=false)
void on_stroke_begin(const bContext &C, const InputSample &start_sample) override
void init_brush(Brush &brush)
IndexMask point_selection_mask(const GreasePencilStrokeParams ¶ms, const bool use_masking, IndexMaskMemory &memory)
Array< float2 > calculate_view_positions(const GreasePencilStrokeParams ¶ms, const IndexMask &selection)
std::unique_ptr< CurvesSculptStrokeOperation > new_smooth_operation()
void smooth_curve_attribute(const IndexMask &curves_to_smooth, const OffsetIndices< int > points_by_curve, const VArray< bool > &point_selection, const VArray< bool > &cyclic, int iterations, float influence, bool smooth_ends, bool keep_shape, GMutableSpan attribute_data)
GPU_SHADER_INTERFACE_INFO(overlay_edit_curve_handle_iface, "vert").flat(Type pos vertex_in(1, Type::UINT, "data") .vertex_out(overlay_edit_curve_handle_iface) .geometry_layout(PrimitiveIn Frequency::GEOMETRY storage_buf(1, Qualifier::READ, "uint", "data[]", Frequency::GEOMETRY) .push_constant(Type Frequency::GEOMETRY selection[]
struct BrushGpencilSettings * gpencil_settings
struct ToolSettings * toolsettings
MutableVArraySpan< T > span