Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/sculpt_paint/curves_sculpt_add.cc
| Show First 20 Lines • Show All 235 Lines • ▼ Show 20 Lines | void execute(AddOperation &self, const bContext &C, const StrokeExtension &stroke_extension) | ||||
| if (add_inputs.interpolate_length || add_inputs.interpolate_shape || | if (add_inputs.interpolate_length || add_inputs.interpolate_shape || | ||||
| add_inputs.interpolate_point_count) { | add_inputs.interpolate_point_count) { | ||||
| this->ensure_curve_roots_kdtree(); | this->ensure_curve_roots_kdtree(); | ||||
| add_inputs.old_roots_kdtree = self_->curve_roots_kdtree_; | add_inputs.old_roots_kdtree = self_->curve_roots_kdtree_; | ||||
| } | } | ||||
| const geometry::AddCurvesOnMeshOutputs add_outputs = geometry::add_curves_on_mesh( | const geometry::AddCurvesOnMeshOutputs add_outputs = geometry::add_curves_on_mesh( | ||||
| *curves_orig_, add_inputs); | *curves_orig_, add_inputs); | ||||
| bke::MutableAttributeAccessor attributes = curves_orig_->attributes_for_write(); | |||||
| if (bke::GSpanAttributeWriter selection = attributes.lookup_for_write_span(".selection")) { | |||||
| curves::fill_selection_true(selection.span.slice(selection.domain == ATTR_DOMAIN_POINT ? | |||||
| add_outputs.new_points_range : | |||||
| add_outputs.new_curves_range)); | |||||
| selection.finish(); | |||||
| } | |||||
| if (add_outputs.uv_error) { | if (add_outputs.uv_error) { | ||||
| report_invalid_uv_map(stroke_extension.reports); | report_invalid_uv_map(stroke_extension.reports); | ||||
| } | } | ||||
| DEG_id_tag_update(&curves_id_orig_->id, ID_RECALC_GEOMETRY); | DEG_id_tag_update(&curves_id_orig_->id, ID_RECALC_GEOMETRY); | ||||
| WM_main_add_notifier(NC_GEOM | ND_DATA, &curves_id_orig_->id); | WM_main_add_notifier(NC_GEOM | ND_DATA, &curves_id_orig_->id); | ||||
| ED_region_tag_redraw(ctx_.region); | ED_region_tag_redraw(ctx_.region); | ||||
| ▲ Show 20 Lines • Show All 261 Lines • Show Last 20 Lines | |||||