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

Add the Mirror node #1453

Open
0HyperCube opened this issue Nov 13, 2023 · 4 comments · May be fixed by #1632
Open

Add the Mirror node #1453

0HyperCube opened this issue Nov 13, 2023 · 4 comments · May be fixed by #1632
Assignees
Labels
Feature New feature or request Graphene Involves the node graph system/engine used by Graphite Rust Involves Rust programming for the backend

Comments

@0HyperCube
Copy link
Member

0HyperCube commented Nov 13, 2023

This node should take in vector data, a boolean for "Mirror X", and a boolean for "Mirror Y". The centre of transformation should probably be around the pivot (indicated in the document with a blue circle inside another blue circle).
pivot
If both mirror x and y are active, 4 copies of the vector data will be output. The default values should be true for mirror x and false for mirror y. This is similar to the mirror node in blender.

A guide to the node system can be found https://github.com/GraphiteEditor/Graphite/blob/master/node-graph/README.md - if you have any questions please ask in the discord chat.

Steps:

  • Define a new node that just outputs the vector data that has been input (to ensure nodes are set up properly). This is similar to the circular repeat node.
  • Compute the pivot position of the vector data using the appropriate function. You can log this to ensure that it is correct.
  • Clone the subpaths in the vector data and mirror all of the positions around the computed pivot. You may need to modify the bézier_rs library and the VectorData struct.
@unholyleona
Copy link

Hey, I'd like to work on that issue :)

@Keavon Keavon added Feature New feature or request Good First Issue Good for newcomers Rust Involves Rust programming for the backend Graphene Involves the node graph system/engine used by Graphite labels Nov 15, 2023
@0HyperCube
Copy link
Member Author

@unholyleona If you need any help, feel free to submit a draft PR.

@Keavon Keavon changed the title Mirror Node Add the Mirror node Dec 17, 2023
@skoriop skoriop linked a pull request Feb 28, 2024 that will close this issue
3 tasks
@Keavon
Copy link
Member

Keavon commented Mar 2, 2024

@skoriop please comment "Ok" so I can assign you to this issue.

@skoriop
Copy link
Contributor

skoriop commented Mar 3, 2024

Ok

@Keavon Keavon removed the Good First Issue Good for newcomers label Apr 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature New feature or request Graphene Involves the node graph system/engine used by Graphite Rust Involves Rust programming for the backend
Projects
Status: In-Progress Tasks
Development

Successfully merging a pull request may close this issue.

4 participants