Node Editor: Move Node along it's own path

Reason: Sometimes nodes are not ideally placed in the Bezier curve. They need to be edited and moved along the curve. But today, this often distorts the shape of the curve.

Requests:

  • Add an optional movement constraint to existing nodes in the node editor, when the user drags a node along it's own path.

    • This would be invoked with a keyboard modifier. E.G. CTRL+ALT or CTRL+SHIFT. Similar to CTRL which constrains the node movement to vertical or horizontal, this new option constrains it to its 'previous' path.
    • The node would follow the path before the edit. After mouse button release, the path to follow is now updated.
    • The current path would update live as normal. The previous path the node is following, would be visualised as a thin guide
  • Tangent Nodes handles should follow the direction and the length as they are moved along the curve.

    • See how Auto Smooth Tangent Handles adjust during moving.
    • If today you Insert a new node in a curved path, you can see it's handles are aligned, and with the correct length each side. (Bezier interpolation)
    • Tangent handles would Optionally be fixed in orientation. Thus affecting the shape of the curve.
  • Any curved segment that gets shorter is trimmed with no deviation from the original segment

  • Nodes would move across sharp corners.

  • Nodes would pass other nodes which remain in place unaffected. Node order is changed.

  • Straight segments adjacent to the moving node remain straight.
    image_2021-01-18_125645

  • If the node is moved past the end of an open path, the last segment (straight or curved) is extrapolated.

    • Use Bezier extrapolate that does not change the shape of the existing portion: image_2021-01-18_125728
  • See Related Issue: #3702

  • See Blender Edge Slide, where nodes follow the adjacent edge.

  • Workaround: Insert new node at preferred position, then delete the node to be moved.

Edited by ian