diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-10-01 09:43:49 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-10-01 09:45:57 +0300 |
commit | c06333d77bf085c177ed78282e6b9f010295aef6 (patch) | |
tree | 198310c223455bd103f8888bcbd92a8f50914eae /source/blender/editors/curve/editcurve.c | |
parent | 5fca5c8065fc611961d6507bc468494ba358a224 (diff) |
Object Join: use 'selected_editable_objects'
Was using 'selected_editable_bases', which used to save a lookup.
This is no longer the case and complicates access from Python
which cant yet easily access Bases.
Diffstat (limited to 'source/blender/editors/curve/editcurve.c')
-rw-r--r-- | source/blender/editors/curve/editcurve.c | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/source/blender/editors/curve/editcurve.c b/source/blender/editors/curve/editcurve.c index 9154d72f493..cdd59203cd6 100644 --- a/source/blender/editors/curve/editcurve.c +++ b/source/blender/editors/curve/editcurve.c @@ -6084,7 +6084,7 @@ int join_curve_exec(bContext *C, wmOperator *op) { Main *bmain = CTX_data_main(C); Scene *scene = CTX_data_scene(C); - Object *ob = CTX_data_active_object(C); + Object *ob_active = CTX_data_active_object(C); Curve *cu; Nurb *nu, *newnu; BezTriple *bezt; @@ -6094,9 +6094,9 @@ int join_curve_exec(bContext *C, wmOperator *op) int a; bool ok = false; - CTX_DATA_BEGIN(C, Base *, base, selected_editable_bases) + CTX_DATA_BEGIN(C, Object *, ob_iter, selected_editable_objects) { - if (base->object == ob) { + if (ob_iter == ob_active) { ok = true; break; } @@ -6112,24 +6112,24 @@ int join_curve_exec(bContext *C, wmOperator *op) BLI_listbase_clear(&tempbase); /* trasnform all selected curves inverse in obact */ - invert_m4_m4(imat, ob->obmat); + invert_m4_m4(imat, ob_active->obmat); - CTX_DATA_BEGIN(C, Base *, base, selected_editable_bases) + CTX_DATA_BEGIN(C, Object *, ob_iter, selected_editable_objects) { - if (base->object->type == ob->type) { - if (base->object != ob) { + if (ob_iter->type == ob_active->type) { + if (ob_iter != ob_active) { - cu = base->object->data; + cu = ob_iter->data; if (cu->nurb.first) { /* watch it: switch order here really goes wrong */ - mul_m4_m4m4(cmat, imat, base->object->obmat); + mul_m4_m4m4(cmat, imat, ob_iter->obmat); nu = cu->nurb.first; while (nu) { newnu = BKE_nurb_duplicate(nu); - if (ob->totcol) { /* TODO, merge material lists */ - CLAMP(newnu->mat_nr, 0, ob->totcol - 1); + if (ob_active->totcol) { /* TODO, merge material lists */ + CLAMP(newnu->mat_nr, 0, ob_active->totcol - 1); } else { newnu->mat_nr = 0; @@ -6157,23 +6157,23 @@ int join_curve_exec(bContext *C, wmOperator *op) } } - ED_object_base_free_and_unlink(bmain, scene, base->object); + ED_object_base_free_and_unlink(bmain, scene, ob_iter); } } } CTX_DATA_END; - cu = ob->data; + cu = ob_active->data; BLI_movelisttolist(&cu->nurb, &tempbase); - if (ob->type == OB_CURVE) { + if (ob_active->type == OB_CURVE) { /* Account for mixed 2D/3D curves when joining */ BKE_curve_curve_dimension_update(cu); } DEG_relations_tag_update(bmain); // because we removed object(s), call before editmode! - DEG_id_tag_update(&ob->id, OB_RECALC_OB | OB_RECALC_DATA); + DEG_id_tag_update(&ob_active->id, OB_RECALC_OB | OB_RECALC_DATA); DEG_id_tag_update(&scene->id, DEG_TAG_SELECT_UPDATE); WM_event_add_notifier(C, NC_SCENE | ND_OB_ACTIVE, scene); |