Skip to content

Fix rendering of full 360°-multiple turns (issue #252)#256

Open
gpeairs wants to merge 1 commit into
mainfrom
gp/issue-252
Open

Fix rendering of full 360°-multiple turns (issue #252)#256
gpeairs wants to merge 1 commit into
mainfrom
gp/issue-252

Conversation

@gpeairs

@gpeairs gpeairs commented Jul 10, 2026

Copy link
Copy Markdown
Member

Close #252. Turns sweeping an exact multiple of 360° have coincident endpoints, which the pathtopolys degenerate-point checks and the CurvilinearPolygon constructor's duplicate-point elimination silently collapsed to empty geometry (degenerate 2-point polygons in GDS, zero-area surfaces in SolidModel). Full turns are now split into two half turns during path polygonization, rendering as two polygons per surface — exact in both backends. Closed segments reaching the degenerate corner-point checks now fail loudly with an ArgumentError instead of silently dropping a curve.

Also documents the difference2d + RelativeRounded(0.5) ring recipe.

Turns sweeping an exact multiple of 360° have coincident endpoints, which
the pathtopolys degenerate-point checks and the CurvilinearPolygon
constructor's duplicate-point elimination silently collapsed to empty
geometry (degenerate 2-point polygons in GDS, zero-area surfaces in
SolidModel). Full turns are now split into two half turns during path
polygonization, rendering as two polygons per surface — exact in both
backends. Closed segments reaching the degenerate corner-point checks now
fail loudly with an ArgumentError instead of silently dropping a curve.

Also documents the difference2d + RelativeRounded(0.5) ring recipe.
@codecov

codecov Bot commented Jul 10, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@gpeairs gpeairs mentioned this pull request Jul 13, 2026
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.

360° turns render as degenerate Polygons

1 participant