also always run the point prioritization step, and don't early-stop it if we may take more samples than the minimum requested.
#rb rinat.abdrashitov
[CL 30169822 by jimmy andrews in ue5-main branch]
- More aggressively prune the cache of computed merge shapes after it reaches a threshold size
- By default compute a proximity graph based on actual proximity, not the full n^2 possible connections
- After finding the best of a number of possilbe merges, optionally only look for local improvements to the current best rather than doing a full search for the absolute best connection.
#rb david.hill, shaun.kime
[CL 29158488 by jimmy andrews in ue5-main branch]
We now directly construct the initial voxel mesh to be the tolerance distance from the input mesh (while allowing it to follow the convex hull), and also ensure clamp the grid cell size to not be larger than half the width of the region bounding box's min dimension.
[CL 28455930 by jimmy andrews in ue5-main branch]
Add a 'source ID' concept to the convex part decomposition, to enable tracking of which hulls were not merged to any other hulls when running the convex hull merging algorithm.
#rb rinat.abdrashitov
[CL 28106868 by jimmy andrews in ue5-main branch]
Note: These settings were all introduced post-5.3, so moving them should not require deprecation
#rb rinat.abdrashitov
[CL 27715888 by jimmy andrews in ue5-main branch]
1. A MaxHullVertices setting. If positive, the convex hull algorithm will greedily add vertices to best expand the hull, generating a simplified hull if the exact hull would exceed the specified budget.
2. SkipAtHullDistanceAbsolute/SkipAtHullDistanceAsFraction settings. If positive, the convex hull algorithm will ignore points that are closer than the threshold value, resulting in a simpler hull.
Also stop relying on the Orient3 exact predicate to find the farthest hull points (regardless of whether PointsBudget is specified) both so that the PointsBudget and SkipAtHullDistance settings can accurately compare distances from different triangles and also to fix an issue where the Orient3 magnitude was discarded when requesting a single-precision Orient3 value.
Update convex hull unit test to also test these new settings.
Also adds a small optimization the reduces the number of duplicate points considered.
#rb rinat.abdrashitov
#jira none
[CL 27604026 by Jimmy Andrews in ue5-main branch]