#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]
[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]
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]
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]
- 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]
+ 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]
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]
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]