Commit Graph

87 Commits

Author SHA1 Message Date
Jimmy Andrews
ea5e78a8e0 fix exact predicate test failures -- use volatile for INEXACT to force rounding
#preflight 622fce37ce577e3ab2e0b680

[CL 19380794 by Jimmy Andrews in ue5-main branch]
2022-03-14 20:24:15 -04:00
jimmy andrews
6b870db4fe Fix convex hull crashes (due to zero points and due to exact predicate failure)
add geometry processing low level test coverage for both cases

#jira UE-145703
#preflight 622fa7be306f46da14592f0b
#rb tyson.brochu
#lockdown simon.tourangeau

#ROBOMERGE-OWNER: jimmy.andrews
#ROBOMERGE-AUTHOR: jimmy.andrews
#ROBOMERGE-SOURCE: CL 19378695 in //UE5/Release-5.0/... via CL 19380177
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)

[CL 19380762 by jimmy andrews in ue5-main branch]
2022-03-14 20:15:28 -04:00
Jimmy Andrews
b885b54c1d new Delaunay triangulation code using robust predicates
Much faster and usable from non-plugin code

#rb rinat.abdrashitov
#rb tyson.brochu
#preflight 622a6e9632749f363c5a22ba

[CL 19341780 by Jimmy Andrews in ue5-main branch]
2022-03-10 16:41:30 -05:00
Jimmy Andrews
46ea937c73 make convex hull code work directly with floats if the input is in floats, rather than converting everything to doubles
#rb tyson.brochu
#preflight 622905196e026fc824ab3a4e

[CL 19326164 by Jimmy Andrews in ue5-main branch]
2022-03-09 16:45:56 -05:00
Jimmy Andrews
a624095d22 Add a ZOrderCurve class to order points such that adjacent points in the ordering are likely to be close in space, to be used for incremental Delaunay construction (but can be useful in other algorithms too)
#rb rinat.abdrashitov
#preflight 6227b36d7934051162f05962

[CL 19309261 by Jimmy Andrews in ue5-main branch]
2022-03-08 15:08:31 -05:00
Jimmy Andrews
4b4a4c2d3c Exact Predicates improvements:
- Support InCircle
 - Support float as well as double
 - Add safer, templated versions that specify whether float or double is to be used (for TVector/TVector2)

#rb rinat.abdrashitov
#preflight 62277e1e7077eb04cf6db63d

[CL 19309153 by Jimmy Andrews in ue5-main branch]
2022-03-08 15:01:31 -05:00
ryan schmidt
172058c824 GeometryCore:
- add FColliderMeshProjectionTarget to allow a FColliderMesh to be used as a projection target
- remove dead code from TDenseGrid3
- add TBlockedDenseGrid3, variant of TDenseGrid3 that lazy-allocates sub-blocks of a dense grid, to reduce memory usage in sparse/narrow-band situations on large uniform grids
- replace usage of TDenseGrid3 in FMarchingCubes with TBlockedDenseGrid3, to reduce memory footprint on large meshing problems
#rb David.Hill, Jimmy.Andrews
#jira UE-141151
#preflight 61fc0007176256ec4f744c4
#lockdown Aurel.Cordonnier

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18846016 in //UE5/Release-5.0/... via CL 18846053 via CL 18846421
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)

[CL 18846468 by ryan schmidt in ue5-main branch]
2022-02-03 13:52:20 -05:00
ryan schmidt
6ad26b69f0 rename UE::Geometry::TTransform3 to TTransformSRT3, update references
#rb none
#rnx
#jira UE-139757
#preflight 61f572d9e52a8a4a910990f1

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18784197 in //UE5/Release-5.0/... via CL 18784203 via CL 18784222
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18784226 by ryan schmidt in ue5-main branch]
2022-01-29 14:37:53 -05:00
jimmy andrews
8cefe39c38 fix crash in trianglemesh.cpp pointordering if there are no points to sort at the end
#rb cedric.caillaud
#rb rinat.abdrashitov
#rnx
#preflight 61f302811f12674afbc14975

#ROBOMERGE-AUTHOR: jimmy.andrews
#ROBOMERGE-SOURCE: CL 18768348 in //UE5/Release-5.0/... via CL 18768349 via CL 18768402
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18768407 by jimmy andrews in ue5-main branch]
2022-01-28 00:27:35 -05:00
michael balzer
5d1b51983b GeometryCore: Fix incorrect fix for mesh validation
#preflight none

