Skip to content

fix: populate colinear_manipulators for Circle, Arc, and Spiral (#3891)#3898

Open
Chetansahney wants to merge 6 commits intoGraphiteEditor:masterfrom
Chetansahney:fix-shape-handle-mirroring
Open

fix: populate colinear_manipulators for Circle, Arc, and Spiral (#3891)#3898
Chetansahney wants to merge 6 commits intoGraphiteEditor:masterfrom
Chetansahney:fix-shape-handle-mirroring

Conversation

@Chetansahney
Copy link

Fixes #3891

I have fixed the issue 3891, by using collinear_manipulators for circle, spirals and arc.

related to this discussion: https://discord.com/channels/731730685944922173/731738914812854303/1482256235339186196

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request addresses an issue where vector shapes like circles, arcs, and spirals lacked proper colinear_manipulators. By correctly populating these manipulators, the PR significantly enhances the user experience for editing these shapes, allowing for more intuitive and predictable handle adjustments.

Highlights

  • Circle Shape: Implemented colinear_manipulators for the circle node, ensuring all four pairs of handles are correctly linked for intuitive manipulation.
  • Arc Shape: Added colinear_manipulators to the arc node, linking handles only when both adjacent segments are cubic Beziers.
  • Spiral Shape: Populated colinear_manipulators for the spiral node, specifically linking consecutive curved segments that are cubic Beziers.
Changelog
  • node-graph/nodes/vector/src/generator_nodes.rs
    • Modified the circle function to initialize colinear_manipulators for its four segments.
    • Updated the arc function to conditionally add colinear_manipulators for cubic bezier segments.
    • Enhanced the spiral function to link consecutive cubic bezier segments using colinear_manipulators.
Activity
  • The pull request was opened by Chetansahney.
  • No human activity has been recorded on this pull request yet.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request correctly adds logic to populate colinear_manipulators for Circle, Arc, and Spiral generator nodes, which is a great enhancement for vector editing. My review includes a fix for a bug in the arc node implementation where closed paths are not handled correctly, points out a duplicated documentation comment, and suggests minor code improvements for readability and performance within the new loops.

Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 1 file

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="node-graph/nodes/vector/src/generator_nodes.rs">

<violation number="1" location="node-graph/nodes/vector/src/generator_nodes.rs:107">
P3: Duplicate doc comment — this line is identical to the one immediately below it. Remove one of them.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

@Keavon Keavon force-pushed the master branch 3 times, most recently from e58c1de to df8001f Compare March 17, 2026 00:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Handle operations don't work on shapes created with the Shape Tool

1 participant