Also do some refactoring to pass settings structs which improve readability when setting options, reduce the need to change call sites due to signature changes, and allow overloading of Read/Load functions which return some type
#rb
#rnx
#jira none
#robomerge 5.0
#preflight
[CL 17829083 by matija kecman in ue5-main branch]
#rb ryan.schmidt, tyson.brochu
#preflight 6154c3f2549cbf00019ac526
#ROBOMERGE-AUTHOR: david.hill
#ROBOMERGE-SOURCE: CL 17678078 in //UE5/Release-5.0/... via CL 17678080 via CL 17678087
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v875-17642767)
[CL 17678092 by david hill in ue5-main branch]
- Added new FindNearestHitTriangle overload with bary coords.
- Refactored BakeMeshAttributeMapsTool into common base class with new MultiMesh (N-to-1) variant.
- Extended MeshDescriptionAdapter to support UVs.
- Added new queries on IMeshSpatialWrapper for mesh attributes.
#rb ryan.schmidt
#rnx
#jira UETOOL-3395
#preflight 613fb4c3a70fa0000131ff77
[CL 17497155 by lonnie li in ue5-main branch]
MeshGeodesicSurfaceTracer.{h,cpp} - Add embedded path tracing.
GeodesicSurfaceTracerTests.cpp - unit tests for embedded path tracing
IntrinsicTriangulationMesh.{h, cpp} - Adds two Intrinsic Triangulation mesh types (the more sophisticaed requires embedded path tracing)
IntrinsicMeshTests.cpp - unit tests for Intrinsic mesh types.
MeshLaplacian.{h,cpp} - Adds new enum types for Intrinsic Delaunay Triangulation (IDT) Laplacians
LaplacianOperators.{h,cpp} - Adds wrappers and allow enum switches to build IDT Laplacians if requested
LaplacianMatrixAssembly.h - Actually construction of IDT Laplacian.
Laplacian.cpp - Added trivial unit test for construction of IDT Laplacian
#rb jimmy.andrews
#preflight 6138bca42d09b9000158c95a
[CL 17458853 by David Hill in ue5-main branch]
- remove FDynamicMesh3::Timestamp (unused), rename Shape/Topology Timestamps to Shape/TopologyChangeStamp, change to atomic<uint32>
- add FDynamicMesh3::bEnableShapeChangeStamp, default to false, to disable ShapeChange tracking. Add ::SetShapeChangeStampEnabled() and ::HasShapeChangeStampEnabled() to configure.
- replace FDynamicMesh3::UpdateTimestamps() with UpdateChangeStamps()
- add bTrackChange param to FDynamicMesh3::SetVertex(), optionally updates ShapeChangeStamp (if enabled). Default true. Remove SetVertex_NoTimeStampUpdate(), update call sites.
- add FDynamicMesh3::GetChangeStamp(), returns combination of Shape and Topology stamps as uint64
- rename TTriangleMeshAdapter::GetTimestamp() to GetChangeStamp(), update usages
- remove TPointSetAdapter::Timestamp() (was not used in code)
- update TMeshAABBTree3 to use GetChangeStamp(), update internal checks to call IsValid() instead
- update TFastWindingTree w/ similar changes
- update calls in UVEditor, may require further updates
#rb semion.piskarev
#rnx
#jira none
#preflight 6126904c72e9eb00011434fe
[CL 17310271 by Ryan Schmidt in ue5-main branch]