Changes include
* Removed #pragma once in cpp files
* Removed dll export on templated types
* Fixed code in headers that didn't compile (probably never included anywhere
* Added casting for code going from int to float. Header was never compiled in the owning module that had warnings as errors
#preflight 637b10c6fa348e848054bd0d
#rb none (devin.doucette for a couple files)
[CL 23218414 by henrik karlsson in ue5-main branch]
-Added a Blend function overload that handles barycentric interpolation of 3 skin weights.
-Refactored SetBoneWeightsFromBary (in DynamicVertexSkinWeightsAttribute.h) and ConstructVertexSkinWeightsAttribute (in SelectiveTessellate.cpp) functions to use the newly added Blend function for barycentric interpolation.
-Since the default Blend behavior has changed, make sure that unit tests in BoneWeightTests.cpp are refactored. Added more tests for cases when bBlendZeroInfluence is set to true and when using Blend for barycentric interpolation.
#rb halfdan.ingvarsson
#jira None
#preflight 6361de120c2e7c8f91668a75
[CL 22921407 by rinat abdrashitov in ue5-main branch]
(PolyExt, PathExt, PathRev, and BdryRev)
#jira UE-141656
#rb david.hill
#preflight 6307950c6f3401e0225dfa29
[CL 21566086 by Jimmy Andrews in ue5-main branch]
GeometryScript: add SplitMeshBowties, RepairMeshDegenerateGeometry, and GetMeshInfoString functions
#rb none
#preflight 630387dec85b7fef224a1dcd
[CL 21483407 by Ryan Schmidt in ue5-main branch]
Headers are updated to contain any missing #includes needed to compile and #includes are sorted. Nothing is removed.
#ushell-cherrypick of 21065896 by bryan.sefcik
#preflight 62d4b1a5a6141b6adfb0c892
#jira
#ROBOMERGE-OWNER: Bryan.sefcik
#ROBOMERGE-AUTHOR: bryan.sefcik
#ROBOMERGE-SOURCE: CL 21150156 via CL 21151754 via CL 21154719
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)
#ROBOMERGE-CONFLICT from-shelf
[CL 21181076 by Bryan sefcik in ue5-main branch]
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]
- 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]
GeometryProcessing: add functions to FGroupTopology to query some information by FMeshEdgeTriID
#rb davd.hill, jimmy.andrews
#preflight 62b0dec89c1686e7e7eecbe2
[CL 20745548 by Ryan Schmidt in ue5-main branch]
ModelingTools: Add option to Weld Tool to try to resolve T-junctions. Add feedback to report back the initial and final number of open boundary edges.
#rb jimmy.andrews
#preflight 62a260e48b67b148f2600dd8
[CL 20585253 by Ryan Schmidt in ue5-main branch]
GeometryCore: Add bClearExisting option to FDynamicMeshAttributeSet::EnableMatchingAttributes(). Default true is old behavior. New behavior, when false, is to preserve existing attribute set counts/values. Also now copying group and weight layer names if not set.
ModelingTools: CombineMeshesTool now uses EnableMatchingAttributes instead of only explicitly matching UV layers, so group and weight layers are copied properly to duplicates
MeshConversion: DynamicMeshToMeshDescription now generates unique names in ConvertPolygroupLayers and ConvertWeightLayers. Previously if multiple attribs had the same name (eg NAME_None), output MeshDescription would only have a single attrib w/ that name
#rb david.hill
#preflight 62a116439a3e81e904dde76f
[CL 20570919 by Ryan Schmidt in ue5-main branch]
- Allow the Attribute Editor Tool to add/delete weight maps from DynamicMesh targets.
- Enable transferring scalar weight maps back and forth between DynamicMesh and MeshDescription.
- Serialize TDynamicAttributeBase::Name when its subclasses are serialized
#rb nathan.mitchell
#preflight 62439b2ab6084b9832307f6e
[CL 19551734 by tyson brochu in ue5-main branch]
- 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]