VectorStyler
    • Categories
    • Unread
    • Recent
    • Tags
    • Popular
    • Register
    • Login

    Feature Request: Separate Node Editing Tools by Operation Class

    Scheduled Pinned Locked Moved General Discussion
    3 Posts 3 Posters 16 Views 2 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • J Offline
      jpsimmons
      last edited by

      VectorStyler's Node Tool combines a large number of operations that affect fundamentally different properties of an object. This makes its behavior difficult to predict and can result in unintended modifications.

      I suggest separating its functionality into five classes of tools, according to the properties each is permitted to modify.

      1. Selection Tool

      • Select nodes — individually or in groups.

      2. Geometric Transformation Tool

      • Translate selected nodes, including moving an endpoint of a line.
      • Snap nodes to guides or other geometry.
      • Align or distribute nodes.

      These operations should preserve the object's topology, segment types, and node constraints.

      3. Object Transformation Tool

      • Deform Bézier curves.
      • Convert text to paths.

      4. Topological Editing Tool

      • Insert nodes.
      • Delete nodes.
      • Join or separate paths.
      • Close or open paths.
      • Convert straight segments to Bézier curves.
      • Change node types — smooth, corner, or symmetric.

      These operations explicitly modify the structure of the path, including its connectivity, segment representations, degrees of freedom, or node constraints.

      5. Curve Editing Tool

      • Reshape existing curve segments directly.
      • Adjust Bézier control handles.

      These operations modify curve geometry while preserving the existing segment types and node constraints.

      Motivation

      A recurring problem illustrates the need for this separation.

      Suppose I have a 20-inch straight line and want to reposition one endpoint. I select the endpoint using the Node Tool and move it. Sometimes this converts the straight segment into a Bézier curve whose control points are collinear with the line.

      The conversion is not visually apparent because the line remains straight and the control points may lie outside the visible region at the current magnification.

      I can detect the conversion by moving a node until a Bézier control point and its guide line become visible, but this requires modifying the geometry merely to determine its representation.

      The intended operation was a geometric transformation. Instead, the tool also performed a structural modification, introducing additional degrees of freedom.

      Proposed Behavior

      Each tool should be restricted to its designated class of operations:

      • Selection: Changes only the selection state.
      • Geometric Transformation: Changes coordinates without modifying topology, segment representations, or node constraints.
      • Object Transformation: Changes the geometry or representation of an entire object.
      • Topological Editing: Changes connectivity, segment representations, degrees of freedom, or node constraints.
      • Curve Editing: Changes curve geometry without modifying the underlying representation.

      The existing multipurpose Node Tool could remain available for users who prefer it. The separate tools would provide predictable, constrained operations for precision drawing.

      Design Principle

      An operation should modify only the class of properties that its tool is intended to control.

      Separating geometric transformations from structural modifications would eliminate an important source of unintended changes while making VectorStyler's editing behavior more predictable.

      VectorStylerV 1 Reply Last reply Reply Quote 2
      • VectorStylerV Offline
        VectorStyler @jpsimmons
        last edited by

        @jpsimmons Would there be a need to swap between these tools frequently?

        1 Reply Last reply Reply Quote 1
        • F Offline
          fde101 Global Moderator
          last edited by

          I personally am of the opinion that a smaller number of more flexible tools is generally better than a larger number of single-purpose ones.

          Final Cut Pro 7 had around 16 tools in its toolbar. Final Cut Pro X can do essentially the same things with only seven (three of which I personally think they could easily still eliminate), and it provides a much better working experience. Davinci Resolve does again essentially the same things with only three tools (one of which I still consider superfluous and never really use as the same thing can be done without it, showing that only two are really necessary for a video editor).

          As @vectorstyler hinted at, you would be switching tools left and right with a setup like the one you are proposing, which is a waste of time.

          If there a specific issue you are having between two functions of the tool so that we could look at ways to improve the existing tool?

          One of my biggest complaints about VectorStyler is that there are too many superfluous tools already that could easily be consolidated into a smaller number of more flexible ones.

          For example, do we really need a zillion effect, distortion and warp tools that apply individual distortion and warp effects rather than one generic reshaping tool which lets you pick an effect, distortion or warp type as a mode of the tool?

          Each such tool has a distinct icon to learn. Even someone who uses it day in and day out probably has to spend a lot more brain power on trying to identify the tool they want among the array of tools available than they would with one such tool that then lets them pick the specific effect from a separate list which can be organized more meaningfully than is feasible with tools on a customizable toolbar.

          1 Reply Last reply Reply Quote 0
          • First post
            Last post