Fix using non-euler cursor orientation
authorCampbell Barton <ideasman42@gmail.com>
Thu, 16 May 2019 03:48:23 +0000 (13:48 +1000)
committerCampbell Barton <ideasman42@gmail.com>
Thu, 16 May 2019 03:50:00 +0000 (13:50 +1000)
Missed in 06fe2a5e0c5d6

release/scripts/modules/bpy_extras/object_utils.py
source/blender/editors/object/object_add.c

index 48cdbb4..3a751a7 100644 (file)
@@ -80,7 +80,8 @@ def add_object_align_init(context, operator):
             rotation.resize_4x4()
             properties.rotation = rotation.to_euler()
         elif properties.align == 'CURSOR':
-            rotation = context.scene.cursor.rotation_euler.to_matrix().to_4x4()
+            rotation = context.scene.cursor.matrix
+            rotation.col[3][0:3] = 0.0, 0.0, 0.0
             properties.rotation = rotation.to_euler()
         else:
             rotation = properties.rotation.to_matrix().to_4x4()
index f8760f9..3af0597 100644 (file)
@@ -435,7 +435,9 @@ bool ED_object_add_generic_get_opts(bContext *C,
         break;
       case ALIGN_CURSOR: {
         const Scene *scene = CTX_data_scene(C);
-        copy_v3_v3(rot, scene->cursor.rotation_euler);
+        float tmat[3][3];
+        BKE_scene_cursor_rot_to_mat3(&scene->cursor, tmat);
+        mat3_normalized_to_eul(rot, tmat);
         RNA_float_set_array(op->ptr, "rotation", rot);
         break;
       }