Commit Graph

16 Commits

Author SHA1 Message Date
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
3788d6d227 Fix FPoly::OptimizeIntoConvexPolys() creating polygons that fail coplanar check in FPoly::IsCoplanar()
#jira UE-136826
#preflight 61b017cc530975c280d22dee

#ROBOMERGE-AUTHOR: michael.balzer
#ROBOMERGE-SOURCE: CL 18407737 in //UE5/Release-5.0/... via CL 18407741
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)

[CL 18407750 by michael balzer in ue5-release-engine-test branch]
2021-12-08 12:35:46 -05:00
ryan schmidt
17cefb1dd1 ModelingTools:
Reduce surface area of MeshDescriptionProvider/Committer, replace with UE::ToolTarget:: calls where possible.

Add new UE::ToolTarget::CommitMeshDescriptionUpdateViaDynamicMesh() function. This is being used for now to avoid potential regressions as UE::ToolTarget::CommitDynamicMeshUpdate will preferentially use DynamicMeshCommitter, and I am not certain it is functionally equivalent in all cases.
Add new UE::ToolTarget::CommitDynamicMeshNormalsUpdate(), similar to existing UV version
Add new Move-variant of UE::ToolTarget::CommitMeshDescriptionUpdate(), uses new Move-variant of IMeshDescriptionCommitter::CommitMeshDescription.
Make existing IMeshDescriptionCommitter::CommitMeshDescription callback interface protected, to prevent usage of this function at public API level (will be removed in future).

Tool updates should not change, just using cleaner APIs.
EditNormalsTool now uses CommitDynamicMeshNormalsUpdate(), which does go via DynamicMeshCommitter preferentially, where it previously went via MeshDescriptionCommitter. In light testing the results appear equivalent.
AttributeEditorTool now operates on MeshDescription copies in various update functions. These are not performance-critical.

#rb rinat.abdrashitov
#rnx
#preflight 61ae45998358693a22c28d1b

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18384350 in //UE5/Release-5.0/... via CL 18384361
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v896-18170469)

[CL 18384373 by ryan schmidt in ue5-release-engine-test branch]
2021-12-06 12:42:19 -05:00
tyson brochu
4db31647fd Subdivide tool: optionally create new polygroups for refined output faces
#jira UETOOL-2668
#rnx
#preflight 61a8fd92245256036a03e0d2

#ROBOMERGE-AUTHOR: tyson.brochu
#ROBOMERGE-SOURCE: CL 18353998 in //UE5/Release-5.0/... via CL 18354019
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18354032 by tyson brochu in ue5-release-engine-test branch]
2021-12-02 12:21:36 -05:00
ryan schmidt
48e1cabf77 Added support for world-space hit-testing and snapping to Volume and DynamicMeshComponent mesh vertices/edges/faces, by having Modeling Mode maintain a persistent set of spatial data structures for these scene meshes. With this change, new ToolSceneQueriesUtil functions can be used to provide more general scene mesh-element hit-testing/snapping via ModelingSceneSnappingManager. Updates to existing Tools/Mechanics to use these new query functions will be done in later CLs.
ToolsFramework:
- added new USceneSnappingManager::ExecuteSceneHitQuery API function, as well as accompanying FSceneHitQueryRequest/FSceneHitQueryResult structs
- added FSceneQueryVisibilityFilter struct which contains ComponentsToIgnore/InvisibleComponentsToInclude lists for snapping queries and provides shared IsVisible() implementation

ModelingComponents:
- add FLevelObjectsObserver, tracks Actors added/removed to a Level via various editor events
- add FSceneGeometrySpatialCache, maintains spatial data structures for known types of mesh-backed PrimitiveComponents, an octree based on their world-space bounding-boxes, and provides various spatial-query functions
- ModelingSceneSnappingManager now maintains a FSceneGeometrySpatialCache for a set of Actors/Components it is notified about, and updates the spatial cache if those components are modified or translated. Currently supports Volumes and DynamicMeshComponents.
- add ModelingSceneSnappingManager::ExecuteSceneHitQuery implementation, does raycasts into the world (for static mesh components) and FSceneGeometrySpatialCache for Volumes/DMCs
- modified ModelingSceneSnappingManager::ExecuteSceneSnapQuery to also do combined query against StaticMeshComponents via world-linetrace, and FSceneGeometrySpatialCache for Volumes/DMCs
- add ToolSceneQueriesUtil::FindNearestVisibleObjectHit variants that take a USceneSnappingManager or UInteractiveTool, and do queries via the SceneSnappingManger, instead of directly linetracing into a UWorld

ModleingToolsEditorMode:
- add FLevelObjectsObserver instance and use it to drive updates to active ModelingSceneSnappingManager

#rnx
#jira none
#preflight 61a664a09a226d9e823ad4c1

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18339853 in //UE5/Release-5.0/... via CL 18339869
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18339891 by ryan schmidt in ue5-release-engine-test branch]
2021-12-01 11:15:01 -05:00
semion piskarev
0fcec87c9d MeshModelingTools: Add IPhysicsDataSource implementation to DynamicMeshComponentToolTarget.
#rb Ryan.Schmidt, Rinat.Abdrashitov
#rnx
#jira none
#preflight 61a54034d87e4a573f516817

