Commit Graph

35 Commits

Author SHA1 Message Date
jimmy andrews
7bed3e0ebf make brush tools notify property sets of updates done by hotkey actions (to brush size/strength), so the reset arrow correctly updates in the details panels
#jira UE-114680
#rb rinat.abdrashitov
#preflight 61b2e5bac01c89f906d632b3

#ROBOMERGE-AUTHOR: jimmy.andrews
#ROBOMERGE-SOURCE: CL 18431318 in //UE5/Release-5.0/... via CL 18435335
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)

[CL 18435573 by jimmy andrews in ue5-release-engine-test branch]
2021-12-10 17:49:08 -05:00
brooke hubert
f149e45233 Fixing a bug where creating temporary actors via typed elements would not be able to delete them again in single place tool
#preflight 61b22ba9c674eb9fc9d8ea9a
#Jira None
#rb julien.stjean ryan.schmidt

#ROBOMERGE-AUTHOR: brooke.hubert
#ROBOMERGE-SOURCE: CL 18420733 in //UE5/Release-5.0/... via CL 18422600
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)

[CL 18422868 by brooke hubert in ue5-release-engine-test branch]
2021-12-09 14:51:37 -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
ryan schmidt
d04552fc80 ToolsFramework: change IsValidChecked to IsValid in several places where we want to handle failure gracefully
#rb rinat.abdrashitov
#rnx
#jira none
#preflight 61a7a324e8314ee7b586bff2

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

[CL 18341187 by ryan schmidt in ue5-release-engine-test branch]
2021-12-01 12:47:30 -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
tyson brochu
f0753ca380 Don't snap the transform gizmo on mouse-down, wait for the drag event.
#jira UE-131786
#rnx
#rb ryan.schmidt semion.piskarev
#preflight 61a510e3ee100b68faa0517d

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

[CL 18312473 by tyson brochu in ue5-release-engine-test branch]
2021-11-29 13:01:50 -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
lonnie li
2c15e236a7 InteractiveToolsFramework: Add UPrimitiveComponentToolTargetFactory.
#rb ryan.schmidt
#rnx
#jira none
#preflight 619e5291405273b2c37a20da

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

[CL 18283991 by lonnie li in ue5-release-engine-test branch]
2021-11-24 10:32:04 -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
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
jimmy andrews
ce576573e3 Check if ToolManager is null before accessing it to close all tools, to avoid crash if cleanup functions are called at the wrong time
#rb rinat.abdrashitov
#rnx
#preflight 6196c4d87c5a3437f360b1cc

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

[CL 18244903 by jimmy andrews in ue5-release-engine-test branch]
2021-11-18 17:07:17 -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
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
semion piskarev
d11d07621e MeshModelingTools: Make rotation not try to (incorrectly) snap in local mode.
#rb Jimmy.Andrews
#rnx
#jira UE-121825
#preflight 61795f285794a5000101deec

#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 17946899 in //UE5/Release-5.0/... via CL 17946915
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v885-17909292)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17946930 by semion piskarev in ue5-release-engine-test branch]
2021-10-27 12:46:26 -04:00
lonnie li
36650db452 ModelingTools: Add support for "exclusive" tools that require accept/cancel by disabling other tools in the tool palette while exclusive tools are active.
#rb jimmy.andrews
#rnx
#jira none
#preflight 6171f109c7ff68000126d251

#ROBOMERGE-AUTHOR: lonnie.li
#ROBOMERGE-SOURCE: CL 17906165 in //UE5/Release-5.0/... via CL 17906177
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v883-17842818)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17906185 by lonnie li in ue5-release-engine-test branch]
2021-10-25 10:22:41 -04:00
ryan schmidt
35cb7ccf8f ToolsFramework: move support for scene location/angle snapping from ToolContextInterfaces/IContextQueriesAPI to USceneSnappingManager, a context store object that different modes may wish to implement.
USceneSnappingManager currently only provides the current snapping interface and a no-op implementation.
Move existing EdModeInteractiveToolsContext snapping implementation to ModelingSceneSnappingManager in ModelingComponents module.
Add IContextQueriesAPI::GetCurrentSnappingSettings to allow ITF Host to specify snapping settings, implement in EdModeInteractiveToolsContext.
Update affected Tools/Gizmos, register ModelingSceneSnappingManager instance in Modeling EdMode.

#rb semion.piskarev
#rnx
#jira none
#preflight 6171b7654d6efa00017a0450

#ROBOMERGE-OWNER: ryan.schmidt
#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 17890511 in //UE5/Release-5.0/... via CL 17890705
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v883-17842818)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17890711 by ryan schmidt in ue5-release-engine-test branch]
2021-10-21 16:57:00 -04:00
ryan schmidt
44afe16b7d ToolsFramework: delete InteractiveToolStorableSelection/Subsystem
#rb none
#rnx
#preflight 616f9e71d48c460001af7038

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 17872227 in //UE5/Release-5.0/... via CL 17872239
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v883-17842818)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17874121 by ryan schmidt in ue5-release-engine-test branch]
2021-10-20 11:50:53 -04:00
semion piskarev
9e335dbeee MeshModelingTools: Added ULocalInputBehaviorSource to allow tools to give different behaviors to separate input routers, and removed direct RegisterBehavior function from UInputRouter to force use of behavior sources. Added ULocalMouseHoverBehavior.
#rb Ryan.Schmidt, Rinat.Abdrashitov
#rnx
#jira none
#preflight 6168539c5b9a0b0001b013cd

#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 17820738 in //UE5/Release-5.0/... via CL 17820748
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v881-17767770)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17820757 by semion piskarev in ue5-release-engine-test branch]
2021-10-14 15:32:28 -04:00
ryan schmidt
e2eabb50e4 ToolsFramework: Rename TransformGizmo.h to CombinedTransformGizmo.h
#rb none
#rnx
#jira none
#preflight 61552d2d549cbf0001b4dbab

#ushell-cherrypick of 17670370 by Ryan.Schmidt

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 17676622 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v875-17642767)

[CL 17676632 by ryan schmidt in ue5-release-engine-test branch]
2021-09-30 08:27:39 -04:00
ryan schmidt
7fbc0f5361 ToolsFramework: rename modeling-mode UTransformGizmo to UCombinedTransformGizmo so that Editor can use this class name, update all usage
#rb none
#rnx
#jira none
#preflight 6154a3e0475173000105df9b

#ushell-cherrypick of 17666089 by Ryan.Schmidt

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 17672826 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v875-17642767)

[CL 17672850 by ryan schmidt in ue5-release-engine-test branch]
2021-09-29 23:20:44 -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
christina tempelaarl
8a958adec3 Move gizmo primitive objects and related classes to Experimental/EditorInteractiveToolsFramework directory for 5.0. They are currently only used by UEditorTransformGizmo and are still in active development.
#jira UE-126648
#rb ryan.schmidt
#preflight 61437544568b3a00012173e0

#ROBOMERGE-AUTHOR: christina.tempelaarl
#ROBOMERGE-SOURCE: CL 17541920 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17541963 by christina tempelaarl in ue5-release-engine-test branch]
2021-09-16 13:55:36 -04:00