since we now have a 3D cursor in Blender 2.8, considering rotation when snapping seems reasonable. However, the behavior of Snap Selected To 3D Cursor can be implemented in different ways, so which one of the following possibilities do you prefer?
- Option 1: Add cursor rotation to rotation of selected object
- Option 2: Copy cursor rotation to object rotation.
This is an example:
In option 1, the cube’s x-rotation was 30 and after snapping it became 90, because the curser’s rotation is 60.
Option 2 doesn’t care about the previous object’s rotation, instead the cursor’s rotation is taken as the new rotation, so it’s simply align to cursor. One potential problem with this, is that relative rotation between two selected objects would be lost, which wouldn’t happen in edit mode.
- Option 1
- Option 2
- Both (with ability to choose)
Currently, only for location, Snap menu has two items.
Snap Selected to Cursor and Snap Selected to Cursor (Keep Offset).
IMHO, option 1 corresponds to (Keep Offset) item and option 2 corresponds to default item but for rotation.
User would probably want to be able to deactivate rotation snapping in case of a Keep Offset use.
So probably, the Snap Selected to Cursor operator should have 3 options.
Snap Rotation, Keep Rotation Offset, Keep Location Offset
Actually the operator supports location/rotation constraints, so your suggested option 3 can be achieved by locking the object’s location/rotation for x/y/z/w etc…
Currently, operator only supports location offset.
Your question is about how it should handle rotation.
I mean copying rotation of 3D Cursor should be an option. And as a consequence, as for location, a secondary option should be to handle an offset of rotation above 3D Cursor rotation.
So by enabling only Snap Rotation checkbox, case 2 would be satisfied.
By enabling both checkboxes about rotation, case 1 would be satisfied.
Yes, I mean that both cases could be handled. Plus current behavior that does imply changes of objects rotation.
Because new ability to rotate 3D Cursor does not mean that current behavior becomes obsolete.
That is still useful to move objects without messing up their rotation.
Here’s how the current implementation looks like. Is this what you meant?
I would rather look at this functionality from some real-case scenario.
Like for example, projecting 3D cursor onto some surface (with rotation)
and then snapping that object origin to position and rotation of a 3D cursor, but without actually moving geometry with respect to the world space.
That way ‘snapping’ would affect only “virtual” object origin position.
That would be useful for misplaced 3D scans.
…like an 3’rd option “don’t move geometry data” or “affect only origin point”.
What do you think?
Not working for “Affect Only - Origins” is enabled.
It’s just move Origin to 3D Cursor position no matter you use Snap - Selection to Cursor or Selection to Cursor (Keep offset)
even no option Location Offset and Rotation Offset (Blender 2.82a)
oh it’s not implemented yet?! so sad…
I literally cannot believe we’re in 2022 and this is still not a thing.
I’ve been creating empties and using Copy Transform for so long now and I guess I gotta continue doing it…
Another workaround I like, not necessarily faster (though for me it is since I already have the necessary operations set up as quick favorites and mouse shortcuts) is to set the transform orientation to Cursor and use the Align to transform orientation operation.
“Align Object to Cursor”
Blender 3.1 now has an official Copy Global Transform addon which I backported into 3.0.1 (which I currently use for work) and it seems to be working without issues.