27 Commits

Author SHA1 Message Date
jimmy andrews
687489972d Make SimpleShapeSet3's sphere transform method match the editor's approach for transforming simple collision spheres -- scaling the radius by the minimum abs-value axis scale -- to get more consistent results when baking component transforms.
#rb lonnie.li

[CL 30359736 by jimmy andrews in ue5-main branch]
2023-12-15 16:08:22 -05:00
jimmy andrews
5ad5ac93dd add collision shape merging to the 'mesh to collision' tool
#jira UE-182346
#rb rinat.abdrashitov

[CL 30171356 by jimmy andrews in ue5-main branch]
2023-12-06 18:23:45 -05:00
jimmy andrews
b23af468dd expose convex decomposition's shape protection to the set collision geometry tool
#rb rinat.abdrashitov

[CL 29876664 by jimmy andrews in ue5-main branch]
2023-11-21 18:01:32 -05:00
jimmy andrews
a2c37576bd prevent cones and cylinders-with-open-ends from being auto-detected as capsules by mesh to collision / shape auto-detection, by adding additional criteria to the capsule detection
plus add a fix to the sphere auto-detection angle tolerance case

#rb David.Hill

[CL 29762868 by jimmy andrews in ue5-main branch]
2023-11-15 17:56:28 -05:00
marc audy
399bcf9971 Disable PVS warning V758
Silence V570 false positives for bit field assignments
Silence various other PVS warnings
#rnx

[CL 29706746 by marc audy in ue5-main branch]
2023-11-14 00:29:43 -05:00
jimmy andrews
5242b95c81 add an angle-based metric for controlling sphere approximation acceptance, and clarify that the existing radial tolerance is vs the best distance possible for an edge of that length rather than the actual distance to the sphere surface. The angle tolerance gives an intuitive control for how coarse a tessellation could be accepted as a sphere.
Set a default value of 72 degrees max angle, so that e.g. cone volumes aren't recognized as spheres.

#rb matija.kecman

[CL 29322771 by jimmy andrews in ue5-main branch]
2023-11-01 13:07:51 -04:00
jimmy andrews
77b35bc5d2 Make more collision geometry types support Min Thickness in the Mesh to Collision tool + Make the tool disable the slider for shapes that don't support it (Convex Decomp and Level Sets)
Add Min Thickness support to the Mesh Convex Hull class

#jira UE-197623
#rb david.hill

[CL 28717587 by jimmy andrews in ue5-main branch]
2023-10-12 13:34:51 -04:00
jimmy andrews
762d32878c make 'mesh to collision' tool's box detection algorithm look for 6 shared planes rather than 6 shared triangle normal directions + make it early-out if it finds more than 6. Fixes staircases being detected as boxes.
#jira UE-183642
#rb tyson.brochu

[CL 27839819 by jimmy andrews in ue5-main branch]
2023-09-13 13:50:38 -04:00
semion piskarev
70eb21d078 MeshModelingTools: Make the box finding code in MeshSimpleShapeApproximation prefer to orient the boxes such that they align with the world frame better.
#rb Jimmy.Andrews
#preflight 6447df3f773f23812dab4c49

[CL 25183877 by semion piskarev in ue5-main branch]
2023-04-25 13:27:03 -04:00
semion piskarev
75a68e7934 MeshModelingTools: Add the "Copy From Inputs" option in Mesh to Collision tool transfer existing simple geometry over to the target.
#rb Jimmy.Andrews
#jira UE-182342
#preflight 6447decb773f23812dab3c30

[CL 25183859 by semion piskarev in ue5-main branch]
2023-04-25 13:26:28 -04:00
ryan schmidt
c49fc562ad CombineMeshInstance: add support for combining simple collision and simple box-merging strategy to combine collision shapes.
GeometryCore: Make TAxisAlignedBox3::DistanceSquared const (should have been). Add TQuaternion * scalar and operator+ functions. Add TTransformSRT3::GetScale3D for API compatibility with engine FTransform
Add FSimpleShapeSet3d::Append() variant that takes a FTransformSequence3d
#rb rinat.abdrashitov
#preflight 63fe7971437ce3e7f3b51c8a

[CL 24454963 by ryan schmidt in ue5-main branch]
2023-02-28 19:00:45 -05:00
Jimmy Andrews
3f0fdaddb4 When applying MeshTransforms' transform and transforminverse, generally pass bReverseOrientationIfNeeded=true
(+ for code that was passing false then manually applying the same logic, remove the extra reverse orientation logic)