#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 18316515 in //UE5/Release-5.0/... via CL 18317291
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18317937 by semion piskarev in ue5-release-engine-test branch]
2021-11-29 18:02:53 -05:00
semion piskarev
45f0108aac MeshModelingTools: combine the volume component tool targets into one tool target. Make that tool target implement the IPhysicsDataSource interface. Fix bug in PhysicsDataCollection.cpp that caused crash in PhysicsTools::InitializePhysicsToolObjectPropertySet later.
#rb Ryan.Schmidt
#rnx
#jira none
#preflight 61a53b812e4ffe189820dc16

#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 18315604 in //UE5/Release-5.0/... via CL 18315949
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18316335 by semion piskarev in ue5-release-engine-test branch]
2021-11-29 16:34:52 -05:00
ryan schmidt
f0828c943b Expose component/asset physics data via a ToolTarget interface
ToolsFramework:
- add PhysicsDataSource ToolTarget Interface, that exposes UBodySetup and CollisionDataProvider interfaces
ModelingComponents:
- Add tooltarget accessor/utility functions in UE::ToolTarget namespace.
- Implement PhysicsDataSource for StaticMeshComponentToolTarget and DynamicMeshCompnentToolTarget.
- Update FPhysicsDataCollection::InitializeFromComponent() to support DynamicMeshComponent and BrushComponent.
ModelingTools:
- update ExtractCollisionGeometryTool and PhysicsInspectorTool

#rb lonnie.li
#rnx
#jira none
#preflight 61a150004803629015d5a09b

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18302043 in //UE5/Release-5.0/... via CL 18302049
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18302051 by ryan schmidt in ue5-release-engine-test branch]
2021-11-26 16:37:25 -05:00
ryan schmidt
88665f21e6 ModelingTools: do a planar-simplification pass in MeshToVolumeTool when using minimal polygons. This removes spurious vertices when the input mesh is more tessellated than strictly necessary.
#rb tyson.brochu
#rnx
#jira none
#preflight 619fb35daa4521f9e7e28a59

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18295970 in //UE5/Release-5.0/... via CL 18295984
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18296005 by ryan schmidt in ue5-release-engine-test branch]
2021-11-25 13:33:25 -05:00
semion piskarev
6e652b7735 MeshModelingTools: Change the dynamic mesh provider interface to return a mesh by value so that it can be used with UDynamicMesh and better aligns with the use in ModelingToolTargetUtil.
#rb Ryan.Schmidt
#rnx
#jira none
#preflight 619f024bd87e4a573fdc63d6

#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 18292224 in //UE5/Release-5.0/... via CL 18292232
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18292237 by semion piskarev in ue5-release-engine-test branch]
2021-11-24 23:55:31 -05:00
lonnie li
75586c2737 ModelingTools: Add read only skeletal mesh tool target.
Enable read-only skeletal mesh tool targets in modeling mode.

#rb halfdan.ingvarsson
#rnx
#jira none
#preflight 6195739576668b37001bbb81

#ROBOMERGE-AUTHOR: lonnie.li
#ROBOMERGE-SOURCE: CL 18289979 in //UE5/Release-5.0/... via CL 18289998
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18290011 by lonnie li in ue5-release-engine-test branch]
2021-11-24 17:36:19 -05:00
jimmy andrews
32d22502b1 make to/from static mesh conversion not crash if it winds up with a null meshdescription (but still ensure, because something has gone quite wrong in this case)
#rb lonnie.li
#rnx

#ROBOMERGE-AUTHOR: jimmy.andrews
#ROBOMERGE-SOURCE: CL 18271057 in //UE5/Release-5.0/... via CL 18271086
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18271096 by jimmy andrews in ue5-release-engine-test branch]
2021-11-23 11:37:51 -05:00
Marc Audy
0c3be2b6ad Merge Release-Engine-Staging to Test @ CL# 18240298
[CL 18241953 by Marc Audy in ue5-release-engine-test branch]
2021-11-18 14:37:34 -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
aurel cordonnier
fc542f6cfd Merge from Release-Engine-Staging @ 18081189 to Release-Engine-Test
This represents UE4/Main @18073326, Release-5.0 @18081140 and Dev-PerfTest @18045971

[CL 18081471 by aurel cordonnier in ue5-release-engine-test branch]
2021-11-07 23:43:01 -05:00
michael balzer
a49c74b915 MeshModelingToolset: Move ModelingOperators and ModelingOperatorsEditorOnly modules out of experimental plugin
#jira UETOOL-3823
#rb lonnie.li
#preflight 617b1aea5794a500014f544a

#ROBOMERGE-AUTHOR: michael.balzer
#ROBOMERGE-SOURCE: CL 17972239 in //UE5/Release-5.0/... via CL 17972248
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v885-17909292)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17972256 by michael balzer in ue5-release-engine-test branch]
2021-10-28 19:47:45 -04:00