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

    Feature Request: Separate Node Editing Tools by Operation Class

    Scheduled Pinned Locked Moved General Discussion
    2 Posts 2 Posters 12 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
        • First post
          Last post