Commit Graph

253 Commits

Author SHA1 Message Date
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
lauren barnes
5bd8c74d4e FAssetEditorModeUILayer now serves as a layer between a given asset editor and the mode toolkits, so that the mode toolkits can request UI panels and the asset editor determines where they are located in the asset editor layout. The first implementation is in the level editor, and all default mode UI has been moved to FModeToolkit.
#jira UETOOL-3555
#preflight 61143dbf9c7bb10001f080b3
#rb Matt.Kuhlenschmidt

#ROBOMERGE-SOURCE: CL 17152278 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)

[CL 17152291 by lauren barnes in ue5-release-engine-test branch]
2021-08-12 10:54:54 -04:00
jamie dale
a2c2b50c07 Provided an interface to query element parent<->child hierarchy information and used it to unify selection normalization
Previously we relied on element implementations to know what their parent or child elements might be, and to deal with them correctly in the following cases:
 1) When "normalising" a selection to be safe for operations like a move or delete, eg) removing elements that are children of other selected elements.
 2) When deleting an element, also ensuring that any implicitly destroyed child elements were deselected, eg) deleting an ISM component that has selected static mesh instances.

This approach hurts the modularity of the elements themselves, as it requires that the element implementations have intrinsic knowledge of any other child (or parent) element types that may exist, and to deal with them accordingly when needed. As a concrete example, an ISM component may have child elements in the form of static mesh instance elements, however the generic component element type does not (and should not) directly know that static mesh instance elements exist.

To address this issue, we've added a new interface, UTypedElementHierarchyInterface, which can be used to provide information about the logical parent<->child hierarchy information of elements. This is implemented as follows for our current element types:
 - Actor:
   - GetParentElement returns an invalid element handle.
   - GetChildElements returns the element handles of any components on the actor.
 - Component:
   - GetParentElement returns its owner actor element handle.
   - GetChildElements returns nothing by default, but UActorComponent::GetComponentChildElements may be overridden to control this behavior.
     - eg) UInstancedStaticMeshComponent overrides it to return its static mesh instance element handles.
 - SMInstance:
   - GetParentElement returns its owner ISM component element handle.
   - GetChildElements returns nothing.

Now the problems listed above can be solved by using this interface instead of relying on the element implementations:
 1) Selection normalization is now handled by UTypedElementSelectionSet, replacing the previous duplicate implementations of UTypedElementCommonActions and UTypedElementViewportInteraction.
 2) UTypedElementSelectionSet will now walk and also update the selection state of child elements, when asked to via the FTypedElementSelectionOptions.

Breaking Changes:
 - UTypedElementCommonActions::GetElementsForAction and UTypedElementViewportInteraction::GetSelectedElementsToMove have been removed, in favor of using the selection normalization functions of UTypedElementSelectionSet.
   - Note: You may still favor using FLevelEditorViewportClient::GetElementsToManipulate, as it will have removed normalized elements that also cannot be moved by a gizmo.
 - UTypedElementCommonActions::DeleteElements and UTypedElementCommonActions::DuplicateElements have been removed, as these functions operated on an unnormalized selection and could be unsafe. UTypedElementCommonActions::DeleteNormalizedElements and UTypedElementCommonActions::DuplicateNormalizedElements should be used instead.
 - AGroupActor::ForEachActorInGroup and AGroupActor::ForEachMovableActorInGroup now take a second AGroupActor* argument in their callback.

#rb Brooke.Hubert
#preflight 60ca33a678c3b00001e8f5df

#ROBOMERGE-SOURCE: CL 16705229 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16705233 by jamie dale in ue5-release-engine-test branch]
2021-06-17 11:19:53 -04:00
zach rammell
ebee1b5ca0 Add cursor world location to level editor tool menu context
#jira UE-96331
#rb brooke.hubert jamie.dale
#preflight 60ca2609be81e800015eae93

#ROBOMERGE-SOURCE: CL 16692741 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16692760 by zach rammell in ue5-release-engine-test branch]
2021-06-16 14:17:28 -04:00
matt hoffman
0b64c667b5 Matinee/Editor: Renamed usages of the word 'Matinee' to 'Cinematics' where applicable in code comments.
#jira UE-105313
#rb Trivial

#ROBOMERGE-SOURCE: CL 16691805 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16691816 by matt hoffman in ue5-release-engine-test branch]
2021-06-16 13:43:52 -04:00
matt hoffman
11740875ec Matinee: Changes required to delete matinee editor module. Removes the Interp edit mode and UnrealEds dependency on the Matinee editor module.
#rb Max.Chen, Ludovic.Chabant
#jira UE-105313
#p4v-preflight-copy 16616138
#preflight 60c1bb5eb68c700001c956d5
#preflight 60c24c03730f8a0001772aca
#preflight 60c2602f79a7fe0001785630

#ROBOMERGE-SOURCE: CL 16629318 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v831-16623017)

[CL 16629342 by matt hoffman in ue5-release-engine-test branch]
2021-06-10 16:22:51 -04:00
matt hoffman
8e166827a8 Undo //UE5/Main/Engine/Source/... changelist 16613917
#jira None
#rb None

#ROBOMERGE-SOURCE: CL 16615633 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v828-16531559)

[CL 16615656 by matt hoffman in ue5-release-engine-test branch]
2021-06-09 19:26:30 -04:00
matt hoffman
305e2f6805 Matinee: Changes required to delete matinee editor module. Removes the Interp edit mode and UnrealEds dependency on the Matinee editor module.
#rb Max.Chen, Ludovic.Chabant
#jira UE-105313

#ROBOMERGE-SOURCE: CL 16613917 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v828-16531559)

[CL 16613923 by matt hoffman in ue5-release-engine-test branch]
2021-06-09 18:03:04 -04:00
patrick enfedaque
dc80a8c0c2 Add support for Play in new window to the Play From Here actor flow
#rb jeanfrancois.dube
#preflight 60bf856a6c7ab70001086b9f


#ROBOMERGE-SOURCE: CL 16588669
#ROBOMERGE-BOT: (v828-16531559)

[CL 16588685 by patrick enfedaque in ue5-main branch]
2021-06-08 12:38:24 -04:00
patrick enfedaque
15495ca467 PlayFromHere: An actor can now be source of PlayFromHere (Location,Rotation) and get notified (bCanPlayFromHere, OnPlayFromHere)
#rb jeanfrancois.dube
#preflight 60b91e176c445400019a660c


#ROBOMERGE-SOURCE: CL 16550798
#ROBOMERGE-BOT: (v828-16531559)

[CL 16550867 by patrick enfedaque in ue5-main branch]
2021-06-03 15:03:45 -04:00
Jamie Dale
2b4fd7e927 Ensure GizmoManipulationStarted and GizmoManipulationStopped are called in pairs
The editor viewport would previously skip the GizmoManipulationStopped call if nothing had actually moved, but this causes an imbalance in the APIs which call NotifyMovementStarted and NotifyMovementEnded.

GizmoManipulationStopped is now always called, but with an extra argument saying if anything actually moved.

#rb Brooke.Hubert
#preflight 60aeb2de1db8a70001cbe077

[CL 16537833 by Jamie Dale in ue5-main branch]
2021-06-02 15:11:28 -04:00
luc eygasier
dfc915a297 Adds "Show Actor History" contextual action.
#jira UETOOL-3331
#rb Sebastien.Lussier, Patrick.Enfedaque

#changelist validated

[CL 16251595 by luc eygasier in ue5-main branch]
2021-05-10 14:30:23 -04:00
aurel cordonnier
50944fd712 Merge UE5/RES @ 16162155 to UE5/Main
This represents UE4/Main @ 16130047 and Dev-PerfTest @ 16126156

[CL 16163576 by aurel cordonnier in ue5-main branch]
2021-04-29 19:32:06 -04:00
JeanFrancois Dube
d6992606b4 Added actor context menu "Copy Actor File Path" to copy the file path (level file or actor file) for the current selection.
#rb sebastien.lussier

[CL 16100968 by JeanFrancois Dube in ue5-main branch]
2021-04-22 20:25:54 -04:00
Marc Audy
01b7c9f4f5 Merge UE5/RES @ 15958325 to UE5/Main
This represents UE4/Main @ 15913390 and Dev-PerfTest @ 15913304

[CL 15958515 by Marc Audy in ue5-main branch]
2021-04-08 14:32:07 -04:00
jamie dale
ef31a91045 Removed finalizer from FTypedElementViewportInteractionCustomization::GetElementsToMove
This was to optimize selecting groups, but we've handled this case elsewhere by just skipping the group logic if the group is already in the list of things that we've processed. This applies that approach to getting the elements to move.

#rb Brooke.Hubert

#ROBOMERGE-SOURCE: CL 15890607 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v786-15839533)

[CL 15890762 by jamie dale in ue5-main branch]
2021-04-01 12:41:54 -04:00
graham wihlidal
700a73bf55 Editor/UX work for proper Nanite editor view modes with console override; rendering code will come later. (currently disabled with NANITE_VIEW_MODES tag)
#rb matt.kuhlenschmidt
#fyi brian.karis, michal.valient

[CL 15755745 by graham wihlidal in ue5-main branch]
2021-03-21 04:07:16 -04:00
christopher waters
55bba52e44 Adding SM6 preview platform.
- Adjusting the Editor handling of preview platforms to not assume SM5 is the running feature level.
- Adding "bPreviewFeatureLevelIsMax" to user settings to signal if the last saved Preview Feature Level was the maximum supported by the RHI, aka the default. If this is true on load, we set the Preview Feature Level to the max supported. This is to allow situations were we go from DX12+SM6 to DX11+SM5 and back without forcing the user to change the Preview Feature Level.
- Preventing unsupported feature levels from being previewed.
- Fixing the preview button being enabled for the default feature level.

#jira none
#rb arciel.rekman, simon.tovey, josh.adams

[CL 15729038 by christopher waters in ue5-main branch]
2021-03-17 15:42:48 -04:00
patrick enfedaque
e2e7910793 WorldPartition: No need to save on New Map anymore
#jira UE-108218

#rb francis.hurteau, jeanfrancois.dube

#ROBOMERGE-SOURCE: CL 15655138 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v779-15635321)

[CL 15655151 by patrick enfedaque in ue5-main branch]
2021-03-09 12:01:17 -04:00
jamie dale
0f54e84773 Minimal context menu for static mesh instance elements
Currently only delete and delta transform are enabled/available

#rb Brooke.Hubert

#ROBOMERGE-SOURCE: CL 15631470 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v777-15581079)

[CL 15631487 by jamie dale in ue5-main branch]
2021-03-05 20:06:48 -04:00
Max Chen
eaa52d8bf2 Editor: Added utility functions for viewports
GetViewports, GetActiveViewport, SetAllowsCinematicControl, GetAllowsCinematicControl.

PilotLevelActor, EjectPilotLevelActor, EditorSetGameView, EditorGetGameView now take an optional config key to indicate which viewport should be set/get. Default is none, which acts on the active viewport (no change in existing behavior)

#jira UE-108941
#rb brooke.hubert

[CL 15522119 by Max Chen in ue5-main branch]
2021-02-24 17:53:02 -04:00
Max Chen
9b73c0f152 Editor: Change to SLevelViewport
#jira UE-108941
#rb brooke.hubert

[CL 15520489 by Max Chen in ue5-main branch]
2021-02-24 16:03:09 -04:00
jamie dale
c922ceb04e Optimized GetElementsToMove for large group actors
Each group actor is now only enumerated once at the end, rather than once for each selected actor within a group

#jira UE-108343
#rb Brooke.Hubert

#ROBOMERGE-SOURCE: CL 15475127 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)

[CL 15475131 by jamie dale in ue5-main branch]
2021-02-19 15:51:43 -04:00
Zousar Shaker
3b4c8fc1c5 Automated wrapped object pointer upgrade for Engine + ShooterGame + ShooterGame referenced plugins
#rb none

[CL 15224650 by Zousar Shaker in ue5-main branch]
2021-01-27 17:40:25 -04:00
Matt Kuhlenschmidt
24fd139385 Fixed up locations making one off thumbnail pools and converted them to use the shared thumbnail pool.
[CL 15211295 by Matt Kuhlenschmidt in ue5-main branch]
2021-01-26 17:21:08 -04:00