Commit Graph

57 Commits

Author SHA1 Message Date
semion piskarev
557edc7c12 MeshModelingTools: Make bridge action have correct selection in TriEdit after completion.
#jira UE-224700
#rb nickolas.drake

[CL 36446625 by semion piskarev in 5.5 branch]
2024-09-19 15:14:35 -04:00
jimmy andrews
e6f3b73dd4 cis fix for incorrect init of temp tri selection in editmeshpolygonstool.cpp
#rb jimmy.andrews

[CL 36445850 by jimmy andrews in 5.5 branch]
2024-09-19 14:57:14 -04:00
jimmy andrews
f04211f441 make polygroup edit and triangle edit tools auto-convert input selections if they're the wrong topology type, rather than discarding them.
+ Also translate mode-level polygroup edge selections (without corners) to tool polygroup edge selection w/ corners if needed.

#jira UE-224600
#rb semion.piskarev

[CL 36444217 by jimmy andrews in 5.5 branch]
2024-09-19 14:22:35 -04:00
Ryan Hummer
4af2fd066d Updating Dev-Release-5.5 from Main at CL #36144969
#okforversepublic

[CL 36146571 by Ryan Hummer in Dev-5.5 branch]
2024-09-10 10:26:02 -04:00
semion piskarev
c8c43b0262 MeshModelingTools: Various collapse, weld, and bridge improvements in PolyEd and TriEd:
- Allow edge collapse to work on polygroup edges.
- Allow weld and bridge to work on sequences of polygroup edges.
- Allow all three to start with a vertex selection.
- Make all three set their selection appropriately on completion.
- Allow collapse to be a lot more permissive about what is allowed to be collapsed.
- Prevent WeldEdgeSequence from incorrectly failing due to edge movements that it does during its own weld sequence.

#rb nickolas.drake
#jira UE-213983

[CL 35809277 by semion piskarev in ue5-main branch]
2024-08-26 16:08:53 -04:00
lonnie li
8734863573 ModelingTools: Fixed InsertEdgeLoops tool in the Select tool bar initializing to the wrong topology type.
Disallow InsertEdgeLoops, InsertEdges and SimplifyByGroups tools in Triangle selection mode.

#rb semion.piskarev
#jira UE-222035

[CL 35741943 by lonnie li in ue5-main branch]
2024-08-22 11:25:23 -04:00
jimmy andrews
b52d855dbe allow edit tri tool to collapse seam edges
#rb David.Hill

[CL 33109276 by jimmy andrews in ue5-main branch]
2024-04-19 13:40:58 -04:00
semion piskarev
1e929a0d89 ModelingTools: Adding icons for various modeling selection activities and PolyEd activities.
#rb Jimmy.Andrews

[CL 31187719 by semion piskarev in ue5-main branch]
2024-02-05 15:43:03 -05:00
semion piskarev
401ed6ed97 MeshModelingTools: Add extrude edge activity to PolyEd and mesh selection. Kept implementating classes in private folder for this release.
#jira UE-202885

[CL 30999688 by semion piskarev in ue5-main branch]
2024-01-30 06:26:44 -05:00
katie caputo
13abd9e3f6 Modeling Tools: Allows 'Q' hotkey to return to 'select' in polygroup edit by changing hotkey for 'Lock Rotation' from 'Q' to 'Ctrl+R'
#JIRA UE-202749
#rb nickolas.drake

[CL 30852239 by katie caputo in ue5-main branch]
2024-01-24 13:11:26 -05:00
nickolas drake
d464d2ed09 PolyEdit: Add support for deleting polygroup edges
#rb semion.piskarev
#jira UE-202723

[CL 30660213 by nickolas drake in ue5-main branch]
2024-01-17 11:34:26 -05:00
semion piskarev
10ca42d775 ModelingTools: Remove unreachable ensure(false) that static analysis didn't like, and fix accidental duplicate LOCTEXT key.
#rb lonnie.li

[CL 30632993 by semion piskarev in ue5-main branch]
2024-01-16 09:54:37 -05:00
semion piskarev
3d4bf819a5 ModelingTools: Allow tools to customize the accept/cancel overlay for sub-activitites, and use this in PolyEd.
#rb lonnie.li
#jira UE-196706

[CL 30601293 by semion piskarev in ue5-main branch]
2024-01-12 15:01:55 -05:00
marc audy
763a611985 Fix C4072 warnings
#rnx

[CL 29852844 by marc audy in ue5-main branch]
2023-11-20 17:26:53 -05:00
semion piskarev
d27ea02f0c MeshModelingTools: Subdivide tool improvements dealing with meshes with open boundaries.
- Factor out "extra corner" finding code from PolyEd and add support for it in subdivide tool.
- Add support for rounded corners for mesh boundaries.
- Override subdivision scheme during tool usage rather than just at tool start, to allow extra corners to fix some issues.
- Add some clarifying comments about schemes.

#rb Jimmy.Andrews
#jira UE-185416

[CL 26011610 by semion piskarev in ue5-main branch]
2023-06-15 08:56:02 -04:00
jimmy andrews
f63cdc13af Update FLocalPlanarSimplify to support simplification along straight creases in a mesh, where the sides of the crease may optionally belong to different PolyGroups
Add an edge simplification operation to the PolyEdit tool

#rb semion.piskarev
#preflight 63ee9a0f3c1eb56f055442ac

[CL 24276322 by jimmy andrews in ue5-main branch]
2023-02-16 21:55:32 -05:00
ryan schmidt
af5699f133 ModelingTools: improve handling of invalid input selections to PolyEd Tool
Add UGeometrySelectionManager::GetActiveSelectionInfo, returns info about current selection w/o having to copy selection
Override UEditMeshPolygonsActionModeToolBuilder::CanBuildTool, use this new function to do specific per-action filtering to limit to supported input selection types
UEditMeshPolygonsSelectionModeToolBuilder::InitializeNewTool() now filters UI panels for current input selection if available, update Selection-palette PolyEd button to use this builder instead
#jira UE-176168
#preflight 63e2c886c2257e56f413b805
#rb david.hill

