Skip to content

Fix hull angle sort using atan2 for total ordering#98

Merged
GreatV merged 3 commits intoGreatV:mainfrom
inzanez:graham
Mar 3, 2026
Merged

Fix hull angle sort using atan2 for total ordering#98
GreatV merged 3 commits intoGreatV:mainfrom
inzanez:graham

Conversation

@inzanez
Copy link
Contributor

@inzanez inzanez commented Mar 2, 2026

No description provided.

@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 refactors the point sorting mechanism within the convex hull computation to utilize the atan2 function for polar angle comparison. This change aims to provide a more reliable and precise ordering of points, particularly in cases involving collinear points, thereby improving the overall robustness of the convex hull algorithm.

Highlights

  • Convex Hull Point Sorting Refinement: Replaced the cross-product based polar angle sorting with atan2 for improved robustness and accuracy in the convex hull algorithm's point ordering.
  • Enhanced Collinear Point Handling: Improved the handling of collinear points during sorting by ensuring distance comparison is used when atan2 angles are equal, maintaining a consistent total ordering.
Changelog
  • oar-ocr-core/src/processors/geometry.rs
    • Refactored the point sorting logic within the convex hull algorithm to use atan2 for polar angle comparison, improving robustness.
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 fixes the point sorting logic in the convex hull algorithm by using atan2 to get a total ordering of points by angle. This is a more robust approach than using cross products. However, the new implementation uses partial_cmp().unwrap() on floating-point numbers, which can cause a panic if NaN values are encountered. I've suggested using total_cmp instead to make the sorting fully robust and safe against such edge cases.

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
@GreatV GreatV self-assigned this Mar 3, 2026
@GreatV
Copy link
Owner

GreatV commented Mar 3, 2026

hi @inzanez Thanks for the contribution! There are some CI test failures that need to be fixed before we can merge this.

Copy link
Owner

@GreatV GreatV left a comment

Choose a reason for hiding this comment

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

LGTM

@GreatV GreatV merged commit 3b4efa4 into GreatV:main Mar 3, 2026
3 checks passed
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.

2 participants