Commit Graph

69 Commits

Author SHA1 Message Date
katie caputo
c9c94e18c0 Modeling Tools: Updates the visual display of Mesh Element Selection so that only applicable components are displayed depending on the selection mode
#JIRA UE-206070
#rb lonnie.li

[CL 33732970 by katie caputo in ue5-main branch]
2024-05-17 15:06:29 -04:00
katie caputo
d2d550ceb1 Modeling Tools: Replaces the existing PDI implementation of MeshElementSelection to use PreviewGeometry
#JIRA UE-189444
#rb lonnie.li

[CL 33610721 by katie caputo in ue5-main branch]
2024-05-13 18:32:09 -04:00
katie caputo
a7bd886565 Modeling Tools: Implement the selection Mapping Flags for MeshElementSelection and clarify its related code
#JIRA UE-212714
#rb lonnie.li

[CL 33334853 by katie caputo in ue5-main branch]
2024-04-30 09:10:14 -04:00
jimmy andrews
87679c1c76 Make draw polygon, draw polypath, and draw-and-revolve tools initialize with a 'reasonable' drawing frame instead of starting at the origin
#jira UE-185651

Where reasonable means centered on the selection (if available), or otherwise centered in the view.
If a geometry element is selected, we will also align to that (e.g., aligning to the plane of a selected triangle)
#rb David.Hill

[CL 33182868 by jimmy andrews in ue5-main branch]
2024-04-23 18:39:48 -04:00
jimmy andrews
558c86d50b Make modeling mode element selections auto-convert when user changes the active selection mode (if a conversion is implemented)
#rb rinat.abdrashitov

[CL 33116028 by jimmy andrews in ue5-main branch]
2024-04-19 16:41:11 -04:00
katie caputo
87533ccde8 Modeling Tools: Add support for customizing colors in Mesh Element Selection, add support for different between hovering over a selected vs non-selected elements, fix issues with EnumerateSelectionEdges
#JIRA UE-209421 UE-206063
#rb nickolas.drake

[CL 33070091 by katie caputo in ue5-main branch]
2024-04-18 09:20:08 -04:00
yoan stamant
c942ebd49c Converted some header deprecation from 5.5 to 5.4
#rb Marc.Audy

[CL 31630036 by yoan stamant in ue5-main branch]
2024-02-19 18:02:45 -05:00
katie caputo
b403616bec Modeling Tools: Places Mesh Element Selection Gizmo in Object Frame Mode at selected component(s) pivot rather than at object's pivot
#JIRA UE-206515
#rb lonnie.li

[CL 31575613 by katie caputo in ue5-main branch]
2024-02-16 14:49:01 -05:00
jimmy andrews
8357d71799 deprecate now-unused FGenericMeshSelection struct
#rb David.Hill

[CL 31531894 by jimmy andrews in ue5-main branch]
2024-02-15 15:08:36 -05:00
jimmy andrews
f82bec6181 remove various deprecated methods from modeling components code
#rb jimmy.andrews

[CL 31501927 by jimmy andrews in ue5-main branch]
2024-02-14 19:10:11 -05:00
jimmy andrews
05d70b0bf8 remove deprecated persistent mesh selection code from modelingcomponents
#rb jimmy.andrews

[CL 31501095 by jimmy andrews in ue5-main branch]
2024-02-14 18:58:49 -05:00
yoan stamant
0d5635a910 Removed some headers dependencies on 'FHitResult' and 'FOverlapResult'
#rb Mieszko.Zielinski

[CL 31470741 by yoan stamant in ue5-main branch]
2024-02-14 09:15:30 -05:00
alex kahn
cdfd11e33e [Backout] - CL31425693 - CIS UE Error Backout 4/4
[FYI] Yoan.StAmant
Original CL Desc
-----------------------------------------------------------------
Removed some headers dependencies on 'FHitResult' and 'FOverlapResult'
#rb Mieszko.Zielinski

[CL 31440421 by alex kahn in ue5-main branch]
2024-02-13 14:37:03 -05:00
yoan stamant
00a0c5ac5d Removed some headers dependencies on 'FHitResult' and 'FOverlapResult'
#rb Mieszko.Zielinski

[CL 31425867 by yoan stamant in ue5-main branch]
2024-02-13 09:57:09 -05:00
katie caputo
7ec560568b Modeling Tools: Adds 'Local Frame Mode' toggle in the Mesh Element Selection Toolbar Settings so users can edit with the gizmo based either on the selected geometry only or on the entire object
#JIRA UE-202681
#rb lonnie.li, nickolas.drake

[CL 31128610 by katie caputo in ue5-main branch]
2024-02-02 11:59:31 -05:00
nickolas drake
3925fcdf2b MeshElementSelection: Remove deprecation markup from UGeometrySelectionManager::ActivePreviewSelection
This was mistakenly included as I thought the SubmitTool had finished its work and I started messing around and it picked up my change

[FYI] lonnie.li

