Commit Graph

70 Commits

Author SHA1 Message Date
Jimmy Andrews
628974f19c Fix crash when spline mesh tool has a spline with too few points, and generally make polygon triangulation not crash when passed an input with too few points
#rb rinat.abdrashitov
#jira none

[CL 26295531 by Jimmy Andrews in 5.3 branch]
2023-06-28 15:25:32 -04:00
jimmy andrews
7ca84cf8c5 Add a new hull merge node for reducing the hulls used on convex decompositions
+ minor cleanup/fixes of hull merging algorithms
(v2 with compile/link fixes)

[CL 25964124 by jimmy andrews in ue5-main branch]
2023-06-13 17:18:13 -04:00
jimmy andrews
98cc9bc6be [Backout] - CL25959112
[FYI] Jimmy.Andrews
Original CL Desc
-----------------------------------------------------------------
Add a new hull merge node for reducing the hulls used on convex decompositions
+ minor cleanup/fixes of hull merging algorithms

[CL 25960651 by jimmy andrews in ue5-main branch]
2023-06-13 15:37:18 -04:00
jimmy andrews
59daad6f82 Add a new hull merge node for reducing the hulls used on convex decompositions
+ minor cleanup/fixes of hull merging algorithms

[CL 25959212 by jimmy andrews in ue5-main branch]
2023-06-13 14:52:04 -04:00
jimmy andrews
51c778d2a1 make the convex decomposition sphere covering do a better job of covering shape concavities near the border of the shape by expanding the sampling region by the sphere radius + moving the samples out to better cover the sampling region
#rb rinat.abdrashitov
#preflight 646d469a64351d76f352fdd2

[CL 25597234 by jimmy andrews in ue5-main branch]
2023-05-23 21:22:12 -04:00
jimmy andrews
a88d570315 add convex decomposition options to leaf node convex hull dataflow node
+ add a 'max hulls' option to convex decomposition, which functions like 'target num hulls' but can still cap the number of hulls when an error tolerance is specified (target num hulls is ignored when error tolerance is set)

#rb rinat.abdrashitov
#preflight 646d1033f85111e06c3a8fb7

[CL 25593250 by jimmy andrews in ue5-main branch]
2023-05-23 18:33:43 -04:00
Jimmy Andrews
281e28afae add precise math for exact predicates on clang, where supported
#preflight 646465044404e3cdd2c0fb87
#jira none

[CL 25509390 by Jimmy Andrews in ue5-main branch]
2023-05-17 12:25:46 -04:00
marc audy
31c6de2226 [Backout] - CL25502609
#fyi Jimmy.Andrews
Original CL Desc
-----------------------------------------------------------------
set exact predicate float control for clang as well as msvc

#preflight 64643a472d446eac96856f8c
#rb rinat.abdrashitov
#jira none

[CL 25502827 by marc audy in ue5-main branch]
2023-05-17 00:05:24 -04:00
Jimmy Andrews
aedd4acd5f set exact predicate float control for clang as well as msvc
#preflight 64643a472d446eac96856f8c
#rb rinat.abdrashitov
#jira none

[CL 25502609 by Jimmy Andrews in ue5-main branch]
2023-05-16 22:59:50 -04:00
jimmy andrews
ebda1b4a81 add FSphereCover as an optional volume representation to protect negative space in convex decomposition's merge algorithm
+ expose this to dataflow
+ make cluster-convex-from-children algorithm use depth-first node ordering, to get more consistent results

#rb cedric.caillaud
#preflight 645e73ccaa3c584c0bb0b17a

[CL 25458948 by jimmy andrews in ue5-main branch]
2023-05-12 16:15:24 -04:00
jimmy andrews
651caca424 Fix up error handling for Geometry Script polygon triangulation function
+ Add a generalized winding triangulation mode for Delaunay2 as a useful fallback for inputs where some edges failed to insert + make the blueprint general polygon triangulation use it as a fallback

#rb rinat.abdrashitov
#preflight 64462661641e2c3cb469409b

[CL 25175533 by jimmy andrews in ue5-main branch]
2023-04-24 23:29:54 -04:00
jimmy andrews
94621fd27d Expose Delaunay Triangulation to Geometry Script
#rb ryan.schmidt, rinat.abdrashitov, matija.kecman
#preflight 64064a28c13b7130d2fd04da

[CL 24531512 by jimmy andrews in ue5-main branch]
2023-03-06 17:00:31 -05:00
jimmy andrews
08cdafff34 add a merge-only api to convex decomposition
#preflight 63d9872265738ba951f5058e
#rb david.hill

