Skip to content

Conversation

@Micheus
Copy link
Collaborator

@Micheus Micheus commented Sep 4, 2025

It was changed the code in order to evaluate the linked edges selection and see if they lay on the mirror face boundaries. In this case, the linked edges are handled as they were edge loops and we get the command working as it was applied in a non mirrored object. In case other linked edges exists and not laying on mirror face boundaries then the error message caused by mixed mode is displayed, just as it uses to be for non mirrored objects.
NOTE:

  • Updated the circularise command to better handle mirrored selections;

@Micheus
Copy link
Collaborator Author

Micheus commented Sep 4, 2025

@dgud , I hope you can evaluate this PR and suggest me any change you think it would be necessary in order to
accept the code. 😃
This has been an annoying issue for long time.

Circularise [LMB] - Edge loops - CHANGED behaviour (Video)
alt text

Circularise [LMB] - Edge links - NOTHING was changed (Video)
alt text

Circularise [LMB] - Mixed mode - Forbidden - NOTHING was changed (Video)
alt text

Circularise [LMB] - with Options (Video)
alt text

Circularise [RMB] - with Options (Video)
alt text

Circularise [MMB] - Accept only one edge loop/link selection, so it works fine in every situation

@dgud dgud requested a review from Copilot December 2, 2025 14:38
@dgud
Copy link
Owner

dgud commented Dec 2, 2025

I have let co-pilot review this, fix stuff that seems valid and write when your are done, or nothing needs fixing.
It is wrong often.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR enhances the circularise command to properly handle edge selections on mirrored objects. When edges lie on mirror face boundaries, they are now treated as edge loops, allowing the circularise operation to work as if applied on a non-mirrored object. The implementation adds detection logic for mirror boundary edges and provides special handling for computing circular arcs across mirror planes.

  • Added mixed_mirror return value to differentiate mirror boundary edges from regular mixed selections
  • Introduced arc_mirrored_setup function to handle arc calculations for edges on mirror boundaries using matrix transformations
  • Implemented helper functions check_mirror, is_mirror, and process_mixed to identify and filter mirror boundary edges
  • Modified get_radius function to support different modes (full vs. mirrored) for radius calculation

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

It was changed the code in order to evaluate the linked edges selection
and see if they lay on the mirror face boundaries. In this case, the
linked edges are handled as they were edge loops and we get the command
working as it was applied in a non mirrored object.
In case other linked edges exists and not laying on mirror face boundaries
then the error message caused by mixed mode is displayed, just as it uses
to be for non mirrored objects.
NOTE:
- Updated the circularise command to better handle mirrored selections;
@Micheus Micheus force-pushed the mv/v2.4-circularize-mirrored branch from f57a347 to c4a69aa Compare December 16, 2025 22:44
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