Commit Graph

135 Commits

Author SHA1 Message Date
Lauren Barnes
6248f8d412 Replacing legacy EditorStyle calls with AppStyle
#preflight 6272a74d2f6d177be3c6fdda
#rb Matt.Kuhlenschmidt

#ROBOMERGE-OWNER: Lauren.Barnes
#ROBOMERGE-AUTHOR: lauren.barnes
#ROBOMERGE-SOURCE: CL 20057269 via CL 20070159 via CL 20072035 via CL 20072203
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)
#ROBOMERGE-CONFLICT from-shelf

[CL 20105363 by Lauren Barnes in ue5-main branch]
2022-05-09 13:12:28 -04:00
Christina TempelaarL
4966988cf5 New TRS gizmo: add support for hovering.
#jira UETOOL-4781
#rb brooke.hubert
#preflight 62747612594b7a20312da916

[CL 20067991 by Christina TempelaarL in ue5-main branch]
2022-05-05 21:17:09 -04:00
Christina TempelaarL
cb16fb4e51 Update gizmo element library with support for common view-dependent functionality, and rectangle, circle, torus objects. Implemented new TransformGizmo UX design using gizmo primitive library objects.
#rb michael.balzer, jimmy.andrews
#jira UETOOL-4296, UETOOL-3781
#preflight 624dd8b69052f5517c120614

[CL 19655712 by Christina TempelaarL in ue5-main branch]
2022-04-06 17:04:09 -04:00
brooke hubert
539c725563 Deprecate the typed element selection set on the tool builder state. This can be replaced with the context object that exposes the typed element set within an asset editor.
#preflight 6234e5193f685c2b42225e35
# this fixes CIS errors and sets us up to remove this next release
#Jira UE-146522
#rb christina.tempelaarl semion.piskarev

[CL 19466120 by brooke hubert in ue5-main branch]
2022-03-22 10:07:48 -04:00
Christina TempelaarL
554f7b10ce Non-unity fix
#jira UE-146565
#rb trivial
#preflight 6235407948746817f1433b4f

[CL 19444018 by Christina TempelaarL in ue5-main branch]
2022-03-18 22:36:07 -04:00
Christina TempelaarL
a1eb472bed Non-unity fix.
#jira UE-146528
#rb trivial
#preflight 62354053b43f22036e182ffb

[CL 19444012 by Christina TempelaarL in ue5-main branch]
2022-03-18 22:34:31 -04:00
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