Commit Graph

272 Commits

Author SHA1 Message Date
jimmy andrews
583c4a50f3 serialize the bones in dynamic mesh attribute sets
#jira UE-202248
#lockdown marc.audy
#rb Marc.Audy, tyson.brochu

[CL 36754833 by jimmy andrews in 5.5 branch]
2024-10-01 19:02:45 -04:00
kiaran ritchie
b293d1129d Skin weight tool: Fixes crash stemming from CleanMesh operation due to invalid non-manifold vertex mapping
Also fixes issue where material assignment can be scrambled after exiting the tool.

#rb halfdan.ingvarsson
#JIRA UE-224313, UE-223602
#swarm https://p4-swarm.epicgames.net/reviews/36490505

[CL 36753585 by kiaran ritchie in 5.5 branch]
2024-10-01 18:51:55 -04:00
jimmy andrews
78c65dadf1 fix 2D voronoi diagram generation failing collinear inputs
+ add a result enum to delaunay triangulation so we can know the reason for triangulation failures

#jira UE-224295
#rb David.Hill

[CL 36753394 by jimmy andrews in 5.5 branch]
2024-10-01 18:50:21 -04:00
halfdan ingvarsson
df166cdbe7 Geoscripting: Add an option to reconstruct non-manifold meshes
#rb David.Hill

[CL 36212041 by halfdan ingvarsson in 5.5 branch]
2024-09-11 17:57:34 -04:00
Ryan Hummer
4af2fd066d Updating Dev-Release-5.5 from Main at CL #36144969
#okforversepublic

[CL 36146571 by Ryan Hummer in Dev-5.5 branch]
2024-09-10 10:26:02 -04:00
semion piskarev
bfeabdbcd0 Geometry: Added 2d triangle circle intersection utility. Fixed 2d triangle IsInsideOrOn function to properly handle degenerate cases and to have tolerance. Added 2d segment IsOnSegment function and GetSide function that handles tolerance properly. Added unit tests.
#rb David.Hill, Jimmy.Andrews

[CL 35837523 by semion piskarev in ue5-main branch]
2024-08-27 16:55:01 -04:00
henrik karlsson
277f0cf7fa Removed dllexported template instantiations when building with merged modules. Reason is because some of the console platform compilers don't handle this properly.
[CL 35832838 by henrik karlsson in ue5-main branch]
2024-08-27 14:41:00 -04:00
semion piskarev
2626879753 DynamicMesh: Allow more permissive options for edge collapse.
#rb Jimmy.Andrews

[CL 35806890 by semion piskarev in ue5-main branch]
2024-08-26 15:15:52 -04:00
jimmy andrews
a8ca7e826b add a details string to the mesh difference info struct, so we can report more specific information about differences when it's useful to do so (e.g., the triangle counts for both meshes, if the triangle count was what differed)
#rb David.Hill
#jira UE-178598

[CL 35773605 by jimmy andrews in ue5-main branch]
2024-08-23 12:20:27 -04:00
jimmy andrews
6f067213bc make dynamic mesh IsSameAs method also report the kind of difference it found (if any) and the mesh element that was different (if applicable)
+ similarly change the equivalent geometry script method

#jira UE-178598
#rb David.Hill

[CL 35747815 by jimmy andrews in ue5-main branch]
2024-08-22 13:46:41 -04:00
henrik karlsson
78ba369d2c Fixed linker errors on some console platform when building modular builds. Fixes involves moving ctor/dtor and friends from header to cpp and dll import/export
[CL 35710553 by henrik karlsson in ue5-main branch]
2024-08-21 13:44:16 -04:00
david hill
2548a0ca06 Dynamic Mesh - fix an algorithmic comment
#rb Jimmy.Andrews

[CL 35661985 by david hill in ue5-main branch]
2024-08-20 14:06:38 -04:00
nick edwards
4ff5a8e33b [Build Health] TDynamicMeshOverlay, TDynamicMeshVectorOverlay & TDynamicMeshAttributeChange: Add missing explicit instantiation declarations and add appropriate dllapi for them. Addresses "attribute 'dllexport' cannot be applied to member of 'dllexport' class" error.
[FYI] henrik.karlsson

