Commit Graph

129 Commits

Author SHA1 Message Date
daren cheng
1faa92fb06 Fix static analysis CIS nullptr guard EdModeInteractiveToolsContext Viewport
#jira UETOOL-4564 UETOOL-4565
#rb trivial
#preflight skip

[CL 19261387 by daren cheng in ue5-main branch]
2022-03-03 22:48:33 -05:00
daren cheng
99592a0721 Widget Tool Palette Prototype.
Add Marquee & create widget tools.
Add framework for widget-based tools.

#preflight 62202c37123d7a7f69141278
#jira UETOOL-4564 UETOOL-4565
#rb Vincent.Gauthier

[CL 19248542 by daren cheng in ue5-main branch]
2022-03-03 14:01:42 -05:00
semion piskarev
15d86db7c0 Editor: Add delegates in EdModeInteractiveToolsContext that allow UEdModes to receive Render() and DrawHUD() calls.
#rb Brooke.Hubert
#jira none
#preflight 621cef96d815cc2f95e785c3

[CL 19174863 by semion piskarev in ue5-main branch]
2022-02-28 11:31:41 -05:00
Patrick Boutot
212b66fd23 Fix Compile warnings in InteractiveToolStack
#fyi daren.cheng
#rb trivial
#preflight none

[CL 19033732 by Patrick Boutot in ue5-main branch]
2022-02-17 08:32:42 -05:00
daren cheng
526c49058a Add Toolstack support to tool palettes.
#jira UE-138664
#preflight 6202ee26c451a5d0dc08eec6
#rb brooke.hubert Rex.Hill Ryan.Schmidt Patrick.Boutot
#fyi Ryan.Schmidt, Lauren.Barnes

[CL 19020456 by daren cheng in ue5-main branch]
2022-02-16 15:08:30 -05:00
brooke hubert
26855f63c6 Fix an issue where ITF tools would not clean up when their contexts were removed, which was causing a crash.
#preflight 61e09acf6e4980109363ec94
#Jira UE-137935
#rb ryan.schmidt

#ROBOMERGE-AUTHOR: brooke.hubert
#ROBOMERGE-SOURCE: CL 18623565 in //UE5/Release-5.0/... via CL 18623582 via CL 18623598
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v899-18417669)

[CL 18623612 by brooke hubert in ue5-main branch]
2022-01-14 16:31:20 -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
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
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
semion piskarev
b28b0cd959 InteractiveToolsFramework: Fix mouse wheel not being captured by UModeManagerInteractiveToolsContext::InputKey.
#rb Matija.Kecman
#rnx
#jira none
#preflight 61787393e7c41c00018d3c87

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

[CL 17947008 by semion piskarev in ue5-release-engine-test branch]
2021-10-27 12:49:43 -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
christina tempelaarl
c476e9522a Non-unity fix.
#jira UE-131781
#rb none

#ROBOMERGE-AUTHOR: christina.tempelaarl
#ROBOMERGE-SOURCE: CL 17834185 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v881-17767770)

[CL 17834297 by christina tempelaarl in ue5-release-engine-test branch]
2021-10-15 17:04:31 -04:00
christina tempelaarl
7690581940 Update LevelEditor TRS gizmo to handle Editor mode and coord system changes.
#jira UETOOL-4297
#rb brooke.hubert
#preflight 615c9daaed17cd000199c52c

#ROBOMERGE-AUTHOR: christina.tempelaarl
#ROBOMERGE-SOURCE: CL 17726964 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v879-17706426)

[CL 17726989 by christina tempelaarl in ue5-release-engine-test branch]
2021-10-05 16:34:35 -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
0480e0b759 Change Editor Gizmo Builders from UObjects to interfaces.
#jira UETOOL-4097
#rb brooke.hubert
#preflight 6143adc1ba11800001647cc9

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

[CL 17545128 by christina tempelaarl in ue5-release-engine-test branch]
2021-09-16 18:11:20 -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
ryan schmidt
55e4644fd1 Add support for UEdMode-level InteractiveToolsContext which exists at the same time as the existing ModeManager-level ITC.
- rename UEdModeInteractiveToolsContext to UEditorInteractiveToolsContext, made all functions virtual so they can be customized for the new Editor/EdMode implementations where necessary
- add UModeManagerInteractiveToolsContext and UEdModeInteractiveToolsContext subclasses. Most functionality stays in the base class. Mouse-handling functions that manipulate the InputRouter move to ModeManagerITC.
- EdModeITC now is initialized based on a ModeManagerITC, and shares it's InputRouter
- ModeManagerITC creates the child EdModeITCs, forwards Tick/Render/DrawHUD calls
- FEditorModeTools now creates a ModeManagerITC

- Add EToolsContextScope enum, with options for Editor and EdMode ToolsContext
- UEdMode::Enter() now creates a child EdModeITC via new EditorITC::CreateNewChildEdModeToolsContext() function above, in addition to storing reference to the ModeManagerITC. Internal code updated to handle both ITCs.
- The EdModeITC is shut down on ::Exit() and unregistered from the EditorITC parent
- UEdMode ITC access functions (GetToolsContext, GetToolManager, RegisterTool) now take an optional Scope argument
- UEdMode::GetDefaultToolScope() allows EdModes to define default scope for the entire mode, defaults to Editor scope

- removed unused CanStartTool()/etc wrapper functions from FModeToolkit, they were not being called
- FModeToolkit::Init() now listens to events from both the ModeManagerITC and EdModeITC, delete cleans them both up
- FModeToolkit::OnToolStarted() checks both ITCs to see which one owns the new Tool