#ROBOMERGE-AUTHOR: michael.balzer
#ROBOMERGE-SOURCE: CL 18737919 in //UE5/Release-5.0/... via CL 18738334 via CL 18739359
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18739956 by michael balzer in ue5-main branch]
2022-01-26 13:54:16 -05:00
michael balzer
258c2c8253 GeometryCore: Disable CheckValidity before/after visualization
#preflight 61f01ee9fd5285142b1a30f2

#ROBOMERGE-AUTHOR: michael.balzer
#ROBOMERGE-SOURCE: CL 18723574 in //UE5/Release-5.0/... via CL 18723597 via CL 18723720
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18723756 by michael balzer in ue5-main branch]
2022-01-25 11:43:58 -05:00
semion piskarev
80f86dd481 MeshModelingTools: Fix normals not being transferred to overlays in Remesh and Simplify when discarding attributes at start. Fix CompactCopy to properly copy vertex normals/uvs.
#rb Ryan.Schmidt
#rnx
#jira UE-139241
#preflight 61e1eb164b4bd12cbee7bb0a

#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 18629628 in //UE5/Release-5.0/... via CL 18629633 via CL 18629637
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v899-18417669)

[CL 18629639 by semion piskarev in ue5-main branch]
2022-01-16 10:42:36 -05:00
tyson brochu
eab2726ba2 Path Extrude Tool: support a single-segment path
#jira UE-138980
#rnx
#rb semion.piskarev
#preflight 61e1b31b076be0fc4e17bbc6

#ROBOMERGE-AUTHOR: tyson.brochu
#ROBOMERGE-SOURCE: CL 18619742 in //UE5/Release-5.0/... via CL 18620226 via CL 18620677
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v899-18417669)

[CL 18620970 by tyson brochu in ue5-main branch]
2022-01-14 13:58:37 -05:00
ryan schmidt
b1793b0c57 GeometryScript: fix issue with CompactMaterialIDs where if material ID set is modified but still compact, compacted material list was incorrect
ModelingComponents: add some more return values to ::CompactAttributeValues() to help to identify above case
#rnx
#jira UE-138808
#preflight 61e083cf797757aace87333e

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18613584 in //UE5/Release-5.0/... via CL 18613615 via CL 18613626
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v899-18417669)

[CL 18613631 by ryan schmidt in ue5-main branch]
2022-01-13 21:33:38 -05:00
matija kecman
dbb5f10b2d GeometryCore: Make top and front of steps generated by StairGenerator have different polygroup face ids
This slightly improves the UX when inserting edge loops because the retriangulation option works in a more intuitive way when face groups are planar

#rb lonnie.li rinat.abdrashitov tyson.brochu
#rnx
#jira none
#preflight 61deb3ba202484edfb4f4c9a

#ROBOMERGE-AUTHOR: matija.kecman
#ROBOMERGE-SOURCE: CL 18582670 in //UE5/Release-5.0/... via CL 18582673 via CL 18582678
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v899-18417669)

[CL 18582687 by matija kecman in ue5-main branch]
2022-01-12 06:14:22 -05:00
tyson brochu
967261a396 Path extrude tool: add support for open curves in PolygonEdgeMeshGenerator
#jira UE-138665
#rnx
#rb rinat.abdrashitov semion.piskarev
#preflight 61dc756a676009ad46407407

#ROBOMERGE-AUTHOR: tyson.brochu
#ROBOMERGE-SOURCE: CL 18562400 in //UE5/Release-5.0/... via CL 18562412
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18562432 by tyson brochu in ue5-release-engine-test branch]
2022-01-10 13:21:53 -05:00
matija kecman
88813c4ec3 MeshModelingToolset: Some minor comment/code cleanup
#rnx
#rb rinat.abdrashitov
#jira none
#preflight 61d8770e81634832b01dafad

