Commit Graph

29 Commits

Author SHA1 Message Date
Ryan Schmidt
dc5b1dcca4 add file that was missed in CL 21117964
#rb none
#preflight skip

[CL 21119976 by Ryan Schmidt in ue5-main branch]
2022-07-15 20:04:27 -04:00
Ryan Schmidt
986547914e Move GeometrySelection.h and GeometrySelectionUtil.h to GeometryProcessing plugin. Move types in GeometrySelection.h into UE::Geometry:: namespace. Fix up usage sites.
#rb none
#preflight 62d1c7222e3e5993c351a126

[CL 21117964 by Ryan Schmidt in ue5-main branch]
2022-07-15 17:53:52 -04:00
Ryan Schmidt
6032c02f0e ModelingMode: add Delete command for current Mesh Selection
ToolsFramework:
add UInteractiveCommand and UInteractiveCommandArguments types, base classes for 'interactive commands' which are intended to be used for atomic actions, ie stateless, no user interaction, etc
ModelingComponents:
add UGeometrySelectionEditCommand/Arguments, this is a UInteractiveCommand that uses a FGeometrySelection as an argument
add UGeometrySelectionManager::CanExecuteSelectionCommand() and ExecuteSelectionCommand()

MeshModelingTools:
add UDeleteGeometrySelectionCommand, deletes selected mesh geometry by converting input selection to list of triangles

ModelingToolsEditorMode:
add Delete command to ModelingMode and UI. ModelingToolsEditorMode currently is keeping active command set alive via new UModelingToolsEditorMode::ModelingModeCommands member.

#rb none
#preflight 62d195b9a66919b6701d89a8

[CL 21113757 by Ryan Schmidt in ue5-main branch]
2022-07-15 13:49:13 -04:00
Ryan Schmidt
9c4efbe435 ModelingComponents: Add UE::Geometry::GetCurrentGeometrySelectionForTarget() util function to query current UGeometrySelectionManager for active Selection. Modify UE::Geometry::GetCurrentToolInputSelection() to return converted selection from UGeometrySelectionManager instead of using the now-disabled UPersistentMeshSelectionManager. Deprecate UPersistentMeshSelectionManager and related functions/classes.
#rb none
#preflight 62c60a31892b4d4f308ca646

[CL 20983305 by Ryan Schmidt in ue5-main branch]
2022-07-07 09:44:46 -04:00
Ryan Schmidt
6c6315d4e5 ModelingMode: add support for new element-level geometry selection system for DynamicMeshComponents
New UModelingSelectionInteraction provides click-to-select and gizmo interactions for current set of mesh objects that support selection, by manipulating the active UGeometrySelectionManager.

ModelingMode now creates a UGeometrySelectionManager and UModelingSelectionInteraction on mode startup, if 'persistent selections' are enabled in the project settings. This replaces the previous persistent selection system/manager, which is no longer created/registered.
UModelingToolsEditorMode::ShouldDrawWidget() and ::ComputeBoundingBoxForViewportFocus() updated to support active Selection.

Functions ::OnToolsContextRender(), ::OnToolPostBuild(), ::GetGeometrySelectionChangesAllowed(), ::TestForEditorGizmoHit(), ::UpdateSelectionManagerOnEditorSelectionChange() added to support selection system.

FModelingToolsEditorModeToolkit will add buttons for selection control if Persistent Selections are enabled. Dynamic updates to Palette based on active selection are initiated by EdMode. Currently the selection-actions palette is empty.

#rb none
#preflight 62c5f20c3c5171c81715f5f4

[CL 20973334 by Ryan Schmidt in ue5-main branch]
2022-07-06 16:54:57 -04:00
David Hill
4c6d43fe88 MeshModelingToolSet - DynamicMeshSelector. Make sure the correct version of shutdown is called. Fixes a static analysis warning
#jira UE-158215
#preflight 62c4e80f2f31b87c6cc5f9f8
#rb Jimmy.Andrews

[CL 20955739 by David Hill in ue5-main branch]
2022-07-05 21:51:47 -04:00
Ryan Schmidt
96bcffd475 ModelingComponents: add new geometric-element Selection system
GeometrySelection.h/cpp: FGeometrySelection, FGeometrySelectionEditor, representation and manipulation of a generic element-level selection, stored as a set of uint64. Editor makes changes to Selection while tracking deltas.
GeometrySelectionUtil.h/cpp: utility and helper functions for editing/processing a mesh+selection
GeometrySelector.h: FGeometryIdentifier type used to identify target objects with element-level selection support. IGeometrySelector interface that defines API for element selection for a type of target object. Factory type for spawing instances. IGeometrySelectionTransformer interface that defines API for element-level transformation
GeometrySelectionManager.h/cpp: UGeometrySelectionManager that maintains set of 'active targets' with associated Selector, Selection, and SelectionEditor, and provides high-level API for creating and querying element selections, 3D transforms of selections, selection undo/redo, and (currently) limited debug rendering
GeometrySelectionChanges.h/cpp: FChange types for element selection changes
DynamicMeshSelector.h/cpp: implementation of IGeometrySelector for UDynamicMesh/Component