[CL 23943754 by jimmy andrews in ue5-main branch]
2023-01-31 21:58:48 -05:00
Jimmy Andrews
d7b600d398 Add BRIO point ordering and update Delaunay2/3 to use it, to improve performance e.g. for grids of points
#rb rinat.abdrashitov
#rb tyson.brochu
#preflight 63b8a33b221aab21e09c6756

[CL 23607591 by Jimmy Andrews in ue5-main branch]
2023-01-07 13:23:14 -05:00
brandon schaefer
f77afc5a1d Fix lifetime issues, all of these are undefined behaviour
#jira UE-172308
#rb Jimmy.Andrews
[FYI] Steve.Robb
#preflight 63922e890d013d47efae9480

[CL 23460229 by brandon schaefer in ue5-main branch]
2022-12-08 21:22:12 -05:00
Jimmy Andrews
1ff66ff16e Add Tetrahedron3 to TriangleTypes.h and a new TetUtil.h, to support common tet operations
#rb matija.kecman
#rb rinat.abdrashitov
#preflight 637ceabc2a05dabce96cc636

[CL 23236394 by Jimmy Andrews in ue5-main branch]
2022-11-22 11:10:31 -05:00
Jimmy Andrews
6459e6d93f Make C-array exact predicate calls const-correct, and remove/deprecate confusing 'template VectorType' versions that were making the C-array versions difficult to call. To do the deprecation, the 'template VectorType' has been replaced with explicit inline functions that handle the existing vector types.
#rb david.hill
#preflight 637556d4953c19d4352a7bee

[CL 23184198 by Jimmy Andrews in ue5-main branch]
2022-11-17 16:46:44 -05:00
Jimmy Andrews
941db20dc4 fix incorrect direct assignments to TFunctionRef
#rb rex.hill
#preflight 63769b2cf514e1ded961caed

[CL 23183068 by Jimmy Andrews in ue5-main branch]
2022-11-17 15:52:12 -05:00
Jimmy Andrews
0a7d11eeb3 fix broken tet mesh test by making tets consistently generate by default in the UE orientation (orient3d gives negative sign), and switching the Validate function back to expecting that orientation
#rb tyson.brochu
#preflight 636d86315368a3230a6629e2

[CL 23090187 by Jimmy Andrews in ue5-main branch]
2022-11-10 18:45:07 -05:00
Jimmy Andrews
48486e8cb5 Add 3D Delaunay + tests
#rb david.hill
#preflight 636d3d0db839cb7ec554f864

[CL 23086658 by Jimmy Andrews in ue5-main branch]
2022-11-10 15:20:34 -05:00
Jimmy Andrews
5ad977f642 fix unity build by removing CA_SUPPRESS, as I could not reproduce the static analysis warning it was meant to suppress
#preflight 636bdacd376a9cd6a8a695e5
#rb trivial

[CL 23056660 by Jimmy Andrews in ue5-main branch]
2022-11-09 12:03:00 -05:00
Jimmy Andrews
c9905f983c Add InSphere to exact predicates + test coverage
#rb tyson.brochu
#preflight 636932a3ed07daaa9ab89d3b

[CL 23016482 by Jimmy Andrews in ue5-main branch]
2022-11-07 15:16:04 -05:00
jimmy andrews
56855bd081 Add a GetFace method to TConvexHull3 and use it to get polygonal faces for convex hulls when building a convex hull for Chaos. This makes us less likely to add near-degenerate faces for which we cannot compute the normals.
#rb Chris.Caulfield
#preflight 63613dae41625be270d322c4

[CL 22890192 by jimmy andrews in ue5-main branch]
2022-11-01 16:03:10 -04:00
jimmy andrews
4456058517 Make visual studio compile exact predicate code with precise math compile settings, for more consistent performance results, and change to generally compute in double precision for predicates where the 'difficult' cases can be ~50x more expensive to compute.
Add a TODO to reconsider the INEXACT volatile setting now that we compile with precise floating point math; preliminary testing indicates it should work and be significantly faster in 'difficult' cases.

#rb david.hill
#preflight 63327ebec7791417aa9b2737

[CL 22217357 by jimmy andrews in ue5-main branch]
2022-09-27 22:55:36 -04:00
jimmy andrews
4837ae2192 fix epsilon's type in extreme points class
#rb tyson.brochu
#preflight 632527cd121ffddebcc8c155

[CL 22086973 by jimmy andrews in ue5-main branch]
2022-09-19 21:55:34 -04:00