Affect pivot point in edit mode

Hi @ideasman42,
really glad, that this thread still gets some attention from you.
I am not sure on the form, how proposals like this normally get made in this forum. I also think that you have some internal style guidelines that should and would influence how this turns into a good extension of blenders toolset. But other than this long thread implies, there is alot of agreement in general on such a feature among most people in here.

To sum it up there are about three different proposals or concepts in this thread. One option has been to map it to the 3dcursor and give it some new modes, one is to have a separate pivot point visible all time and being completely separate. The third one is the one I think most people would agree on. It’s the one i’d personally prefer too and it’s the solution that can be found in a wide range of 3dtools out there.

That solution is about being able to activate and deactivate an “edit pivot mode” that changes the behaviour of the current visible transform gizmo. If the “edit pivot mode” is on it will change its own position and will not affect the currently selected meshpart. After the end of the editphase it stays at the modified position and orientation and can be used normally to transform the selected mesh parts. (The main aspect of this new mode should be that its possible to edit the pivot as directly as possible, so no 3dcursor setttings needed prior to it and no additional commands to set it should be involved)

Some early suggestions in this thread wanted it to be available in to be mapped in edit mode to a similar checkbox like the Affect Origins one in object mode also as a checkbox to toggle on and off. That could be a valid place to trigger it via the ui.

But it would also be benefitial to activate and deactivate it even quicker with one or more of the options proposed, may it be in form of a modifier key (sticky key behaviour) that can be hold and released, or small toggle buttons aligned at the gizmo itself as adaption of zbrushs gizmo or even with just its most simplest form as a shortcut for the toggle to turn it on and of as a modal tool.

It also should have an option to snap to meshparts of the current mesh or any other mesh too, maybe somehow like blenders measure tool snapping option and mainly thats all about it.

How are the chances that this could get implemented? What else can we do to support that idea? There are quite some good video demonstrations in this thread on how some other tools with this feature have it implemented.

2 Likes

Well, we can move the gizmo/pivot in Blender. Just set it to be aligned with 3D cursor, which you can easily move and snap whichever way you like. Stated here many times. However, as stated here many times too, that doesn’t mean that everything is fine with this workflow. We still can’t rotate it and tweak its position (along the arbitrary axis for example).

The problem here is that currently Blender has one functionality split between two different tools. There’s a pivot/gizmo that can be set only indirectly. And there’s 3D cursor that can be set manually, but only in a limited fashion. Both of them are just a temporary point in space with basically the same purpose: to serve as a transformation center/reference point.

Some people here say that it has nothing to do with 3D cursor, but that’s not true because even in its current state it can do half of the things they are asking for. Current implementation of a pivot/gizmo covers the other half. If we’ll try to implement movable gizmo like in other software but leave alone the 3D cursor, then there’ll be two two almost identical (or at least overlapping) tools with different names. That’s nonsense. They can be easily combined in one tool. Just make that 3d cursor look like gizmo with all the handles and make it editable with one keypress like in Maya. No need for some other pivot point around there. Of course all the other options of setting this pivot (median, active, etc.) should still be available.

Try to see the big picture here. I’m new to Blender, but I have 25 years of experience with lots of 3D software and have been professionally working on UX and interfaces for decades too. Design-wise this solution absolutely clear and obvious. Seeing this pivot issue causing so much confusion is really a pain. Especially considering we’re almost there.

BTW the best implementation of the temporary 3D pivot I’ve seen is the 3DCoat’s Pose tool. Check it out.

Oh ok, so if your pivot is the median point inside a curve, such as the edge of a crescent moon, you can just snap the 3d cursor to that no problem right? Oh wait.
You think the solution is I should make a new vertex and somehow get it approximately there just to use the active element mode? What is wrong with you oh my god

Edit watch him come back like oh ya just duplicate the entire curve, scale it down into the center and the finally merge them into one vertex, transform that (step 1 of transform pivot) and then go back to your previous selection select the new vertex in empty space and finally scale them to that

1 Like

Could you explaint? It’s hard to understand without context or images.

10%20AM
pivot point: bounding box center

Sure could the 3dcursor behaviour be changed to act like that, but currently there are missing features, I proposed these changes further above too, but it would have to be a one click operation that changes multiple values in blender at once to really compete with a separate tool.

First of all the 3dcursor would have to get its gizmo, but that seems on its way.
The 3dcursor also would have to be editable/movable in edit mode with that new gizmo, but it should just be displayed while pivot point editing is on to keep the 3dviewport cleaner. The pivot point would have to be set to follow the 3dcursor automatically.
After releasing the pivot point has to stay where it is and may not snap back, so the current pivot point functionality has to get changed somehow too. But perhaps the original pivot point mode should be set back and just temporarily deactivated und a selection changes.
The cursor itself should perhaps also be reset to the old position, as that might have benefits for its usage. The place where it was before could really make sense for future commands.

So there are two options. Press that button and multiple changes are done throughout the gui and leave them. But live with these changes if you pressed it accidently. Or set it all back at the end of that, but why did we use the 3dcursor then for this at all.

To me it seems really simpler to grasp that this is its own tool as
“Affect Only Origins” is too and not a 3dcursor on steroids.
I really see what you mean. I thought about it too, as @Billrey was also convinced to solve that task with the help of the 3dcursor. But personally I stick to the solution of having that task separate for these reasons.

1 Like

I want to temporarily re-orient the transform tool based on an existing pivot point, such as the bounding box center. I’m not expecting the bounding box center itself to move, I want to translate its coordinate and local rotation before my transformation operation.

Please stay civilized and on topic here. Communicating in text via a forum can lead to misunderstandings. I suggest you to have further off-topic discussions on this issue in direct messages.

