Commit Graph

43 Commits

Author SHA1 Message Date
ryan schmidt
cd0d01cd68 GeometryCore: handle case where a mesh overlay has serialized unreferenced elements, ie that have no parent vertex. Existing code will try to look up the remapping w/ a parent ID of -1, causing a crash.
#rb michael.balzer
#rnx
#jira none

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 17698542 in //UE5/Release-5.0/... via CL 17698543
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v875-17642767)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17698545 by ryan schmidt in ue5-release-engine-test branch]
2021-10-01 19:06:02 -04:00
jimmy andrews
84ecdee219 fix crash on trying to sculpt after clicking 'discard attributes' in dynamic mesh sculpt tool
#jira UE-118864
#rb ryan.schmidt
#rnx
#preflight 6156f3074751730001819312

#ROBOMERGE-AUTHOR: jimmy.andrews
#ROBOMERGE-SOURCE: CL 17690602 in //UE5/Release-5.0/... via CL 17690603
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v875-17642767)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17690605 by jimmy andrews in ue5-release-engine-test branch]
2021-10-01 08:21:22 -04:00
david hill
8ec4356eb0 Moving IntrinsicTriangulationMesh and related MeshGeodesicSurface tracer out of Geometry Core, and into the DynamicMesh plugin
#rb ryan.schmidt, tyson.brochu
#preflight 6154c3f2549cbf00019ac526


#ROBOMERGE-AUTHOR: david.hill
#ROBOMERGE-SOURCE: CL 17678078 in //UE5/Release-5.0/... via CL 17678080
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v875-17642767)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17678087 by david hill in ue5-release-engine-test branch]
2021-09-30 10:52:07 -04:00
ryan schmidt
6437ecc4a1 GeometryCore: replace all usage of GeometryCore FVector3<T> with TVector<T>, remove FVector3<T> and GVector4<T>
#rb none
#rnx
#jira none
#preflight 614ce33574f7e70001ea822b

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 17617027 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v871-17566257)
#ROBOMERGE[STARSHIP]: UE5-Release-Engine-Staging Release-5.0

[CL 17617043 by ryan schmidt in ue5-release-engine-test branch]
2021-09-23 19:38:55 -04:00
michael balzer
03c8199135 GeometryCore: Fix Non-Unity build error in dynamic mesh serialization
#rb trivial
#rnx

#ROBOMERGE-AUTHOR: michael.balzer
#ROBOMERGE-SOURCE: CL 17565335 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17565340 by michael balzer in ue5-release-engine-test branch]
2021-09-18 23:43:16 -04:00
michael balzer
9179d00f86 GeometryCore: Improved serialization for dynamic mesh data
This CL adds improved serialization for FDynamicMesh3 and its data structures:
- FDynamicMesh3, TDynamicVector, FRefCountVector, FSmallListSet, TDynamicMeshOverlay, ...
- Versioning using the UE5Main stream version
- Discarding redundant data
- Oodle compression
- Serialization of vertex skin weights
- Additional unit tests and benchmark

#jira UETOOL-3821
#preflight 6145b802c2c19000017e2f6f, 6145b81ea7246e00017b1a43

#ROBOMERGE-AUTHOR: michael.balzer
#ROBOMERGE-SOURCE: CL 17563009 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17563024 by michael balzer in ue5-release-engine-test branch]
2021-09-18 06:30:57 -04:00
ryan schmidt
372f62e938 GeometryScripting: make RevolvePolygon and Torus support extended revolve options, add SpiralRevolvePolygon
GeometryCore: add RevolveGenerator, generates surface-of-revolution meshes for open and closed profiles, the latter w/ spirals. Port of more general code in CurveSweepOp/RevolveProperties to expose at lower levels (needs further code cleanup)
#rb none
#rnx
#jira none
#preflight 6144ca01c2c19000014c9463

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 17555809 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17555838 by ryan schmidt in ue5-release-engine-test branch]
2021-09-17 14:29:35 -04:00
jimmy andrews
7226231677 Fixes to CompactInPlace: keep ElementTriangles 1:1 with ParentMesh triangles, don't try to copy when there's no mapping, but copy back InvalidID when the (mapped) element tri is unset
#rb semion.piskarev, michael.balzer
#rnx
#preflight 6143dee9b5a4fa00017b43bb

