ryan schmidt
db857d56b6
ModelingTools: convert various tools/mechanics/etc to use new SnappingManager functionality for scene hit-tests and snapping
...
#rb david.hill
#rnx
#jira none
#preflight 61b21920d308710b0c513796
#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18419130 in //UE5/Release-5.0/... via CL 18422407
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)
[CL 18422664 by ryan schmidt in ue5-release-engine-test branch]
2021-12-09 14:46:09 -05:00
matija kecman
6aa97489d6
UV Editor: Move the checkbox to enable/disable rendering of hovered elements into the main details panel
...
#rb michael.balzer
#rnx
#preflight
#ROBOMERGE-AUTHOR: matija.kecman
#ROBOMERGE-SOURCE: CL 18410486 in //UE5/Release-5.0/... via CL 18410509
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)
[CL 18410527 by matija kecman in ue5-release-engine-test branch]
2021-12-08 15:04:38 -05:00
matija kecman
d9625a7f87
UV Editor: Add hover preview to Edit mode
...
#rb semion.piskarev
#rnx
#jira none
#preflight 61af9fc90e59fd0ab0fa5409
#ROBOMERGE-AUTHOR: matija.kecman
#ROBOMERGE-SOURCE: CL 18404342 in //UE5/Release-5.0/... via CL 18404343
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v896-18170469)
[CL 18404348 by matija kecman in ue5-release-engine-test branch]
2021-12-08 05:54:10 -05:00
ryan schmidt
2d9c7f5e27
Add missing predeclaration
...
#rb none
#rnx
#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18389760 in //UE5/Release-5.0/... via CL 18389769
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v896-18170469)
[CL 18389784 by ryan schmidt in ue5-release-engine-test branch]
2021-12-06 18:12:59 -05:00
semion piskarev
0dcb7c00f0
UVEditor: Highlight edge and vertex selections in the live preview.
...
#rb Nathan.Mitchell
#rnx
#jira none
#preflight 61a8f6d4a7179bfa5503f3fc
#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 18388864 in //UE5/Release-5.0/... via CL 18388925
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v896-18170469)
[CL 18388944 by semion piskarev in ue5-release-engine-test branch]
2021-12-06 17:25:26 -05:00
ryan schmidt
22c851a546
ModelingTools: add alpha mask visualization to brush stamp indicator in VertexSculptTool
...
#rb none
#rnx
#preflight 61ae4b412b3384289ad2048b
#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18387240 in //UE5/Release-5.0/... via CL 18387277
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v896-18170469)
[CL 18387286 by ryan schmidt in ue5-release-engine-test branch]
2021-12-06 15:44:16 -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
michael balzer
4a4e360ab1
MeshModelingToolset: Cleanup UV Unwrap tool
...
#rb ryan.schmidt
#preflight 61a6d63b6c7d8a7295f405a2, 61a92f32fc3f6823e8d2bac7
#ROBOMERGE-AUTHOR: michael.balzer
#ROBOMERGE-SOURCE: CL 18357442 in //UE5/Release-5.0/... via CL 18357499
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18357514 by michael balzer in ue5-release-engine-test branch]
2021-12-02 15:47:10 -05:00
semion piskarev
40a7e56ec1
UVEditor: add ability to split bowtie verts. Fix some edge splits occasionally creating a bowtie vert on adjacent non-selected edge. Also fix some undo/redo issues especially regarding sew edges preview. Made all undo/redo selection change events broadcast for now.
...
#rb Nathan.Mitchell, Jimmy.Andrews
#rnx
#jira UE-133108
#preflight 61a8e8b3e01f3610f5307b4e
#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 18355648 in //UE5/Release-5.0/... via CL 18355681
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18355709 by semion piskarev in ue5-release-engine-test branch]
2021-12-02 14:42:09 -05:00
nathan mitchell
e6edcc2f84
ModelingTools: Change PointSetComponent to match LineSetComponent to use per element (point) percentage-based DepthBias support. Updates users of PointSetComponent to reflect this change.
...
#rb semion.piskarev
#rnx
#preflight 61a7f7f6a7179bfa55f4deb2
#ROBOMERGE-AUTHOR: nathan.mitchell
#ROBOMERGE-SOURCE: CL 18346932 in //UE5/Release-5.0/... via CL 18346952
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18346963 by nathan mitchell in ue5-release-engine-test branch]
2021-12-01 18:15:38 -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
nathan mitchell
88954e6d09
UVEditor: Move visual and style settings (color, depth offsets, etc) to a new style container class, keeping everything in one place for ease of modification in the future. Also adjusts the grid axis lines to not scale up when zooming out in the 2D viewport
...
#rb semion.piskarev
#rnx
#preflight 61a56498801b36197837b0c4
#ROBOMERGE-AUTHOR: nathan.mitchell
#ROBOMERGE-SOURCE: CL 18319017 in //UE5/Release-5.0/... via CL 18319325
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18319503 by nathan mitchell in ue5-release-engine-test branch]
2021-11-29 20:09:00 -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
f47bb8f710
GeometryScripting: add support for reading from Volumes in SceneUtilityFunctions::CopyMeshFromComponent()
...
#rb lonnie.li
#rnx
#jira none
#preflight 61a149bef70a9e92dba305e4
#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18302005 in //UE5/Release-5.0/... via CL 18302009
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18302010 by ryan schmidt in ue5-release-engine-test branch]
2021-11-26 16:20:30 -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
semion piskarev
2e80718ca3
MeshModelingTools: Fix MeshElementsVisualizer not updating the bounds of MeshWireframeComponent on mesh changes. This fixes wireframe disappearing in UV editor.
...
#rb Lonnie.Li
#rnx
#jira none
#preflight 619d8329810f5e07a38868de
#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 18291456 in //UE5/Release-5.0/... via CL 18291471
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18291476 by semion piskarev in ue5-release-engine-test branch]
2021-11-24 20:50:11 -05:00
lonnie li
2972827a94
ModelingTools: Fix CIS break with BaseCreateFromSelectedTool.
...
#rb trivial
#rnx
#ROBOMERGE-AUTHOR: lonnie.li
#ROBOMERGE-SOURCE: CL 18278314 in //UE5/Release-5.0/... via CL 18278329
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18278343 by lonnie li in ue5-release-engine-test branch]
2021-11-23 19:17:30 -05:00
lonnie li
d1920e5a1f
InteractiveToolsFramework: Consolidate InteractiveToolWithToolTargetsBuilder into InteractiveToolBuilder.h
...
#rb trivial
#rnx
#jira none
#preflight 619d57fd47752856c96fbe27
#ROBOMERGE-AUTHOR: lonnie.li
#ROBOMERGE-SOURCE: CL 18275726 in //UE5/Release-5.0/... via CL 18275788
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18275806 by lonnie li in ue5-release-engine-test branch]
2021-11-23 16:50:40 -05:00
lonnie li
d1a488c78b
InteractiveToolsFramework: Add UInteractiveToolWithToolTargetsBuilder intermediary class to define the common GetTargetRequirements() interface used across tools that use tool targets.
...
UVEditor: Remove unused GetTargetRequirements interface on UVEditor tools.
#rb michael.balzer
#rnx
#jira none
#preflight 619d09e93a721992674b369b
#ROBOMERGE-AUTHOR: lonnie.li
#ROBOMERGE-SOURCE: CL 18271201 in //UE5/Release-5.0/... via CL 18271210
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18271215 by lonnie li in ue5-release-engine-test branch]
2021-11-23 11:49:25 -05:00
semion piskarev
16f11a6c15
Made the r.Editor.OpaqueGizmo cvar scene-specific, and disabled dithering in UV editor viewports so that we could use editor compositing to draw the gizmos on top.
...
#rb Matt.Kuhlenschmidt
#rnx
#jira none
#preflight 6196a74e8703d6d083cc8758
#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 18270301 in //UE5/Release-5.0/... via CL 18270313
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18270325 by semion piskarev in ue5-release-engine-test branch]
2021-11-23 10:35:22 -05:00
lonnie li
6584198283
InteractiveToolsFramework: Remove unnecessary target interface functions from MultiSelectionTool.
...
ModelingTools: Add UMultiSelectionMeshEditingTool to hold common interface requirements and functions that pertain to modeling mode MultiSelectionTools.
#rb semion.piskarev
#rnx
#jira none
#preflight 619c66d5c3287aab27e12c73
#ROBOMERGE-AUTHOR: lonnie.li
#ROBOMERGE-SOURCE: CL 18269697 in //UE5/Release-5.0/... via CL 18269713
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18269717 by lonnie li in ue5-release-engine-test branch]
2021-11-23 09:42:40 -05:00
lonnie li
e08222e97a
InteractiveToolFramework: Remove unnecessary tool target interface requirements for MeshSurfacePointTool.
...
ModelingTools: Add MeshSurfacePointMeshEditingToolBuilder with common mesh editing requirements.
Update MeshSurfacePointTool modeling tools to use MeshSurfacePointMeshEditingToolBuilder
#rb semion.piskarev
#rnx
#jira none
#preflight 6196d1bbb22f9e02b57b7438
#ROBOMERGE-AUTHOR: lonnie.li
#ROBOMERGE-SOURCE: CL 18269233 in //UE5/Release-5.0/... via CL 18269267
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18269272 by lonnie li in ue5-release-engine-test branch]
2021-11-23 08:55:40 -05:00
michael balzer
946b1c5d63
MeshModelingToolset: Cleanup UV Layout tool
...
#rb jimmy.andrews
#preflight 6196f777880616feb156f236
#ROBOMERGE-AUTHOR: michael.balzer
#ROBOMERGE-SOURCE: CL 18247882 in //UE5/Release-5.0/... via CL 18247896
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18247903 by michael balzer in ue5-release-engine-test branch]
2021-11-18 20:41:17 -05:00
lonnie li
e60a1a0f03
ModelingTools: Make TargetWorld a proper property on SingleSelectionMeshEditingTool.
...
#rb trivial
#rnx
#preflight 6196c290880616feb151f3e1
#ROBOMERGE-AUTHOR: lonnie.li
#ROBOMERGE-SOURCE: CL 18245005 in //UE5/Release-5.0/... via CL 18245135
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18245155 by lonnie li in ue5-release-engine-test branch]
2021-11-18 17:15:29 -05:00
lonnie li
8af971ee51
InteractiveToolsFramework: Remove GetTargetRequirements from UInteractiveToolBuilder.
...
#rb rinat.abdrashitov
#rnx
#jira none
#preflight 619683b2c6791caccf5f1f8e
#ROBOMERGE-AUTHOR: lonnie.li
#ROBOMERGE-SOURCE: CL 18240428 in //UE5/Release-5.0/... via CL 18240485
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18242887 by lonnie li in ue5-release-engine-test branch]
2021-11-18 15:21:56 -05:00