#rb david.hill
#preflight 630d245fe352708d44f9e007

[CL 21706500 by Jimmy Andrews in ue5-main branch]
2022-08-30 14:40:56 -04:00
Ryan Schmidt
c52de9c4de GeometryScript: add support for input selection to ComputeMeshConvexHull. Add ComputeMeshConvexDecomposition that exposes new FConvexDecomposition3 algorithm, via FMeshSimpleShapeApproximation
#rb none
#preflight 62ffdacbfc3d0e6817237abf

[CL 21462222 by Ryan Schmidt in ue5-main branch]
2022-08-19 15:04:19 -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
David Hill
9bac4e3bd2 GeometryProcessing: ShapeApproximation, fixing implicit type conversion warnings.
#preflight 62bb2c053771c5710db4f04e
#rb Jimmy.Andrews

[CL 20901025 by David Hill in ue5-main branch]
2022-06-30 14:54:23 -04:00
tyson brochu
178838db35 ContainmentTests: use full level set grid transform, not just translation
#jira UE-155269
#rb jimmy.andrews
#preflight 62967f5b9d75300f41bdee51

[CL 20444082 by tyson brochu in ue5-main branch]
2022-05-31 18:55:26 -04:00
tyson brochu
e78697a2c1 SetCollisionGeometryTool: add Mesh to Level Set / SDF conversion
#rb jimmy.andrews
#preflight 62952aa7e61254772f6b4b5e

[CL 20432875 by tyson brochu in ue5-main branch]
2022-05-30 16:48:48 -04:00
Jimmy Andrews
e64bf36163 expose min part thickness parameter in convex decomposition algorithm out to Msh2Coll tool and Geometry Script api
#preflight 6279639976015d2d65df0f45
#rb rinat.abdrashitov

[CL 20110648 by Jimmy Andrews in ue5-main branch]
2022-05-09 16:41:33 -04:00
Jimmy Andrews
8566e1a762 add convex decomposition options to Msh2Coll tool and geometryscript collision functions
#rb rinat.abdrashitov
#preflight 624751ec292f228e09196984

[CL 19594527 by Jimmy Andrews in ue5-main branch]
2022-04-01 16:04:37 -04:00
ryan schmidt
6ad26b69f0 rename UE::Geometry::TTransform3 to TTransformSRT3, update references
#rb none
#rnx
#jira UE-139757
#preflight 61f572d9e52a8a4a910990f1

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18784197 in //UE5/Release-5.0/... via CL 18784203 via CL 18784222
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18784226 by ryan schmidt in ue5-main branch]
2022-01-29 14:37:53 -05:00
tyson brochu
819b7b59cf If a ToolTarget's MeshComponent has no MeshDescription, return an empty but valid one. Harden various tools to not crash on empty meshes.
#jira UE-135710
#rnx
#rb jimmy.andrews
#preflight 61b24e173d544d1a435f6792

#ROBOMERGE-AUTHOR: tyson.brochu
#ROBOMERGE-SOURCE: CL 18422162 in //UE5/Release-5.0/... via CL 18423015
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)

[CL 18423313 by tyson brochu in ue5-release-engine-test branch]
2021-12-09 15:02:36 -05:00
michael balzer
b8a1c9b6cf GeometryCore: Remove ExplicitUseGeometryMathTypes.h
#ROBOMERGE-AUTHOR: michael.balzer
#ROBOMERGE-SOURCE: CL 18227685 in //UE5/Release-5.0/... via CL 18229350
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 18231457 by michael balzer in ue5-release-engine-test branch]
2021-11-17 19:02:44 -05: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
andrew davidson
57beb335f2 Merging //UE5/Dev-LargeWorldCoordinates [at] 17581892 to //UE5/Main
#ROBOMERGE-AUTHOR: andrew.davidson
#ROBOMERGE-SOURCE: CL 17595295 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v871-17566257)

[CL 17595306 by andrew davidson in ue5-release-engine-test branch]
2021-09-22 10:01:48 -04:00
ryan schmidt
3c6a5318d8 GeometryProcessing: LWC Fixes. Remove GeometryCore TRay3, TSphere3, and TOrientedBox3 from ExplicitUseGeometryMathTypes.h, update call sites to fully-qualified name where necessary (in some cases handled by using declaration at class scope, or by wrapping code in UE::Geometry:: namespace)
#rb none
#rnx
#jira none
#preflight 6126b717d673c400011f438b

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

[CL 17316997 by ryan schmidt in ue5-release-engine-test branch]
2021-08-26 09:31:28 -04:00