[CL 24068438 by ryan schmidt in ue5-main branch]
2023-02-08 01:21:37 -05:00
semion piskarev
6a7be69e26 MeshModelingTools: unbind the "toggle gizmo" action in some tools from a default hotkey to prevent users from accidentally pressing it and thinking that the tools are broken. Users can still set their own hotkey if their workflow benefits from it.
#rb Jimmy.Andrews
#jira UE-176343
#preflight 63e2a16e1020773a3f3e3e56

[CL 24062599 by semion piskarev in ue5-main branch]
2023-02-07 18:29:11 -05:00
semion piskarev
f18d6198cc MeshModelingTools: Add gizmo numerical UI.
- Added FTransformGizmoDataBinder which allows for gizmos to be bound to vectors such that the vectors are updated when the gizmo changes, and the gizmo is updated from vectors when asked. This should make it easy-ish to create displays of gizmos.
- Used the data binder in STransformGizmoNumericalUIOverlay, an overlay containing a draggable numerical UI panel for gizmos. Note that currently all changes, including typing, intentionally go down a gizmo drag path, meaning that they trigger the begin/end transform edit sequence calls, to make the tools treat them as a gizmo drag (in part because some tools might otherwise assume that a gizmo update is from an undo transaction or some other path that is special-cased).
- Added some slate things to ModelingEditorUI to support the numerical UI, in particular a viewport draggable box, and a widget that emits a tick delegate.
- Added some delegates to gizmo context object and combined transform gizmos to allow things to bind/unbind to/from them appropriately.

#rb Ryan.Schmidt
#preflight 63ce97ebf2318350a2f3a6c4

[CL 23815889 by semion piskarev in ue5-main branch]
2023-01-23 12:48:47 -05:00
ryan schmidt
70ac55822d ModelingMode: improve interop with new Selection System and existing Tools
Add support for Tools to provide an "output" selection. Add UGeometrySelectionManager::SetSelectionForComponent() which can set an explicit externally-provided selection. FBaseDynamicMeshSelector::UpdateSelectionFromSelection() now supports selection conversion when available and requested (is used to implement SetSelectionForComponent). New GeometrySelectionUtil functions InitializeSelectionFromTriangles() and ConvertSelection() are used to implement this (note: only Triangles->other conversion is currently supported). Add HaveAvailableGeometrySelection() and SetToolOutputGeometrySelectionForTarget() in StoredMeshSelectionUtil.h, this is the top-level function that Tools can use to set an Output selection.

ExtrudeMeshSelectionTool now emits output selection.

Update EditMeshPolygonsTool to use new Selection system and allow individual operations to be utilized as standalone Tools. Convert EditMeshPolygonsTool to be a USingleTargetWithSelectionTool, use FGeometrySelection to initialize selection. Add bTerminateOnPendingActionComplete flag, which is set when Tool is directly initialized to a specific operation, and forces tool to shut down when operation completes. This allows it to be used to more cleanly implement multiple action buttons in Modeling UI. When in this mode, selection panels are not shown. On Shutdown, now emits an "output" selection which GeometrySelectionManager can use to provide new selection to user. Update UPolygonSelectionMechanic Set/Get selection APIs to use FGeometrySelection instead of UPersistentMeshSelection.

port UVProjectionTool to derive from USingleTargetWithSelectionTool, use FGeometrySelection to initialize target ROI

deprecate UPersistentMeshSelection and related functions in StoredMeshSelectionUtil.h. Deprecate Tool Input Selection APIs in USingleSelectionMeshEditingTool and Builder.

Repurpose old ModelingMode-level PolyModel tab operations for new Selection Tools UI, now support Inset, Outset, Cut Faces, Insert Edge Loop, PushPull, and Bevel.

#rb none
#preflight 63c84fa2b065224750b9831f

[CL 23766643 by ryan schmidt in ue5-main branch]
2023-01-18 17:59:31 -05:00
semion piskarev
7bdac96c18 MeshModelingTools: Fix TriEd flip edge operation selecting wrong edges afterward.
#rb Jimmy.Andrews
#preflight 6361f5fd0c2e7c8f916bb1fd

[CL 22937875 by semion piskarev in ue5-main branch]
2022-11-02 23:06:02 -04:00
semion piskarev
e1d6ffd423 MeshModelingTools: Add detail customization for selection filter in PolyEd and TriEd, make loop/ring selection imply edge selection, per discussion with ux team.
#rb Lonnie.Li
#jira none
#preflight 633c994a0e66c104f1d2889e

[CL 22338072 by semion piskarev in ue5-main branch]
2022-10-04 16:48:57 -04:00
bryan sefcik
50d4fac9e0 Updated ../Engine/Plugins/... to inline gen.cpp files
Before:
3548 unity files
Total CPU Time: 47343.578125 s
Total time in Parallel executor: 494.60 seconds

After:
3445 unity files
Total CPU Time: 46044.671875 s
Total time in Parallel executor: 468.51 seconds

#jira
#preflight 63336159b20e73a098b7f24f

[CL 22218213 by bryan sefcik in ue5-main branch]
2022-09-28 01:06:15 -04:00
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
6cac8b3c12 MeshModelingTools: Fix PolyEd doing full proxy updates while dragging gizmo.
#rb Jimmy.Andrews
#jira UE-156868
#preflight 631bacbad135b61bc57933a5

[CL 21984896 by semion piskarev in ue5-main branch]
2022-09-13 12:19:06 -04:00