Commit Graph

134 Commits

Author SHA1 Message Date
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
Jimmy Andrews
19ee47937c fix lattice tool for negative scales
#rb tyson.brochu
#rb david.hill
#preflight 63091651dd33b8a5238b2dfb

[CL 21602609 by Jimmy Andrews in ue5-main branch]
2022-08-26 19:59:59 -04:00
Jimmy Andrews
443e248108 expose 2D voronoi diagram generation to geometryscript
#rb Ryan.Schmidt
#preflight 630534a4c85b7fef228cf2df

[CL 21518855 by Jimmy Andrews in ue5-main branch]
2022-08-23 16:22:55 -04:00
Ryan Schmidt
f3f44f9dfd GeometryCore: make FDynamicMesh3::GetMeshInfoString() const
GeometryScript: add SplitMeshBowties, RepairMeshDegenerateGeometry, and GetMeshInfoString functions
#rb none
#preflight 630387dec85b7fef224a1dcd

[CL 21483407 by Ryan Schmidt in ue5-main branch]
2022-08-22 10:38:15 -04:00
michael balzer
e803f94779 UVEditor: Optimized UUVSelectTool::OnSelectionChanged()
#preflight 62fec7aa3f75602b2f2565b8
#rb matija.kecman

[CL 21457570 by michael balzer in ue5-main branch]
2022-08-19 10:57:48 -04:00
Jimmy Andrews
c0135363a4 add a Facing2 exact predicate
#rb david.hill
#preflight 62fa8554bd746abb9963712f

[CL 21400240 by Jimmy Andrews in ue5-main branch]
2022-08-15 22:08:00 -04:00
Jimmy Andrews
f29a8e9ddc fix rotating calipers failing to find extreme point due to two points on hull being close enough that they appear equal w.r.t. the extreme direction
fixes oriented bounding box not containing the output points in GeometryFlowTests

#jira UE-160567
#rb rinat.abdrashitov
#preflight 62f2c57ebc175ec68c148e6e

[CL 21298515 by Jimmy Andrews in ue5-main branch]
2022-08-09 16:57:45 -04:00
Jimmy Andrews
c21b7d49f3 Add new oriented box fit variant that starts from the fast DiTO box and optimizes the fit iteratively
+ Add ProgressCancel to box fits
+ Change editor code to use the new fit algorithms

#rb rinat.abdrashitov
#rb david.hill
#preflight 62f15a2ba035cdf05ea4d1b7

[CL 21273458 by Jimmy Andrews in ue5-main branch]
2022-08-08 15:20:28 -04:00
David Hill
9f5eeac1e3 Geometry: Suppress type conversion warnings in third party on clang
#preflight 62d6fdcdd54af4b9a29176a2
#rnx

[CL 21185144 by David Hill in ue5-main branch]
2022-07-20 14:04:32 -04:00
David Hill
5cd1c6b9cb GeometryCore: FitOrientedBox3 - fixing implicit conversion warning.
#preflight none

[CL 21165693 by David Hill in ue5-main branch]
2022-07-19 15:02:31 -04:00
David Hill
3feeb2386c Geometry: fix clang warning on android with 3rd party code.
#preflight none
#rnx

[CL 21165207 by David Hill in ue5-main branch]
2022-07-19 14:27:26 -04:00
David Hill
612f70bd55 GeometryCore, GeometryProcessing: Add pragmas to suppress implicit type conversion warnings when compiling third party code.
Predicates.cpp and  xaltas.cpp

#preflight 62d6cf9d1133256db6e4624a
#rb Jimmy.Andrews

[CL 21164760 by David Hill in ue5-main branch]
2022-07-19 13:53:50 -04:00
David Hill
bd6eef7ea1 Geometry Core, Geometry Processing. Fix implicit cast warnings encountered during clang build.
GeometryCore: StairGenerator.cpp, SweepGenerator.{h,.cpp}, UVPacking.cpp, ParallelTransformReduce.h, CurvewUtil.h, SweepingMeshSDF.h FastWinding.h

GeometryProcessing:  Remesher.cpp, AdaptiveTessellate.cpp, UniformTessellate.cpp, GeometrySelectionUtil.cpp, MeshSimpleApproximation.cpp

#rb Lonnie.Li
#preflight 62d5bfa347779a730a46bc55

[CL 21161422 by David Hill in ue5-main branch]
2022-07-19 09:31:09 -04:00
Ryan Schmidt
f3812c4df5 GeometryCore: add FSegmentTree3, an AABBTree for 3D line segments. Supports finding Nearest Segment to 3D point, and FindNearestVisibleSegmentHitByRay() which raycasts into a set of boxes based on a "visibility" metric, similar to FGeometrySet3::FindNearestCurveToRay().
Modify FGeometrySet3::FindNearestCurveToRay to use a single visibility metric, instead of branches. The previous code was dependent on the order in which segments were processed, and for the purposes of 3D UI hit testing, did not seem to do any better than the current code.

Add basic tests for FSegmentTree3 queries.

#rb rinat.abdrashitov
#preflight 62d5db7547779a730a49033b

