Commit Graph

96 Commits

Author SHA1 Message Date
Ryan Schmidt
489dbc61c7 ToolsFramework: remove the AssetAPI concept from the Interactive Tools Framework. Replaced by ModelingObjectCreationAPI in ModelingComponents.
#rb none
#rnx
#jira none
#preflight 60b7e9448a2a64000126348c
#fyi brooke.hubert

[CL 16540327 by Ryan Schmidt in ue5-main branch]
2021-06-02 18:01:32 -04:00
semion piskarev
b999806285 MeshModelingTools: Add DynamicMesh provider/committer interfaces and update existing targets to support them. Move interface target files.
#rb Lonnie.Li
#rnx
#jira none

[CL 16315070 by semion piskarev in ue5-main branch]
2021-05-13 13:22:55 -04:00
Ryan Schmidt
bca2b32ac7 ModeingMode: restore EditingLOD functionality lost in ToolTarget transition. Port EditingLOD functionality from FStaticMeshComponentTarget/Factory to UStaticMeshComponentToolTarget/Factory. Add UToolTargetManager::FindFirstFactoryByPredicate() and FindFirstFactoryByType(). ModelingToolsEditorModeToolkit now also looks up the StaticMeshFactory and updates the EditingLOD when it changes in the UI.
EStaticMeshEditingLOD enum moved to ComponentSourceInterfaces.h to make it more widely available.

Add ToolBuilderUtil::EnumerateComponents() and ToolTargetManager::EnumerateSelectedAndTargetableComponents(), this allows ToolBuilders to do additional checks on the valid Targets without having to make local arrays/etc. Fix SetCollisionGeometryTool to not build ToolTargets every frame just to check if one is a StaticMeshComponent.

#rb lonnie.li
#rnx
#jira none
#preflight 6092e932242f6600012445b0

[CL 16213180 by Ryan Schmidt in ue5-main branch]
2021-05-05 16:43:24 -04:00
michael balzer
01884dcf8c MeshModelingTools: Cancel active tools on world tear down. This addresses issues where changes are saved but we cannot undo them, and it also fixes issues where accepting tool edits during world tear down breaks assumptions made in the code.
#jira UE-114559
#rb jimmy.andrews semion.piskarev
#rnx

[CL 16207816 by michael balzer in ue5-main branch]
2021-05-05 11:18:39 -04:00
michael balzer
bebef51143 MeshModelingTools: Fix crash bug when selecting a tool that requires a static mesh but there is no static mesh available (e.g. after a failed load).
#jira UE-114611
#rnx

[CL 16200499 by michael balzer in ue5-main branch]
2021-05-04 18:26:52 -04:00
halfdan ingvarsson
8e8b8790c7 Add a skeletal mesh component tool target that allows editing skeletal meshes with the regular modeling tools.
#jira UE-93689
#rb lonnie.li

[CL 16199149 by halfdan ingvarsson in ue5-main branch]
2021-05-04 16:43:57 -04:00
semion piskarev
58d5cbd5cf MeshModelingTools: Adding current version of UV editor.
#rb Brooke.Hubert, Ryan.Schmidt
#rnx
#jira UETOOL-3108, UETOOL-3110

[CL 16078314 by semion piskarev in ue5-main branch]
2021-04-21 14:36:05 -04:00
Christina TempelaarL
2138d56660 First pass at Level Editor TRS widget implementation using new gizmo architecture. Translate and Scale are implemented. Rotation, Screen Space and Planar Translation/Scale and Arcball Rotation still TBD.
#jira UETOOL-2313
#rb brooke.hubert
#preflight 606b3f858952c50001eda98b

[CL 15919545 by Christina TempelaarL in ue5-main branch]
2021-04-05 13:44:38 -04:00
brooke hubert
f596195f8f Adding post tool build and post set up notifications to the tool manager.
#Jira none
#preflight 6063718665bf07000195908d
#rb ryan.schmidt
#fyi jeanmichel.dignard

[CL 15873810 by brooke hubert in ue5-main branch]
2021-03-31 08:34:48 -04:00
lauren barnes
2769c5f363 Fixes for inconsistent mesh selection and painting behavior.
#rb Brooke.Hubert
#jira UE-100557
#preflight 60634090f8ce540001009f65

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

[CL 15864086 by lauren barnes in ue5-main branch]
2021-03-30 12:59:29 -04:00
ryan schmidt
2a87eac349 ModelingMode: stop logging all tool messages as Warnings in the log
#rb none
#rnx
#jira UE-112153

#ROBOMERGE-SOURCE: CL 15833730 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v785-15821902)

[CL 15834702 by ryan schmidt in ue5-main branch]
2021-03-25 18:53:01 -04:00
semion piskarev
b6f6a7863f Adding a missing special case back into EdModeInteractiveToolsContext that disallows ITF input router from capturing alt+mouse clicks.
#rb Brooke.Hubert
#rnx
#jira none

#ROBOMERGE-SOURCE: CL 15826630 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v785-15821902)

[CL 15833960 by semion piskarev in ue5-main branch]
2021-03-25 18:23:33 -04:00
Matt Peters
fd97028c28 Change presave prototype to take an FObjectSaveContextRef to provide more information about the save parameters.
#rb Francis.Hurteau, Devin.Doucette
#rn Minor Cooking

[CL 15831839 by Matt Peters in ue5-main branch]
2021-03-25 16:51:36 -04:00
semion piskarev
02b015cbb4 Fixing broken Ctrl+click and other modifier behavior in MeshModelingTools by reverting most of the input processing changes from 15676489. Made tools not process inputs captured by viewport flying to keep another issue fixed. Made KeyAsModifierInputBehavior not capture input.
#rb Brooke.Hubert, Ryan.Schmidt
#jira UE-110597, UE-110273
#rnx

#ROBOMERGE-SOURCE: CL 15740999 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v781-15675533)

[CL 15741006 by semion piskarev in ue5-main branch]
2021-03-18 16:02:18 -04:00
brooke hubert
d11973e38c Fixing dropped undo transactions and fly mode wonkiness in viewports with the ITF tools contexts.
The tracking transactions were not happening at the right times, so the tools context had special considerations for some viewport interactions, but not all. This was causing some scale, rotate, and translate operations in the viewport to be lost when the tools context would evaluate the right mouse button behavior for fly mode.

This rearranges how the tracking transaction makes it to the tools context from the viewport, and splits the tools context processing of mouse tracking away from the mode manager, so that the ordering of mouse processing can be maintained by the viewport, instead of the tools context having to maintain knowledge of the viewport.

#Jira UE-110273
#rb ryan.schmidt lauren.barnes jamie.dale

#ROBOMERGE-SOURCE: CL 15676489 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v781-15675533)

[CL 15676508 by brooke hubert in ue5-main branch]
2021-03-11 10:50:57 -04:00
brooke hubert
0e65cf7202 Add getters in context queries API for viewports so that tools can query the viewport client for input context directly.
#Jira none
#rb ryan.schmidt
[FYI] lauren.barnes

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

[CL 15527825 by brooke hubert in ue5-main branch]
2021-02-25 09:47:14 -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
lonnie li
c4b0e521f2 MeshModelingTools: Replace MultiSelectionTool PrimitiveComponentTarget usage with ToolTargets (pt.1)
#rb semion.piskarev

[CL 15508149 by lonnie li in ue5-main branch]
2021-02-23 18:03:26 -04:00
brooke hubert
17f0e31526 Placement Mode Single place tool improvements:
* Tweak after placement in world and local space using standard level editor gizmos.
* Removed Single place tool settings. Since we're using the TRS gizmos, these settings are unnecessary.
* Moved cycle through palette to shift + right click to match other viewport functions (i.e. cycling static mesh previews).
* Placement mode now inherits from default ed mode, so we will get the new gizmos as they come online.
* Fixed a bug in the select tool where the input was never making it back to the viewport for handling.
* Fixed a bug in the ITF Editor hooks where the mouse capture was incorrectly reporting and eating the input from the viewport.