#rb jimmy.andrews
#preflight 62bdb9cbb024a2608c38b72d

[CL 20896967 by Ryan Schmidt in ue5-main branch]
2022-06-30 12:09:44 -04:00
Nickolas Drake
1400b65d56 ModellingComponents: Add optional corner point visualization to PolyEdit
#rb Simeon.Piskarev
#jira none
#preflight 629fc9d185333f26645be644

[CL 20546816 by Nickolas Drake in ue5-main branch]
2022-06-07 18:25:43 -04:00
christopher waters
f8147b1889 Full set of fixes for non-unity non-pch builds after EngineTypes cleanup. This includes adjusting previous build fixes that introduced new includes that weren't actually necessary. Restored a few includes and wrapped them in UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_1 checks to maintain compatability.
Also includes fixes for other build issues as it's hard to separate them all.

#jira too many to list
#rb none
#preflight 6247d21073665f7d5e6c5a6c

[CL 19600818 by christopher waters in ue5-main branch]
2022-04-02 01:04:02 -04:00
semion piskarev
50dc6daa40 MeshModelingTools: Add a little helper struct to convert lists/sets of eids into stable identifiers and back.
#rb Jimmy.Andrews, Ryan.Schmidt
#jira UE-143789
#preflight 621cef98037be0078ca30b2c

[CL 19175025 by semion piskarev in ue5-main branch]
2022-02-28 11:35:13 -05:00
semion piskarev
36e35bdaac MeshModelingTools: Fix crash when hitting delete and marquee selecting at the same time in PolyEdit.
#rb Jimmy.Andrews
#rnx
#jira UE-143243
#preflight 6210193fad11de9431d2afa4


#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 19093207 via CL 19093826 via CL 19094601 via CL 19096102 via CL 19105343
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19146652 by semion piskarev in ue5-main branch]
2022-02-25 09:43:15 -05:00
semion piskarev
e0d63c57d2 MeshModelingTools: Add SelectAll and InvertSelection actions to PolyEd.
#rb Lonnie.Li
#rnx
#jira none
#preflight 61f94857a6632a34f371a9b9

[CL 18808632 by semion piskarev in ue5-main branch]
2022-02-01 10:16:18 -05:00
ryan schmidt
6ad26b69f0 rename UE::Geometry::TTransform3 to TTransformSRT3, update references
#rb none
#rnx
#jira UE-139757
#preflight 61f572d9e52a8a4a910990f1

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18784197 in //UE5/Release-5.0/... via CL 18784203 via CL 18784222
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18784226 by ryan schmidt in ue5-main branch]
2022-01-29 14:37:53 -05:00
semion piskarev
04dbf52cb8 MeshModelingTools: Reorder selection filter in PolyEd to have vertices before faces.
#rb Rinat.Abdrashitov
#rnx
#jira
#preflight 61f316c4801201ab386c4556

#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 18771230 in //UE5/Release-5.0/... via CL 18771248 via CL 18771364
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18771419 by semion piskarev in ue5-main branch]
2022-01-28 10:23:09 -05:00
semion piskarev
b1f4696320 MeshModelingTools: Add marquee face selection in PolyEdit. Fix minor bug where shift+clicking away from the mesh would clear selection.
#rb Matija.Kecman
#rnx
#jira none
#preflight 61f2f27c8255dba0d6b4ab52

#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 18761187 in //UE5/Release-5.0/... via CL 18761737 via CL 18763050
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18763416 by semion piskarev in ue5-main branch]
2022-01-27 17:09:13 -05:00
semion piskarev
2bc05afe97 MeshModelingTools: Move and rename UMeshSelectionMechanic, since it is currently UV Editor specific. Move and rename FDynamicMeshSelection since it is only used in UV Editor. Make the mechanic use FUVEditorUXSettings directly.
#rb Ryan.Schmidt
#rnx
#jira none
#preflight 61eae31dc557ec20018242f6

#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 18693459 in //UE5/Release-5.0/... via CL 18693623 via CL 18693716
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18693769 by semion piskarev in ue5-main branch]
2022-01-21 14:31:16 -05:00
semion piskarev
32e87ed9d4 MeshModelingTools: Add ability to avoid hitting back faces in selection in PolyEdit, to make it easier to work with inside-out meshes. Also save settings for PolyEdit and TriEdit separately.
#rb Jimmy.Andrews
#rnx
#jira none
#preflight 61d37a131f62d3ad4d4a8616

