Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Select tool: visualize the separate concepts of tooling pivot and graphical data origin #2225

Open
Tracked by #1832
0HyperCube opened this issue Jan 26, 2025 · 0 comments

Comments

@0HyperCube
Copy link
Member

0HyperCube commented Jan 26, 2025

There will be two different dots, which the Select tool can toggle between (using a checkbox or radio button near the 9-dot widget in the tool's control bar).

There will be a dropdown in the Select tool's control bar to choose which one the user wants to visualize and use. The pivot shall remain the default. Currently, the tooling uses the pivot as the point around which rotation and scaling occurs for:

  • G/R/S
  • Resizing the corners of the transform cage when Alt is pressed.

But it will end up using which ever type of dot (pivot or origin) is chosen for those, instead of just the pivot.

  • Pivot

    Image

    This is the yellow (final color TBD) crosshair symbol. It's the temporary/transient pivot. Equivalent to Blender's 3D cursor, but isn't global to the document nor is it as persistent as the 3D cursor. It's used only for tooling, not part of the node graph data or document format. This is our current implementation, but it will need to be tweaked:

    • Currently, we store the pivot permanently on each layer, but this can lead to confusion if the user comes back later and finds it in an unexpected location (especially since scaling can affect it in weird ways). This also makes the code more difficult because we have to save tooling-level data into the serialized document. Remove the per-layer, persistent storage.
    • Make it so each layer that the user clicks will have the pivot set to its corresponding corner/midpoint/center of the 9-dot widget (located in the tool's control bar). Switching from one layer to the next keeps that chosen position of the 9-dot widget.
    • The user can drag the yellow dot anywhere in the canvas. Clicking away from the current layer (by deselecting it, or by selecting another layer instead; however not by adding to the selection if the existing layer remains selected) resets it, going back to the selected position of the 9-dot widget.
      • But the user can "pin" the dragged location.

        Image

        Then, no matter what selection changes occur, that remains the location of the pivot until unpinned or until clicking any of the 9 dots in the 9-dot widget again which unpins it. Perhaps double-clicking the yellow dot can pin/unpin.

  • Origin

    Image

    This is the blue (final color TBD) dowel pin symbol. It's the origin ((0, 0) point) of the vector data's internal coordinate space. This is used when transforming in the Transform node's properties panel parameters, or when using the Copy to Points node. Its drag will be stored in the "Origin: Offset" parameter of the Transform node (but for now, we don't have that yet, so the origin is visualized but not draggable for now):

    Image

@0HyperCube 0HyperCube added the Architecture Involves architecture or engineering work or discussion label Jan 26, 2025
@github-project-automation github-project-automation bot moved this to Short-Term in Task Board Jan 26, 2025
@Keavon Keavon changed the title Seperate centre-of-transformation and layer origin Seperate tooling pivot and layer's graphical data origin Jan 26, 2025
@Keavon Keavon changed the title Seperate tooling pivot and layer's graphical data origin Select tool: visualize the separate concepts of tooling pivot and graphical data origin Jan 26, 2025
@Keavon Keavon removed the Architecture Involves architecture or engineering work or discussion label Feb 12, 2025
@Keavon Keavon marked this as a duplicate of #1530 Feb 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Short-Term
Development

No branches or pull requests

2 participants