#Jira UE-107395
[at]jamie.dale

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

[CL 15466468 by brooke hubert in ue5-main branch]
2021-02-18 20:47:20 -04:00
Richard TalbotWatkin
bf10d3336a Refactor of source model representation for static meshes.
- Moved source models related classes and implementation into separate files.
- Created a new UObject wrapper for holding mesh description bulk data; this is created as a transactable object inside a UStaticMesh.
- The cached mesh description is now an inner object of the bulk data wrapper; this allows transactions on the bulk data to affect the cached mesh.
- The static mesh SourceModels array can no longer be accessed directly: FStaticMeshSourceModel requires extra initialization before it should be used, so new LODs should be added through the static mesh API.
- Undo/redo is now fixed within the geometry tools
- Fixed regression where mesh description was being unpacked unnecessarily during transactions
- MeshDescription bulk data and its cached MeshDescriptions are now emptied prior to removing the UObject reference, in order to immediately free memory instead of needing to wait for garbage collection
- No more deadlocks when clearing or committing mesh descriptions during garbage collection
- Bulk data UObjects are constructed, where possible, at startup, in order to prevent it from happening during critical moments, e.g. during garbage collection or package saving.
#rb Danny.Couture, Alexis.Matte, Ryan.Schmidt

[CL 15420827 by Richard TalbotWatkin in ue5-main branch]
2021-02-16 15:14:02 -04:00
ryan schmidt
45d812ad77 ModelingMode: Support for HiRes SourceModel in AutoLOD Process/Tool. Copies input LOD0 to HiRes on Accept, and uses input HiRes if available, so AutoLOD can be repeated cleanly. Extend ComponentTargetFactory registration API to allow removal and querying for registered Factory. Add active Editing LOD to FStaticMeshComponentTargetFactory. Expose drop-down in ModelingMode UI to configure the active Editing LOD level. Remove Save settings from Modeling Mode Quick-Access UI.
#rb none
#rnx
#jira none

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

[CL 15383264 by ryan schmidt in ue5-main branch]
2021-02-10 19:51:41 -04:00
brooke hubert
890a5c72c2 Implement Lasso Selection tool (brush based selection) in asset placement mode.
# Also exposed the typed element selection set to the queries API in ITF.
# Implemented a stash/pop selection on the typed element selection set for modes to use.

#Jira UE-107091
#rb jamie.dale chris.gagnon ryan.schmidt

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

[CL 15360406 by brooke hubert in ue5-main branch]
2021-02-08 17:13:32 -04:00
semion piskarev
f2c84afcbf MeshModelingTools: Made Esc and Enter keys work even when viewport is not focused.
#rb Jimmy.Andrews
#rnx
#jira none

[CL 15276288 by semion piskarev in ue5-main branch]
2021-02-01 19:06:50 -04:00
semion piskarev
a776dc57e4 MeshModelingTools: Split the material-related functions into a separate interface in the tool target system, made them match the existing PrimitiveComponentTarget signatures, made CommitMaterialSet support applying to the component rather than the asset.
#rb Jimmy.Andrews
#rnx
#jira none

[CL 15253840 by semion piskarev in ue5-main branch]
2021-01-28 19:08:26 -04:00
semion piskarev
fcd79b6746 MeshModelingTools: Allowing the drag alignment mechanic to include invisible components in hit test, and allowing it to work with interval gizmos.
#rb Jimmy.Andrews
#rnx
#jira none

[CL 15242544 by semion piskarev in ue5-main branch]
2021-01-28 13:03:54 -04:00