#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 18508336 in //UE5/Release-5.0/... via CL 18508346
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18508367 by semion piskarev in ue5-release-engine-test branch]
2022-01-04 11:23:06 -05:00
ryan schmidt
db857d56b6 ModelingTools: convert various tools/mechanics/etc to use new SnappingManager functionality for scene hit-tests and snapping
#rb david.hill
#rnx
#jira none
#preflight 61b21920d308710b0c513796

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18419130 in //UE5/Release-5.0/... via CL 18422407
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)

[CL 18422664 by ryan schmidt in ue5-release-engine-test branch]
2021-12-09 14:46:09 -05:00
matija kecman
6aa97489d6 UV Editor: Move the checkbox to enable/disable rendering of hovered elements into the main details panel
#rb michael.balzer
#rnx
#preflight

#ROBOMERGE-AUTHOR: matija.kecman
#ROBOMERGE-SOURCE: CL 18410486 in //UE5/Release-5.0/... via CL 18410509
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)

[CL 18410527 by matija kecman in ue5-release-engine-test branch]
2021-12-08 15:04:38 -05:00
matija kecman
d9625a7f87 UV Editor: Add hover preview to Edit mode
#rb semion.piskarev
#rnx
#jira none
#preflight 61af9fc90e59fd0ab0fa5409

#ROBOMERGE-AUTHOR: matija.kecman
#ROBOMERGE-SOURCE: CL 18404342 in //UE5/Release-5.0/... via CL 18404343
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v896-18170469)

[CL 18404348 by matija kecman in ue5-release-engine-test branch]
2021-12-08 05:54:10 -05:00
semion piskarev
40a7e56ec1 UVEditor: add ability to split bowtie verts. Fix some edge splits occasionally creating a bowtie vert on adjacent non-selected edge. Also fix some undo/redo issues especially regarding sew edges preview. Made all undo/redo selection change events broadcast for now.
#rb Nathan.Mitchell, Jimmy.Andrews
#rnx
#jira UE-133108
#preflight 61a8e8b3e01f3610f5307b4e

#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 18355648 in //UE5/Release-5.0/... via CL 18355681
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18355709 by semion piskarev in ue5-release-engine-test branch]
2021-12-02 14:42:09 -05:00
nathan mitchell
88954e6d09 UVEditor: Move visual and style settings (color, depth offsets, etc) to a new style container class, keeping everything in one place for ease of modification in the future. Also adjusts the grid axis lines to not scale up when zooming out in the 2D viewport
#rb semion.piskarev
#rnx
#preflight 61a56498801b36197837b0c4

#ROBOMERGE-AUTHOR: nathan.mitchell
#ROBOMERGE-SOURCE: CL 18319017 in //UE5/Release-5.0/... via CL 18319325
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18319503 by nathan mitchell in ue5-release-engine-test branch]
2021-11-29 20:09:00 -05:00
semion piskarev
16f11a6c15 Made the r.Editor.OpaqueGizmo cvar scene-specific, and disabled dithering in UV editor viewports so that we could use editor compositing to draw the gizmos on top.
#rb Matt.Kuhlenschmidt
#rnx
#jira none
#preflight 6196a74e8703d6d083cc8758

#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 18270301 in //UE5/Release-5.0/... via CL 18270313
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18270325 by semion piskarev in ue5-release-engine-test branch]
2021-11-23 10:35:22 -05:00
jimmy andrews
fd07763a78 remove UE::Geometry::TRay3 and replace usages with UE::Math::TRay
#rb tyson.brochu
#rnx
#preflight 6195872476668b37001d1141

#ushell-cherrypick of 18231220 by Jimmy.Andrews

#ROBOMERGE-AUTHOR: jimmy.andrews
#ROBOMERGE-SOURCE: CL 18232491 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v895-18170469)

[CL 18232527 by jimmy andrews in ue5-release-engine-test branch]
2021-11-17 21:06:46 -05:00
nathan mitchell
fc7fea22f5 UVEditor: Fix issue with MeshSelectionMechanic preventing Non-unity builds from succeeding by incorrectly not declaring UMaterialInstanceDynamic
#rnx

#ROBOMERGE-AUTHOR: nathan.mitchell
#ROBOMERGE-SOURCE: CL 18204061 in //UE5/Release-5.0/... via CL 18205984
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 18206042 by nathan mitchell in ue5-release-engine-test branch]
2021-11-16 08:48:24 -05:00