#ROBOMERGE-AUTHOR: jimmy.andrews
#ROBOMERGE-SOURCE: CL 17552321 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17552338 by jimmy andrews in ue5-release-engine-test branch]
2021-09-17 10:55:35 -04:00
michael balzer
de95b90b29 GeometryCore: Fix TDynamicMeshOverlay<>::CompactInPlace() not compacting ElementTriangles vector
#preflight 6141714f599fd80001483188, 6141713b3c7c6700017f4923
#rnx

#ROBOMERGE-AUTHOR: michael.balzer
#ROBOMERGE-SOURCE: CL 17520863 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17520877 by michael balzer in ue5-release-engine-test branch]
2021-09-15 11:40:42 -04:00
semion piskarev
b6e050a125 MeshModelingTools: Added a CubeGrid tool, which allows for blocky boolean operations on an orientable power-of-two grid.
#rb Jimmy.Andrews, Matija Kecman
#rnx
#jira none
#preflight 6142002f8169560001cf8b91

#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 17520534 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17520546 by semion piskarev in ue5-release-engine-test branch]
2021-09-15 11:24:36 -04:00
ryan schmidt
fdf28f3d36 GeometryCore: make DynamicMesh::IsSameAs function const
#rb none
#rnx
#jira none
#preflight 6140d28630c00d0001dd6a6a

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 17507424 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17507437 by ryan schmidt in ue5-release-engine-test branch]
2021-09-14 14:20:07 -04:00
michael balzer
22b1e5b8e1 GeometryCore: Fix over-allocating triangles in FDynamicMesh3::CompactInPlace()
This CL fixes an issue where we accidentally allocate three times the amount of necessary triangles during `CompactInPlace()`. I also added a test during `CheckValidity()` to make sure that if we have dense ref counts the size of the vertex/triangle vectors is identical to the number of ref counts.

#rb jimmy.andrews
#preflight 61401b977dae460001e27ebe, 61401bbc878eef000160df3d

#ROBOMERGE-AUTHOR: michael.balzer
#ROBOMERGE-SOURCE: CL 17500874 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17500882 by michael balzer in ue5-release-engine-test branch]
2021-09-14 01:21:36 -04:00
ryan schmidt
2261125642 GeometryProcessing: force UV/normal overlays to be initialized on creation inside a DynamicMeshAttributeSet.
#rb michael.balzer
#rnx
#jira none
#preflight 6138f6289c40ec00012a7289

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 17463301 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17463750 by ryan schmidt in ue5-release-engine-test branch]
2021-09-08 16:59:20 -04:00
david hill
6dfe7cada9 IntrinsicTriangulationMesh.cpp Adding missing include - fixing non unity build error
#ROBOMERGE-AUTHOR: david.hill
#ROBOMERGE-SOURCE: CL 17461087 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17461097 by david hill in ue5-release-engine-test branch]
2021-09-08 14:04:42 -04:00
david hill
1b53940a8c GeometryCore: Add Embedded Path Tracing across FDynamicMesh surfaces and Intrinsic Triangulations of FDynamicMeshes. Also update Mesh Laplacian Code to generate Cotan Laplacians from Intrinsic Triangulation.
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

#ROBOMERGE-AUTHOR: david.hill
#ROBOMERGE-SOURCE: CL 17458853 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17458863 by david hill in ue5-release-engine-test branch]
2021-09-08 11:15:58 -04:00
ryan schmidt
f6c51e0c61 GeometryCore: minor DynamicMesh fixes. Change ensure to a checkSlow in DynamicMesh3::AppendTriangle. Add FDynamicMeshOverlay::GetTriangleIfValid(). Handle unset triangles in CountVertexElements().
#rb tyson.brochu
#rnx
#jira none
#preflight 612fa9a575bca200010b8148

#ROBOMERGE-SOURCE: CL 17393286 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17393312 by ryan schmidt in ue5-release-engine-test branch]
2021-09-01 18:01:47 -04:00
ryan schmidt
4e422005cd GeometryCore: Add minimal UE::Math::TVector2<T> implementation and FVector2f/2d typedefs locally in GeometryCore VectorTypes.h. Replace existing FVector2<T> with this class, in preparation for LWC conversion. FVector2 members ::Distance() and ::DistanceSquared() moved to free functions. Update all call sites and references to FVector2.
#rb jimmy.andrews
#rnx
#jira none
#preflight 612d248c423a8f00013287f2

#ROBOMERGE-SOURCE: CL 17359821 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17359838 by ryan schmidt in ue5-release-engine-test branch]
2021-08-30 18:03:07 -04:00
nathan mitchell
0fc29c3cfb UVEditor: Add support for sew action as part of the Select/Transform tool
Additionally adds a new parameter to the DynamicMesh MergeEdge method to ignore orientation discrepancies, useful in 2D mesh manipulation, and fixes a bug in the SetTriangle method where a variable was being left uninitialized.

#rb semion.piskarev
#rnx
#jira UETOOL-3112

#ROBOMERGE-SOURCE: CL 17328444 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v861-17282326)

[CL 17328460 by nathan mitchell in ue5-release-engine-test branch]
2021-08-26 19:53:44 -04:00
ryan schmidt
e3183cb1e7 GeometryProcessing: clean up mesh timestamps.
- 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

#ROBOMERGE-SOURCE: CL 17310271 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v861-17282326)

[CL 17315112 by ryan schmidt in ue5-release-engine-test branch]
2021-08-26 06:57:55 -04:00
michael balzer
b0035b9921 GeometryCore: Add unit test for loading all serialization versions of FDynamicMesh3
This CL adds a unit test and some related basic infrastructure for testing the backwards compatibility of our FDynamicMesh3 serialization. This is in anticipation of the incoming serialization changes.

#jira UETOOL-3821
#rb lonnie.li david.hill
#preflight 6125e930af9a8f0001691400, 6125e96a72e9eb0001f69cd3
#rnx

#ROBOMERGE-SOURCE: CL 17310112 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v861-17282326)

[CL 17315105 by michael balzer in ue5-release-engine-test branch]
2021-08-26 06:57:09 -04:00
michael balzer
58f950d182 GeometryCore: Refactor FCompactMap
#rb ryan.schmidt
#preflight 61242d242c1f1c0001ab244f
#rnx

#ROBOMERGE-SOURCE: CL 17297241 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v861-17282326)

[CL 17297258 by michael balzer in ue5-release-engine-test branch]
2021-08-24 21:40:58 -04:00
ryan schmidt
08cb1b68cf GeometryProcessing: remove unused cached bounding-box support in FDynamicMesh3
#rb none
#rnx
#jira none
#preflight 61245788008be90001a5e767

#ROBOMERGE-SOURCE: CL 17286687 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v861-17282326)

[CL 17286706 by ryan schmidt in ue5-release-engine-test branch]
2021-08-24 10:16:20 -04:00
ryan schmidt
3e9494d723 GeometryProcessing: remove most calls to FDynamicMesh3::GetCachedBounds()
#rb jimmy.andrews
#rnx
#jira none
#preflight 612436ea8ff55400012a182c

#ROBOMERGE-SOURCE: CL 17280425 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v858-17259218)

[CL 17280439 by ryan schmidt in ue5-release-engine-test branch]
2021-08-23 22:08:34 -04:00
ryan schmidt
befd9ab05e GeometryProcessing: remove FDynamicMesh3::CachedIsClosed()
#rb jimmy.andrews
#rnx
#jira none
#preflight 6123fed7864948000170d754

#ROBOMERGE-SOURCE: CL 17279375 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v858-17259218)

[CL 17279378 by ryan schmidt in ue5-release-engine-test branch]
2021-08-23 20:01:35 -04:00
jimmy andrews
ec491379cc Remove duplicate FDynamicMesh vertex triangle one ring function, optimize the remaining function some, and remove bool that doesn't change result.
#rb ryan.schmidt
#rnx

#ROBOMERGE-SOURCE: CL 17251072 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)

[CL 17251085 by jimmy andrews in ue5-release-engine-test branch]
2021-08-20 14:54:52 -04:00