[CL 35593737 by nick edwards in ue5-main branch]
2024-08-16 10:15:40 -04:00
henrik karlsson
2dc722078e [Engine]
* Moved dllapi from types to functions/static vars
* Changed so extern template instantiation is based on clang or not instead of if linux and mac since we also build windows using clang
* Added dllapi on some member functions inside template types where the code is in the cpp file. This is needed to tell the compiler these functions will be dll exported (clang does not accept only adding it on the instantiation

[CL 35586891 by henrik karlsson in ue5-main branch]
2024-08-15 23:55:51 -04:00
nathan mitchell
1d8d099a5b GeometryProcessing: Added functionality to the UV Layout code to allow for preserving existing UV island's scale and orientation during layout operations.
Additionally cleaned up numerical logic within the UV Packer code and added comments for confusing areas of the code.

#jira UE-217881
#rb lonnie.li

[CL 35382850 by nathan mitchell in ue5-main branch]
2024-08-07 18:00:36 -04:00
halfdan ingvarsson
b1b88b7836 Geometry Scripting: Multiple improvements.
- Add an option to CopyBonesFromMesh to only retain some parts of the skeleton.
- Add a function to blend between two skin weight arrays.
- Add a function to copy weights from one profile to another on the same mesh.

#rb David.Hill, Jimmy.Andrews

[CL 34662264 by halfdan ingvarsson in ue5-main branch]
2024-06-25 18:56:05 -04:00
jimmy andrews
d20139f1ae Compact small list sets during dynamic mesh CompactInPlace
#rb David.Hill, tyson.brochu

[CL 34353052 by jimmy andrews in ue5-main branch]
2024-06-13 16:24:47 -04:00
kiaran ritchie
4b89bc10dc Fixes skin paint issue where vertex flood does not work on some meshes.
Added CleanMesh() to skin paint tool.

#rb halfdan.ingvarsson
#JIRA UE-205991

[CL 34177890 by kiaran ritchie in ue5-main branch]
2024-06-06 18:08:32 -04:00
jimmy andrews
47b3902fa3 better fix for dynamic mesh merge edges, to not prevent edge merges for edge pairs that share a vertex
#rb jimmy.andrews

[CL 34159579 by jimmy andrews in ue5-main branch]
2024-06-06 11:49:28 -04:00
jimmy andrews
e3f7cd01ca fix issue with dynamic mesh edge merges where we could create a non-manifold mesh by trying to merge edge AB to edge CD when edge AD also existed in the mesh; resulting in the tris originally connected to edges AB, CD and AD all having edge AB after the merge.
With this change, we now refuse to merge the edges in this case.
#rb tyson.brochu

[CL 34146156 by jimmy andrews in ue5-main branch]
2024-06-05 21:27:09 -04:00
jimmy andrews
a7a40090b5 fix quickhull initialization to never double-assign points, and remove the duplicate point filtering from the subsequent point insertion steps
#rb lonnie.li

[CL 34097799 by jimmy andrews in ue5-main branch]
2024-06-04 12:54:06 -04:00
jimmy andrews
a9b85ce83d add an 'at origin' specialization of the orient2d exact predicate, since it can be a fair bit simpler/cheaper
#rb David.Hill

[CL 33992256 by jimmy andrews in ue5-main branch]
2024-05-29 19:38:06 -04:00
jimmy andrews
7c2565a458 Inline some geometrycore smalllistset methods and change them to use a template function, to reduce overhead of tfunction calls in dynamic mesh processing
#rb David.Hill

[CL 33372946 by jimmy andrews in ue5-main branch]
2024-05-01 10:52:32 -04:00
jimmy andrews
f80268aac0 Make the dynamic mesh copy-from-shape-generator build faster, by building attributes after appending the base triangles + inlining AddEdgeInternal
#rb David.Hill

[CL 33372899 by jimmy andrews in ue5-main branch]
2024-05-01 10:50:57 -04:00
steve robb
20e93ad90b Fixed potentially uninitialized variables.
#jira UE-87511

[CL 33146357 by steve robb in ue5-main branch]
2024-04-22 14:54:14 -04:00