Skip to content

Add origin to the Transform node (and visualize it with an overlay) #1530

Closed as duplicate

Description

@0HyperCube

Design and implement the new pivot system containing a pivot stored in layer space (?) instead of normalised bounding box (so a pivot of (0.5, 0.5) would no longer be in the middle of the bounding box as it is currently). Note that this will break things such as rotating around the pivot, transformations applied by tools, etc. Careful thought should be applied as to how exactly the pivot should be stored.

"Pivot" concept is split into "reference point" and "pivot"

  • Reference point: after the graph has rendered, this is the point from which we measure X and Y location
  • Pivot: an Option<> which starts out as None, it must be set (either by a Set Pivot node or a widget next to anything, like Scale or Rotation, which requires it)

Also we likely don't use the nine-square widget for pivot to ensure people think of it only as the reference point concept

So the Transform node changes like so:

  • "Pivot" becomes "Reference Point"
  • Rotation and Scale get a "Pick Pivot" widget which lets you place a pivot in the artwork, it's required if the pivot is None
  • Also: add skew? And non-affine?

Goals: don't have shift caused by upstream changes, thus we can't use the bounding box as a pivot reference, instead we have to explicitly have the user set any desired pivots


As part of combining issue #534 into here, here's the description that was part of it:

  • Folders have transforms?
  • Showing skew in properties panel
  • Non-affine perspective transforms (dragging each corner of the bounding box to an arbitrary place, except concave)
  • Inconsistent behaviour between lines / polylines and other shapes (render_index in simple_shape)
  • Allowing outline width to be scaled / not as desired
  • How to display layer & folder(if applicable) transforms in properties panel (i.e. do we show layer transform or bounding box, and how is it transformed etc.)
  • Clear reference for contributes / artists

Activity

  1. added
    ArchitectureInvolves architecture or engineering work or discussion
    GrapheneInvolves the node graph system/engine used by Graphite
    on Dec 20, 2023
  2. moved this from Short-Term to In-Progress Tasks in Task Boardon Feb 15, 2024
  3. changed the title [-]Redo pivot system and redo transformations[/-] [+]Transform system redesign[/+] on Feb 15, 2024
  4. moved this from In-Progress Tasks to Short-Term in Task Boardon May 25, 2024
  5. added and removed
    ArchitectureInvolves architecture or engineering work or discussion
    GrapheneInvolves the node graph system/engine used by Graphite
    on Jun 2, 2024
  6. changed the title [-]Transform system redesign[/-] [+]Transform system improvements[/+] on Jun 9, 2024
  7. changed the title [-]Transform system improvements[/-] [+]Add origin to the Transform node (and visualize it as an overlay)[/+] on Aug 4, 2024
  8. changed the title [-]Add origin to the Transform node (and visualize it as an overlay)[/-] [+]Add origin to the Transform node (and visualize it with an overlay)[/+] on Aug 4, 2024
  9. Keavon commented on Feb 13, 2025

    @Keavon
    Member

    Superseded by #2225.

  10. moved this from Short-Term to Completed This Milestone in Task Boardon Feb 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions