Commit Graph

31 Commits

Author SHA1 Message Date
henrik karlsson
2b3ad519a5 Fixed compile error surfaced when orphaned headers got compiled (they were never included in their own module so compiler warning settings was never applied)
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]
2022-11-21 03:22:34 -05:00
henrik karlsson
b5164ac775 Fixes to make modules compile with IWYU. We've added to IWYU toolchain so it compiles "orphaned" headers which does not have a owning cpp file. This identified lots of headers that couldn't be compiled by themselves (or if they were to included first)
Change consist of only forward declaration and additional includes

#preflight 63789c1de30d438849c48188
#rb none

[CL 23218412 by henrik karlsson in ue5-main branch]
2022-11-21 03:22:23 -05:00
jimmy andrews
1fb9676459 Make mesh symmetry detection detect more symmetry cases, more robustly, so VSculpt will recognize symmetry after using Mirror Tool
#jira UE-159448
#rb david.hill
#preflight 63237c365a44869a7d0922f8

[CL 22040790 by jimmy andrews in ue5-main branch]
2022-09-15 18:44:06 -04:00
Bryan sefcik
b4a6e947d8 Ran IWYU on Public headers under Engine/Source/Runtime/...
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]
2022-07-20 11:31:36 -04:00
David Hill
bd6eef7ea1 Geometry Core, Geometry Processing. Fix implicit cast warnings encountered during clang build.
GeometryCore: StairGenerator.cpp, SweepGenerator.{h,.cpp}, UVPacking.cpp, ParallelTransformReduce.h, CurvewUtil.h, SweepingMeshSDF.h FastWinding.h

GeometryProcessing:  Remesher.cpp, AdaptiveTessellate.cpp, UniformTessellate.cpp, GeometrySelectionUtil.cpp, MeshSimpleApproximation.cpp

#rb Lonnie.Li
#preflight 62d5bfa347779a730a46bc55

[CL 21161422 by David Hill in ue5-main branch]
2022-07-19 09:31:09 -04:00
Ryan Schmidt
f3812c4df5 GeometryCore: add FSegmentTree3, an AABBTree for 3D line segments. Supports finding Nearest Segment to 3D point, and FindNearestVisibleSegmentHitByRay() which raycasts into a set of boxes based on a "visibility" metric, similar to FGeometrySet3::FindNearestCurveToRay().
Modify FGeometrySet3::FindNearestCurveToRay to use a single visibility metric, instead of branches. The previous code was dependent on the order in which segments were processed, and for the purposes of 3D UI hit testing, did not seem to do any better than the current code.

Add basic tests for FSegmentTree3 queries.

#rb rinat.abdrashitov
#preflight 62d5db7547779a730a49033b

[CL 21156801 by Ryan Schmidt in ue5-main branch]
2022-07-18 21:55:20 -04:00
David Hill
a23bc609a2 GeometryCore: Spatial and Implicit: fix type conversion warnings with MeshWindingNumber, CachingMeshSDF and SparseNarrowBandMeshSDF
#rb Jimmy.Andrews
#preflight 62bc6796fd062511870fdd5e

[CL 20897980 by David Hill in ue5-main branch]
2022-06-30 13:02:44 -04:00
tyson brochu
ba94d8c122 ParallelTransformReduce: fix implicit 64-bit to 32-bit conversion
#preflight 62b20b46c400b5ee2f5b8150

[CL 20762804 by tyson brochu in ue5-main branch]
2022-06-21 14:48:21 -04:00
Jimmy Andrews
e6a1ec147c Rule-of-5-or-0 fixes for some geometry types:
- remove TGeneralPolygon2 and IntBoxTypes.h copy constructors, to allow everything to be autogenerated (especially so that a proper move should be generated for TGeneralPolygon2)
 - add explicit moves + delete copies for TSparseGrid3 and FProgressCancel::ProgressScope, as these have custom destructors and the default move/copy behavior would cause bugs
 - make voro++ move assignment protect vs self-move

#rb ryan.schmidt
#preflight 62a8acbb1a6b7dcd549b3239

[CL 20709684 by Jimmy Andrews in ue5-main branch]
2022-06-17 16:58:10 -04:00
Jimmy Andrews
d20f4f4012 Fixes to FPriorityOrderPoints:
1. Actually use the SpatialLevels argument
2. Only allow early stopping at level boundaries, so the priority ordering can properly sort points at the same spatial level. Fixes points being spatially clumped when early stopping is enabled.
3. Stop referring to some of the importance weights as "curvature" (we often weight by things other than curvature)
4. Expose OffsetResFactor to allow more control of how clumpy the distribution is (value was hardcoded at 4, but I think 1 or 2 tends to space things better)

#rb david.hill
#preflight 628fb6d48c23e52ef0fbec28

