Commit Graph

37 Commits

Author SHA1 Message Date
tyson brochu
9efcc70606 ModelingComponents/Selection:
- create a new MeshTopologySelector base class. The existing GroupTopologySelector class now inherits from it, as does a new BoundarySelector class
- likewise, create a new MeshTopologySelectionMehchanic base class and have (existing) PolygonSelectionMechanic and (new) BoundarySelectionMechanic inherit from it
- the new Boundary classes use FMeshBoundary loops to define selectable loops rather than FGroupTopology

HoleFillTool:
- change to using BoundarySelectionMechanic instead of GroupTopologySelector

Misc:
- allow FMeshBoundaryLoops to fail untangling a loop with bowties but still continue processing other loops


#jira UE-144821
#rb jimmy.andrews
#preflight 63222176e93a80888cb7d3df

[CL 22013854 by tyson brochu in ue5-main branch]
2022-09-14 15:25:19 -04:00
semion piskarev
c17c1bd788 MeshModelingTools: Give ability to add extra corners in PolyEd for manipulation of some common open-boundary cases (like a disconnected rectangle, for instance). Also show selectable corners by default (but smaller).
#rb Matija.Kecman
#jira none
#preflight 6307ab3859064f9d1e43c1fb

[CL 21568934 by semion piskarev in ue5-main branch]
2022-08-25 14:06:37 -04:00
Ryan Schmidt
c793d4bfa8 SelectionManager: modify Shutdown() to handle clearing active targets itself, as calling ClearActiveTargets() on editor shutdown can result in error if Component is already destroyed
#rb none
#preflight 62d976e53122bf80ae015983

[CL 21203457 by Ryan Schmidt in ue5-main branch]
2022-07-21 12:52:31 -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
9ccacbd088 ModelingComponents: fix mismatched loctext key
#rb none
#preflight skip

[CL 20900253 by Ryan Schmidt in ue5-main branch]
2022-06-30 14:13:04 -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
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
ryan schmidt
7c983b8d45 GeometryCore: clean up issues that block non-LWC builds
#rb david.hill
#preflight 620ff48d53204823ae859ccb

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 19064974 via CL 19076437 via CL 19077315 via CL 19078956
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19122734 by ryan schmidt in ue5-main branch]
2022-02-24 15:01:41 -05:00
fred kimberley
7fbfaf57c8 Require explicit constructors/casts when converting between FVector, FVector3d, and FVector3f.
#jira UE-122078
#rb Andrew.Davidson, Colin.McGinley
#preflight standard build

#ROBOMERGE-AUTHOR: fred.kimberley
#ROBOMERGE-SOURCE: CL 18817999 in //UE5/Release-5.0/... via CL 18818012 via CL 18822871
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)

[CL 18824721 by fred kimberley in ue5-main branch]
2022-02-02 07:59:31 -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
5aa84b9176 MeshModelingTools: Fix triangle marquee select not working in TriEdit because it was querying group id from the mesh instead of topology.
#rb Rinat.Abdrashitov
#rnx
#jira none
#preflight 61f316a07a7f0d39ddbe7687

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

[CL 18771278 by semion piskarev in ue5-main branch]
2022-01-28 10:14:42 -05:00
mark lintott
4ab7eeb4d6 Non Unity Fixes
#jira none
[FYI] semion.piskarev
#rb trivial
#preflight 61f3d2697a7f0d39dddb8c52

#ROBOMERGE-AUTHOR: mark.lintott
#ROBOMERGE-SOURCE: CL 18769834 in //UE5/Release-5.0/... via CL 18769843 via CL 18769895
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18769896 by mark lintott in ue5-main branch]
2022-01-28 06:59:03 -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
UnrealBot
c47e81b2cb Branch snapshot for CL 18531810
[CL 18531810 in ue5-main branch]
2022-01-06 16:44:09 +00:00
UnrealBot
2987349d36 Branch snapshot for CL 18514113
[CL 18514113 in ue5-main branch]
2022-01-05 20:41:17 +00:00
semion piskarev
bfc27a1dc3 MeshModelingTools: Fix Boundary Revolve tool not working after CL 17630965 because PolygonSelectionMechanic was not adding its behaviors with the proper source. Also changed it to respect Shift modifier when clicking on a boundary the same way that the plane mechanic does.
#rb Matija.Kecman
#rnx
#jira UE-132759
#preflight 61d4991ad17842e547aa1a9c

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

[CL 18518614 by semion piskarev in ue5-release-engine-test branch]
2022-01-05 09:46:01 -05:00
semion piskarev
d52c6b110f MeshModelingTools: Change loop variable to reference to remove compiler warning on mac builds.
#rb trivial
#rnx
#jira
#preflight 61d4b34d6c000c869b0779ee

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

[CL 18512728 by semion piskarev in ue5-release-engine-test branch]
2022-01-04 16:13:33 -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
matija kecman
bf29ef465d MeshModelingToolset: Fix focusing selected actor not working properly in PolyEdit orTriEdit when selection was empty
#rb rinat.abdrashitov
#rnx
#jira UE-137448
#preflight 61b8c3ca2e65a1df04674af5

#ROBOMERGE-AUTHOR: matija.kecman
#ROBOMERGE-SOURCE: CL 18465927 in //UE5/Release-5.0/... via CL 18465935
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18465937 by matija kecman in ue5-release-engine-test branch]
2021-12-15 05:02:56 -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