[CL 30861865 by nickolas drake in ue5-main branch]
2024-01-24 16:21:08 -05:00
nickolas drake
471232acd1 MeshElementSelection: Make selectable mesh elements visible.
When we have a valid topology type (Triangle or Poly, not None), we render selectable mesh elements.

Added AccumulateElementsFromPredicate to the GeometrySelector interface which allows a predicate function to filter which geometry elements ought to be included in the provided FGeometrySelectionElements. The predicate is aware of the type of element (vert, edge, tri) and the selected element ID (which is a single value encoding the topology ID and the element ID). The predicate returns true for elements to include and false for elements to exclude. Internally, this function builds transient vert, edge, and tri selections with this predicate and then accumulates all selection elements into the provided FGeometrySelectionElements.

#rb lonnie.li
#jira UE-202674

[CL 30860867 by nickolas drake in ue5-main branch]
2024-01-24 16:06:11 -05:00
benoit gadreau
8659b4c503 Selection mechanic: improve UI responsivness by proposing different notification types
- on drag: handles the rectangle change directly
    - on tick: stores a pending selection function when dragging and calls it when ticking
    - on realease: stores a pending selection function when dragging and calls it on release

#jira UE-201729
#rb semion.piskarev

[CL 30315792 by benoit gadreau in ue5-main branch]
2023-12-14 04:28:00 -05:00
jimmy andrews
7e1b8e46d9 add concept of saving-on-clear/restoring the selection manager's selection, so that tools can restore the before-tool selection if the tool is cancelled, or if the tool otherwise did not change the underlying meshes.
+ add a callback to the modeling editor mode so it can know whether a tool was cancelled, and make the modeling mode use the selection manager's new save-on-clear/restore feature automatically when its tools are cancelled.

 + make some tools (normals, tangents, inspector) restore the before-tool-start selection after tool use via a utility function, since they shouldn't change mesh IDs that the selection relies on.

#jira UE-195948
#rb Ryan.Schmidt

[CL 29027037 by jimmy andrews in ue5-main branch]
2023-10-23 22:46:23 -04:00
semion piskarev
a57cc26c15 MeshModelingTools: Make group edge loop selection select boundary loops when clicking those.
#rb Jimmy.Andrews
#jira UE-197964

[CL 28779868 by semion piskarev in ue5-main branch]
2023-10-13 19:34:42 -04:00
kiaran ritchie
5375337bcc Adding select shell / grow / shrink to vertex selection modes.
#rb halfdan.ingvarsson

[CL 27327509 by kiaran ritchie in ue5-main branch]
2023-08-23 19:29:44 -04:00
tyson brochu
f605a439af Mesh Topology Selection Mechanic: enable/disable different selection modes in the details customization
#rb semion.piskarev

[CL 26319136 by tyson brochu in ue5-main branch]
2023-06-29 13:27:16 -04:00
matija kecman
d8e6b45610 Add a reusable geometry selection visualization system intended to be used in modeling tools with minimal boilerplate
This CL was reviewed here: https://p4-swarm.epicgames.net/reviews/26051575 but needs to be merged into //Fortnite/Release-26.00, not //Fortnite/Main

#jira UE-183457
#rb ryan.schmidt, nathan.mitchell

[CL 26180658 by matija kecman in ue5-main branch]
2023-06-22 09:28:20 -04:00
ryan schmidt
826eb71a04 ModelingMode: selection system bugfixes & improvements.
Add DynamicMeshSelector::UpdateAfterGeometryEdit API. StaticMeshSelector implementation updates static mesh after an Edit instead of emitting MeshChange on temporary DynamicMesh.
Delete and Retriangulate Commands now use this API instead of directly emitting transaction, so now these commands work properly on Static Meshes.

FStaticMeshComponentSelectorFactory::CanBuildForTarget now only allows UStaticMeshComponent specifically, filtering out subclasses. This is not ideal but I don't know what else we can do for now, there are many subclasses like ISMC, SplineMeshComponent, etc, that will not work w/ the Selection system. Also now filtering out Engine assets and cooked assets.

ModelingToolsEditorMode now listens for blueprint pre-compiles, and when this occurs, clears the active selection and selection targets. This is necessary because if the selection Component was part of a BP, on recompile it is re-instanced and the old pointer goes stale. Possibly can handle this better or at a more granular level, but clearing the selection is safest. This currently results in things not being undoable because the FChange transactions are on the "old" UDynamicMesh that no longer exists.

UModelingToolsEditorMode::UpdateSelectionManagerOnEditorSelectionChange now does a more thorough job of inspecting the current Actor/Component selection to find Components that could work w/ the selection system.

#rb lonnie.li

[CL 26133067 by ryan schmidt in ue5-main branch]
2023-06-20 16:23:43 -04:00
kiaran ritchie
ca07aefee4 Fixing compile error from 25482982
#rb none
#JIRA none
#preflight none

[CL 25483177 by kiaran ritchie in ue5-main branch]
2023-05-15 20:01:48 -04:00