5 Likes

I don’t necessarily want to add fuel to the fire, but with my PDT I can do this:

47

Nice section of curve, next I select 3 verts thereof and click Arc Centre command:

59

Cursor is at Arc Centre, Same goes for my Pivot Point… It’s very simple python code to do this BTW.

Cheers, Clock.

EDIT:

Here’s the code:

def arcCentre(actV,othV,lstV):
    A = np.array([actV.x, actV.y, actV.z])
    B = np.array([othV.x, othV.y, othV.z])
    C = np.array([lstV.x, lstV.y, lstV.z])
    a = np.linalg.norm(C - B)
    b = np.linalg.norm(C - A)
    c = np.linalg.norm(B - A)
    s = (a + b + c) / 2
    R = a*b*c / 4 / np.sqrt(s * (s - a) * (s - b) * (s - c))
    b1 = a*a * (b*b + c*c - a*a)
    b2 = b*b * (a*a + c*c - b*b)
    b3 = c*c * (a*a + b*b - c*c)
    P = np.column_stack((A, B, C)).dot(np.hstack((b1, b2, b3)))
    P /= b1 + b2 + b3
    return Vector((P[0],P[1],P[2])), R
1 Like

@billrey I’m happy with the improvments to 3D Cursor getting a Gizmo but if there, Alt-drag etc but if there are any conflicts with the 3d cursor’s functionality. I was going to suggest creating another ‘temporary Point in space’ (2nd 3D Cursor) except this one only appears in Edit Mode and have similar functionality as Maya or Modo etc.

That way Maya/Modo etc users can enjoy this version while Blender users can still stick with the 3D Cursor Method.

The 3D Cursor is still pretty important for spawning new meshes/object at a certain point in space in either Object/Edit Modes. I’m a little worried that there might be a conflict with this. I’m not sure though.

1 Like

I agree! I have already implemented this, called Pivot Point, in my PDT Add-on, it can be used currently to Rotate and Scale geometry, given the myriad of ways to move geometry already, both in Blender and PDT. It also works in Object mode and a position for this Pivot Point can also be stored in each object’s data and recalled at any time, using the PP Write and PP Read buttons:


Here you can see the Pivot Point (3-axis graphic) along with the Cursor.

Cheers, Clock. :cocktail:

1 Like

Iby / clockmender What you guys are talking is something else entirely and not related to this topic.

The point of this thread is to be able to directly transform the pivot using the gizmo itself, as shown many times already, nothing more nothing less, no 3d cursor involved whatsoever. Just the same way it works in all 3D softwares out there.

1 Like

Iby was who created the thread, probably knows the topic of the thread

it doesn’t matter. This is an entirely new topic he’s starting.

Then ask the moderator to separate the bit that offends you into another thread… I thought my comments were relevant to what @Iby had asked.

If you guys are going to make a 3d Cursor with Gizmos then what about Sculpt Mode? You have to enable it there too and even make it as an Active Tool the Problem here there is already Transform Tools with an operator to change the pivot and also Expand Mask that sets Pivot for Unmasked areas, this leads to a slow Workflow instead of just this.
:point_down:

3 Likes

As far as I can see, everything can be done with 3d cursor, although some improvements for precision positioning and speeding up 3d cursor usage would be welcomed.

For example, I want my 3d cursor to snap to a center of a face that is not parallel to any global or local axis, inheriting its rotation as well, and then I want to slide 3d cursor 1m along the face surface in the direction of one of its axes, and 0.5m along the other axis. And then I want to save resulting local offset of 3d cursor to apply it later with another initial align point.

2 Likes

I don’t think its the correct question to ask if the 3dcursor CAN do it, rather should it do it. This thread has been openened to talk about and ask for direct access to modify pivot points and how it could be implemented to be as fast as possible. Transforming parts of a mesh is an essential and important part of modeling. Frequent changing modes of a cursor increases the steps needed to complete a task. And the more the 3dcursor gets embedded in the workflow of tools, the more the workflow will slow down. Sure can the 3dcursor do all that. We could even use it for the knife tool and place the cursor at every step along the cut and then let the knife snap to the 3dcursor, but for good reason it has been implemented with a direct control and I really hope that will not change. I know that many people here like the concept of a 3dcursor and in several usecases I am one of them. But it’s per definition indirect. And so the overhead needed gets worse with the number of different tools that use it. And if the blender team would use it for everything, the complete workflow would be some kind of turtle graphics resemblence, where every command would be surrounded by 3dcursor modeswitch and positioning commands. The 3dcursor is no bad concept in general, it has some nifty aspects to it. It just doesn’t scale that well and it should be used just when its the better option. Perhaps it would even be better if it were divided in more than one cursor to ease its drawbacks.

1 Like

Oh wow I’ll try your addon @clockmender, Thank you for taking the time to make the addon. I really appreciate it. Where can i download your Addon? Forgive me but I don’t think there is a link you provided in this thread or i probably missed seeing it.

@Regnas it is relevant. From what I understand from Bill’s comment earlier. The Pivot doesn’t really have a ‘point’ (Which is a bit silly, why is it called a Pivot ‘Point’). Think of the Gizmo/Pivot as a being that doesn’t know where to be, unless, you give it a point in space to go to like the active element or 3d cursor etc.

What I was suggesting earlier was an invisible, always following unless pressed abutton, adds in that ‘point’, A variable/point in space (which is what a 3D Cursor is) except without the involvement of a 3D Cursor. It’s giving you the illusion that you are directly transforming the gizmo like in Maya, Modo etc. Which, if you think about it (and correct me if I’m wrong), is what’s happening under the hood in Modo, Maya etc.