Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2021-07-13 06:01:28 +0300
committerJeroen Bakker <jeroen@blender.org>2021-07-26 10:55:53 +0300
commitb2f2daf21f787260bf43e3efe9e5a1893d63ceea (patch)
tree166a9462872720ef639582b48593760c8d9fa26d
parent1a1510a3a0853abafecf22b698bf488305f88dda (diff)
Fix object "Set Origin" operating on linked library data
Regression in d25747ee751096de2e417a7da1316bf5bf81c25a
-rw-r--r--source/blender/editors/object/object_transform.c47
1 files changed, 24 insertions, 23 deletions
diff --git a/source/blender/editors/object/object_transform.c b/source/blender/editors/object/object_transform.c
index 62a8b46e904..170ee78a25e 100644
--- a/source/blender/editors/object/object_transform.c
+++ b/source/blender/editors/object/object_transform.c
@@ -1198,32 +1198,33 @@ static int object_origin_set_exec(bContext *C, wmOperator *op)
else if (ID_IS_LINKED(ob->data)) {
tot_lib_error++;
}
+ else if (ob->type == OB_MESH) {
+ if (obedit == NULL) {
+ Mesh *me = ob->data;
- if (obedit == NULL && ob->type == OB_MESH) {
- Mesh *me = ob->data;
-
- if (centermode == ORIGIN_TO_CURSOR) {
- /* done */
- }
- else if (centermode == ORIGIN_TO_CENTER_OF_MASS_SURFACE) {
- BKE_mesh_center_of_surface(me, cent);
- }
- else if (centermode == ORIGIN_TO_CENTER_OF_MASS_VOLUME) {
- BKE_mesh_center_of_volume(me, cent);
- }
- else if (around == V3D_AROUND_CENTER_MEDIAN) {
- BKE_mesh_center_median(me, cent);
- }
- else {
- BKE_mesh_center_bounds(me, cent);
- }
+ if (centermode == ORIGIN_TO_CURSOR) {
+ /* done */
+ }
+ else if (centermode == ORIGIN_TO_CENTER_OF_MASS_SURFACE) {
+ BKE_mesh_center_of_surface(me, cent);
+ }
+ else if (centermode == ORIGIN_TO_CENTER_OF_MASS_VOLUME) {
+ BKE_mesh_center_of_volume(me, cent);
+ }
+ else if (around == V3D_AROUND_CENTER_BOUNDS) {
+ BKE_mesh_center_bounds(me, cent);
+ }
+ else { /* #V3D_AROUND_CENTER_MEDIAN. */
+ BKE_mesh_center_median(me, cent);
+ }
- negate_v3_v3(cent_neg, cent);
- BKE_mesh_translate(me, cent_neg, 1);
+ negate_v3_v3(cent_neg, cent);
+ BKE_mesh_translate(me, cent_neg, 1);
- tot_change++;
- me->id.tag |= LIB_TAG_DOIT;
- do_inverse_offset = true;
+ tot_change++;
+ me->id.tag |= LIB_TAG_DOIT;
+ do_inverse_offset = true;
+ }
}
else if (ELEM(ob->type, OB_CURVE, OB_SURF)) {
Curve *cu = ob->data;