[CL 21156801 by Ryan Schmidt in ue5-main branch]
2022-07-18 21:55:20 -04:00
Jimmy Andrews
5214f714b5 Add a new FitOrientedBox3 algorithm
+ fixes to the similar Gte algorithm and to FitOrientedBox2
+ Add a Contain(Array) for TAxisAlignedBox3
+ Add option to save triangle adjacencies on computed 3D convex hull (since we already compute them)
+ Fix plane returned for degenerate convex hull result when Dimension=2
+ Let FitOrientedBox2 functions take a custom best-fit function, so that they can be used in the inner loop of FitOrientedBox3 when searching for the best-fit surface area

#rb david.hill
#preflight 62d56a783c3df32390b32263

[CL 21149570 by Jimmy Andrews in ue5-main branch]
2022-07-18 12:17:27 -04:00
Jimmy Andrews
bfe1c9e793 CIS fix: type mismatch between local functions in FitOrientedBox2.cpp
#preflight 62cefa3e127551eb254189bd

[CL 21074964 by Jimmy Andrews in ue5-main branch]
2022-07-13 13:35:58 -04:00
Jimmy Andrews
e24ae4281b Add functions to fit an oriented box2 to points, a simple polygon, or a convex hull
Add function to find a 2d convex hull of a simple polygon (faster than finding a convex hull of a point set)

#rb david.hill
#rb rinat.abdrashitov
#preflight 62cdb9a83c539c05f8145798

[CL 21070929 by Jimmy Andrews in ue5-main branch]
2022-07-13 10:39:04 -04:00
Ryan Schmidt
715e1d357f GeometryCore:
Add FDynamicMesh3::EnableMatchingAttributes(), to expose AttributeSet::EnableMatchingAttributes() at the Mesh level
Add FDynamicMesh3::GetTriEdgeIDFromEdgeID(), helper to simplify construction of FMeshTriEdgeID identifiers
Add FRotator conversions for TQuaternion
Add TTransformSRT3::GetRotator()
Add UE::Geometry::Lerp variant for TFrame3
#rb rinat.abdrashitov
#preflight 62cc4a23f22e9d4fdf5da0f2

[CL 21047483 by Ryan Schmidt in ue5-main branch]
2022-07-11 17:10:51 -04:00
George Rolfe
30e1fad69d FProfileSweepGenerator per-point Scale
#jira none
#rb simion.piskarev
#rb jimmy.andrews
#preflight 62c4c49d3c5171c817cd868f

[CL 20953049 by George Rolfe in ue5-main branch]
2022-07-05 19:42:52 -04:00
Jimmy Andrews
029c3e58ca Add new exact predicate to determine whether a triangle is "facing" a direction or not. This could be used e.g. to extract a convex horizon from a convex hull.
#rb david.hill
#preflight 62c46666a6654f97290ca62c

[CL 20950995 by Jimmy Andrews in ue5-main branch]
2022-07-05 17:58:25 -04:00
Jimmy Andrews
219d37ce96 add extra validation of CrossIdx values to make static analysis happy + be extra safe vs crash/inf loop
#preflight 62bb3610727d9bb33ba9ee01
#rb trivial
#jira UE-157840

[CL 20861873 by Jimmy Andrews in ue5-main branch]
2022-06-28 13:55:26 -04:00
Jimmy Andrews
d90649a633 add 2D Voronoi diagram support, built on the Delaunay triangulation code
#rb david.hill
#preflight 62ba64735d29d0d10af0e753

[CL 20845736 by Jimmy Andrews in ue5-main branch]
2022-06-28 00:15:39 -04:00
Ryan Schmidt
c5e859dbdc GeometryCore: Add FColliderMesh::FindNearestHitTriangle() and FColliderMesh::FindNearestTriangle() wrappers around AABBTree functions. Replace most calls to these functions via AABBTree w/ calls to FColliderMesh functions. Rename ::GetAABBTree() to ::GetRawAABBTreeUnsafe() to discourage usage (intention long-term is to encapsulate the spatial data structure, so it is not exposed)
#rb jimmy.andrews
#preflight 62b5f31a3646551b1139502e

[CL 20813267 by Ryan Schmidt in ue5-main branch]
2022-06-24 14:08:36 -04:00
Ryan Schmidt
ae58db0625 GeometryCore:
- Add FDynamicMesh3::EnumerateEdgeTriangles() function, same API as ::EnumerateVertexTriangles()
- add function UE::Geometry::TrianglesToOverlayElements() in MeshIndexUtil.h, collects elements from triangles in a mesh attribute overlay
- minor change in TPolyline3::DistanceSquared to consistently use UE::Geometry:: function
#rb jimmy.andrews
#preflight 62b12cd64c538079d665150c

[CL 20750718 by Ryan Schmidt in ue5-main branch]
2022-06-20 22:42:29 -04:00
David Hill
857a3acd3e GeometryCore: Fixing unsafe typecast warnings in preparation for enabling such warnings for GeometryCore
#preflight 62acc6d2c0449d3dccc9b1d5
#rb Jimmy.Andrews

[CL 20710188 by David Hill in ue5-main branch]
2022-06-17 17:23:52 -04:00