[Cherry-pick] DYN-10436: Fix UV scaling for degenerate surfaces (sphere poles, cone apex)#17087
Merged
jasonstratton merged 1 commit intoRC4.1.1_masterfrom Apr 29, 2026
Merged
Conversation
3 tasks
|
Contributor
|
Dynamo SelfServe succeeded: Merging |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Cherry-pick of #17077 to
RC4.1.1_masterPurpose
This addresses the issue reported on slack here.
UvScalingUtilities.GetNormalizedUvScalescomputed UV aspect-ratio scaling by sampling isolines at the domain boundaries (U/V = 0 and 1) and averaging their lengths. For surfaces with degenerate extrema — sphere poles, cone apex — the isoline at that boundary collapses to a near-zero-length point. Averaging a real length with ~0 badly underestimates the true scale, causing the UV normalization to fall back tonormU = 1.0and breaking the aspect ratio. This in turn causesDelaunay.ByParametersOnSurfaceandVoronoi.ByParametersOnSurfaceto produce incorrect tessellations on such surfaces.Fix: sample isolines at five interior positions (0.1, 0.25, 0.5, 0.75, 0.9) and average their lengths. Interior isolines are non-degenerate for all standard analytical surfaces. For flat/non-degenerate surfaces, all interior isolines have similar length, so the result is unchanged from the previous approach.
Declarations
Check these if you believe they are true
Release Notes
Fix incorrect UV scaling normalization for surfaces with degenerate boundary isolines (sphere poles, cone apex), restoring correct Delaunay/Voronoi tessellation on those surfaces.
Reviewers
(FILL ME IN)
FYIs
N/A