- updated all EdModes that were directly accessing the UEdMode::ToolsContext member, replaced with calls to GetToolsContext() / GetToolManager() APIs
- updated ModelingToolsEditorMode to use EdMode ToolScope

#rb brooke.hubert
#rnx
#jira none
#preflight 6140cc1130c00d0001dc4b9e

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 17510176 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17510201 by ryan schmidt in ue5-release-engine-test branch]
2021-09-14 17:11:13 -04:00
zousar shaker
836bd0854d Automated search-and-replace pass to change uses of UE_TRANSITIONAL_OBJECT_PTR(Type) to TObjectPtr<Type>.
There were two instance of the type being incorrect and they were manually fixed.

#rb none

#ROBOMERGE-AUTHOR: zousar.shaker
#ROBOMERGE-SOURCE: CL 17472048 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17472069 by zousar shaker in ue5-release-engine-test branch]
2021-09-09 10:07:44 -04:00
ryan schmidt
d3e9dcbc26 ModelingTools: replace StorableSelection mechanism with new UPersistentMeshSelection and UPersistentMeshSelectionManager context object.
- UPersistentMeshSelection is largely a port of UGroupTopologyStorableSelection, with the actual selection data moved to FGenericMeshSelection
- UPersistentMeshSelectionManager is meant to be used as a ContextObject in a ToolsContext, also contains utility functions to register/unregister/find context object
- Selection is no longer passed as part of FToolBuilderState. Instead Tools access the selection via ContextObject
- UPersistentMeshSelectionManager currently supports a single active selection. Selection changes are transacted via an FChange.
- When not inside a Tool, Selection is visualized with a pink border outline. Currently vertex selection is not visualized.
- Usage model is that on Tool Accept/Complete, prior to Tool Shutdown, any existing selection is cleared, and Tool may set a new Output selection which becomes the active selection
- StoredMeshSelectionUtil.h has utility functions to get current selection, set output selection, and clear it
- SingleSelectionMeshEditingTool already made input selection available to subclasses, port that capability to new architecture
- convert EditMeshPolygonsTool to be a SingleSelectionMeshEditingTool, use provided Input selection and set Output selection as appropriate

- ModelingToolsEditorMode clears active selection where appropriate, eg if selected object changes. However the behavior here will need further improvement, currently relies on questionable event handling from the TypedElement system

#rb semion.piskarev
#rnx
#jira none
#preflight 6136cbbfd9c85a0001fc3b56

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 17441056 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17441061 by ryan schmidt in ue5-release-engine-test branch]
2021-09-06 23:05:07 -04:00
julien stjean
9af8446874 Changed the TypedElementInterface to use UInterfaces instead of an object base api.
#jira UETOOL-4054
#preflight 6132413c1a52e20001dce90d
#rb Jamie.Dale

#ROBOMERGE-SOURCE: CL 17424653 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17424661 by julien stjean in ue5-release-engine-test branch]
2021-09-03 14:18:34 -04:00
zousar shaker
fe7573c2db Wrapped ObjectPtr upgrade refresh for Engine + ShooterGame
#rb none

#ROBOMERGE-SOURCE: CL 17278708 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v858-17259218)

[CL 17278722 by zousar shaker in ue5-release-engine-test branch]
2021-08-23 18:53:24 -04:00
christina tempelaarl
884acfa226 Fix non-unity compile error.
#rb trivial
#jira UETOOL-3780
#preflight 610e46b1cf0cdd000154e251

#ROBOMERGE-SOURCE: CL 17094415 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v853-17066230)

[CL 17094419 by christina tempelaarl in ue5-release-engine-test branch]
2021-08-07 11:06:24 -04:00
christina tempelaarl
08e4febe77 Add Accessory and Primary gizmo support to Editor gizmo manager and subsystem.
#jira UETOOL-3780
#rb brooke.hubert, matt.kuhlenschmidt
#preflight 610cb37cf19b370001fb9f50

#ROBOMERGE-SOURCE: CL 17085778 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v853-17066230)

[CL 17085790 by christina tempelaarl in ue5-release-engine-test branch]
2021-08-06 14:12:53 -04:00
ryan schmidt
8ba7990e6e Switch to Editor Grid/Rotation snapping settings and enable/disable state for all usage of TransformGizmo in ModelingTools
- TransformGizmo now defaults to Grid Position/Rotation Snapping enabled by default
- remove shift-modifier that toggled on 45-degree snapping in UAxisAngleGizmo
- update most Tools and Mechanics to remove explicit snapping properties/checkboxes and shift modifiers (PolyEdit and PolyDeform Tool still need to be updated)
- update FEdModeToolsContextQueriesImpl::ExecuteSceneSnapQueryPosition() and FEdModeToolsContextQueriesImpl::ExecuteSceneSnapQueryRotation() implementations to support snapping enable/disable via ULevelEditorViewportSettings
#rb jimmy.andrews
#rnx
#jira none
#preflight 60fa20b2a6959a0001cfdf29

#ROBOMERGE-SOURCE: CL 16935052 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16935081 by ryan schmidt in ue5-release-engine-test branch]
2021-07-23 01:35:18 -04:00
zousar shaker
d55f79222e Wrapped ObjectPtr upgrade refresh for Engine + ShooterGame
#rb none
#preflight 60f6411c35476b00018dd12c

#ROBOMERGE-SOURCE: CL 16892864 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16892876 by zousar shaker in ue5-release-engine-test branch]
2021-07-20 00:24:38 -04:00