[CL 20381323 by Jimmy Andrews in ue5-main branch]
2022-05-26 13:37:41 -04:00
David Hill
bc7cab5826 Geometery Core: extends the blocked 3d grids and adds narrow band sparse SDF generation using these blocked grids.
unittests are included for the blocked grids and sdf generation, as well as benchmarks for sdf generation.
( This CL flushes out an old shelf of Ryan's.)

#preflight 62713371fe09c0cfbc3719a1
#rb Tyson.Brochu

[CL 20042490 by David Hill in ue5-main branch]
2022-05-04 11:28:18 -04:00
matija kecman
9717d7fa19 Modeling Tools: Fix some incorrect comments
#rb lonnie.li
#rnx
#jira none
#preflight 625e77029c09ef439d8b5c4b

[CL 19805534 by matija kecman in ue5-main branch]
2022-04-19 05:05:04 -04:00
jonathan adamczewski
78010a6fff MeshWindingNumberGrid.h: Don't proceed through Compute() if the bounding volume is empty.
Avoids overflow errors from msvc for certain target configurations.

#jira none
#rb halfdan.ingvarsson
#rnx
#preflight 625dfa31b72cfbaf9626f1f4

[CL 19798652 by jonathan adamczewski in ue5-main branch]
2022-04-18 20:08:49 -04:00
Jimmy Andrews
bc4f091865 Expose optional second importance weight to the FPriorityOrderPoints class
#rb rinat.abdrashitov
#preflight 623e11818330d27ee37434d4

[CL 19519241 by Jimmy Andrews in ue5-main branch]
2022-03-25 18:00:27 -04: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
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
jimmy andrews
bd5cc87c87 fix crash in sparse octree on growing FDynamicFlagArray by exactly the GrowChunkSize
also fix crash in sparse octree FDynamicFlagArray if Set(Idx, false) where Idx > current Max

#jira UE-141047
#rnx
#preflight 61faf2a0033a864b77dc49a4
#rb rinat.abdrashitov

#ROBOMERGE-AUTHOR: jimmy.andrews
#ROBOMERGE-SOURCE: CL 18842872 in //UE5/Release-5.0/... via CL 18842881 via CL 18843057
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)

[CL 18843069 by jimmy andrews in ue5-main branch]
2022-02-03 10:14:59 -05:00
michael balzer
905399abd3 GeometryCore: Fix crash in TMeshWindingNumberGrid for zero cell size
#preflight 61de32b86a076ddb53d362b4

#ROBOMERGE-AUTHOR: michael.balzer
#ROBOMERGE-SOURCE: CL 18588632 in //UE5/Release-5.0/... via CL 18588644 via CL 18588662
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v899-18417669)

[CL 18588680 by michael balzer in ue5-main branch]
2022-01-12 15:20:20 -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
jimmy andrews
fd07763a78 remove UE::Geometry::TRay3 and replace usages with UE::Math::TRay
#rb tyson.brochu
#rnx
#preflight 6195872476668b37001d1141

#ushell-cherrypick of 18231220 by Jimmy.Andrews

#ROBOMERGE-AUTHOR: jimmy.andrews
#ROBOMERGE-SOURCE: CL 18232491 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v895-18170469)

[CL 18232527 by jimmy andrews in ue5-release-engine-test branch]
2021-11-17 21:06:46 -05:00
jimmy andrews
633ca0f90d fix geometryprocessing tests by changing MeshAABBTree3 to have the original 'effective' default tris per leaf (of 3), rather than the original value of 4, now that the off-by-one bug in how it handles that value has been fixed.
#jira UE-132001
#rnx
#preflight 616e3bc6aa49f30001a0a151

#ROBOMERGE-AUTHOR: jimmy.andrews
#ROBOMERGE-SOURCE: CL 17855629 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v883-17842818)
#ROBOMERGE[STARSHIP]: UE5-Release-Engine-Staging Release-5.0

[CL 17855636 by jimmy andrews in ue5-release-engine-test branch]
2021-10-19 00:29:05 -04:00
matija kecman
1e25b7bd06 Add WriteOBJ function for FDynamicMeshAABBTree3 and ReadOBJ function useful to inline small obj files
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
#preflight

#ROBOMERGE-AUTHOR: matija.kecman
#ROBOMERGE-SOURCE: CL 17829083 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v881-17767770)
#ROBOMERGE[STARSHIP]: UE5-Release-Engine-Staging Release-5.0

[CL 17829101 by matija kecman in ue5-release-engine-test branch]
2021-10-15 10:32:03 -04:00
jimmy andrews
71e9e3ba53 manually copy CIS fix from 4.27-chaos, because file moved (add size_t cast to SparseDynamicPointOctree3 function)
#rnx

#ROBOMERGE-AUTHOR: jimmy.andrews
#ROBOMERGE-SOURCE: CL 17804568 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v881-17767770)
#ROBOMERGE[STARSHIP]: UE5-Release-Engine-Staging Release-5.0

[CL 17805034 by jimmy andrews in ue5-release-engine-test branch]
2021-10-13 16:22:07 -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