#ROBOMERGE-AUTHOR: matija.kecman
#ROBOMERGE-SOURCE: CL 18558515 in //UE5/Release-5.0/... via CL 18558517
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18558526 by matija kecman in ue5-release-engine-test branch]
2022-01-10 07:51:15 -05:00
ryan schmidt
d2ce1bcc0c GeometryProcessing: add MeshAttributeUtil file with CompactAttributeValues() function that compacts the values in an integer triangle attrib set (eg MaterialIDs)
#rb lonnie.li
#rnx
#jira none
#preflight 61bb8bdf47080133bee53a0c

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18477378 in //UE5/Release-5.0/... via CL 18481393
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18481485 by ryan schmidt in ue5-release-engine-test branch]
2021-12-16 19:34:14 -05:00
lonnie li
fa87f303c5 ModelingTools: Add error message if target mesh does not have valid tangents when baking Tangent Normals or Bent Normals.
#rb jimmy.andrews
#rnx
#jira none
#preflight 61b773dac65177a674762a72

#ROBOMERGE-AUTHOR: lonnie.li
#ROBOMERGE-SOURCE: CL 18444053 in //UE5/Release-5.0/... via CL 18445317
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)

[CL 18445496 by lonnie li in ue5-release-engine-test branch]
2021-12-13 13:43:18 -05:00
tyson brochu
dd9de5e98c PathExt tool: enable optional rounded corners. Replaces polygon corners with circular arcs. User can set desired uniform arc radius.
#jira UE-134041
#rb jimmy.andrews
#preflight 61b391f87d2defeffcb858be

#ROBOMERGE-AUTHOR: tyson.brochu
#ROBOMERGE-SOURCE: CL 18432099 in //UE5/Release-5.0/... via CL 18435384
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)

[CL 18435889 by tyson brochu in ue5-release-engine-test branch]
2021-12-10 18:05:44 -05:00
jimmy andrews
fc967a2d79 Add structured down-sampling options to custom voronoi point sets, to allow less-clumped / sharp-edge-favoring down-sampled point sets from meshes and bones
Add a FPriorityOrderPoints class to help with downsampling, implementing a similar algorithm to what is used by physics to help choose collision sample points as a subset of mesh vertices but more generally accessible

#rb michael.balzer
#rb rinat.abdrashitov
#preflight 61b2a0e8c15f11f2f300022a

#ROBOMERGE-AUTHOR: jimmy.andrews
#ROBOMERGE-SOURCE: CL 18427642 in //UE5/Release-5.0/... via CL 18427646
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)

[CL 18427650 by jimmy andrews in ue5-release-engine-test branch]
2021-12-09 19:48:31 -05:00
david hill
1ee7fe9e8e Geometry Core: Oriented bounding box, DiTO algorithm. Expose option for client code to provide sample direction vectors, and add simple unit test.
#rb rinat.Abdrashitov
#preflight 61b10e7ce01bc44973f94e8b

#ROBOMERGE-AUTHOR: david.hill
#ROBOMERGE-SOURCE: CL 18413789 in //UE5/Release-5.0/... via CL 18413818
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)

[CL 18413827 by david hill in ue5-release-engine-test branch]
2021-12-08 17:48:18 -05:00
david hill
42bd36bdde Geometry Core: Add heuristic-based computation of an object oriented bounding box, the DiTO method, also add some related unit tests
#rb rinat.abdrashitov
#preflight 61b0c8525c61dba07bf4b2f5

#ROBOMERGE-AUTHOR: david.hill
#ROBOMERGE-SOURCE: CL 18406239 in //UE5/Release-5.0/... via CL 18406245
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)

[CL 18406254 by david hill in ue5-release-engine-test branch]
2021-12-08 10:43:24 -05:00
jon nabozny
e2c73c3906 Merge //UE5/Release-5.0 into //UE5/Private-Frosty-To-5.0-Staging
CL-18242543


#ROBOMERGE-OWNER: jon.nabozny
#ROBOMERGE-AUTHOR: jon.nabozny
#ROBOMERGE-SOURCE: CL 18251294 via CL 18372372 via CL 18372379
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18372909 by jon nabozny in ue5-release-engine-test branch]
2021-12-03 15:57:56 -05:00
brice criswell
ab8eb53f1a GeometryCore
-Fix for namespace copllisions with UE::Math::FRay3d
#rb jimmy.andrews

#ROBOMERGE-AUTHOR: brice.criswell
#ROBOMERGE-SOURCE: CL 18228803 via CL 18372209 via CL 18372306
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18372355 by brice criswell in ue5-release-engine-test branch]
2021-12-03 15:37:40 -05:00