ViewportClient's NearPlane value is assumed to be positive, which makes things janky if your camera has negative z value. This change uses the camera's absolute Z coordinate for computing the temporary clip planes, and also testing if the XY-plane is on the wrong size of our near clipping plane.
#rb semion.piskarev
#preflight 645be1df2f4eab186357ab22
[CL 25412342 by tyson brochu in ue5-main branch]
- added support for material and size customization
#jira UE-183453
#rb kiaran.ritchie
#preflight 6442a83b0171aae0b1b48571
[CL 25177125 by benoit gadreau in ue5-main branch]
- multiselection: bones can be multi-selected (using shift/ctrl) so that they can be bulk edited
- bones can be transformed individually (unlike in the level editor where the last selected element's transform is used as pivot)
- added USkeletalMeshGizmoContextObject to manage gizmo wrappers for skeletal mesh tools
- gizmo: re-used the transform gizmo work done with several fixes/improvements so that they can be used in other contexts
- UTransformGizmo can be used without TransformGizmoSource, most of the infos can be retrieved from the IToolsContextQueriesAPI
- UTransformGizmo can be passed an external StateTarget to handle transaction externally
- UTransformGizmo fixed rotations going in the wrong direction when dragging
#jira UE-183454
#jira UE-183453
#rb kiaran.ritchie
#preflight 643d63df8e01968448cf53db
[CL 25085825 by benoit gadreau in ue5-main branch]
- moved most functions defined in ParameterToTransformAdapters.h header into a new cpp to simplify debugging/etc
- UGizmoAxisTranslationParameterSource and UGizmoPlaneTranslationParameterSource now support optional constraints on the translation Delta
- CombinedTransformGizmo now has PositionAxisDeltaSnapFunction that, when in 'relative' mode, snaps the translation Deltas to increments via those constraints
- Added CombinedTransformGizmo::RelativeTranslationSnapping which controls relative vs absolute translation snapping, and can fetch value from ToolsContext
- Also added rotation-angle-delta constraint support UGizmoAxisRotationParameterSource and switched the gizmo to explicitly snap angle-deltas instead of trying to snap to "world rotation grid"
- Moved SnapToIncrement function to UE::Geometry namespace (in VectorUtil.h) and cleaned up a bit of duplicate code in UModelingSceneSnappingManager left over from pre-GeometryCore times
- Added FToolContextSnappingConfiguration::bEnableAbsoluteWorldSnapping, EdModeInteractiveToolsContext:: bEnableAbsoluteWorldSnapping and bits to hook this up
- Added UModelingToolsEditorModeSettings::bEnableAbsoluteWorldSnapping which stores this setting globally, but currently it is not serialized to config file, resets to default (Relative) on Editor restart
- Toolkit exposes toggle in the Selection toolbar menus
#rb none
#preflight 639b4036680483bcb1c33869
[CL 23532642 by ryan schmidt in ue5-main branch]
Add UEditorInteractiveToolsContext::SetForceCombinedGizmoMode() and GetForceCombinedGizmoModeEnabled() so that an ITC can have a toggle for whether or not to respect the Editor gizmo mode.
Add implementation of new ::GetCurrentTransformGizmoMode() in FEdModeToolsContextQueriesImpl, that uses this new flag.
Add support in UCombinedTransformGizmo for specifying which sub-gizmo set is visible based on EToolContextTransformGizmoMode member, or alternately querying EToolContextTransformGizmoMode via IToolsContextQueriesAPI.
ModelingMode: add new UModelingToolsEditorModeSettings::bRespectLevelEditorGizmoMode to configure combined-vs-leveleditor gizmo mode behavior of Modeling Mode. Currently applying this setting to ModelingMode ITC in ::Begin(), so mode exit/enter is needed to apply the setting.
#rb none
#preflight 636bf5bf63037c1026d09aed
[CL 23081762 by ryan schmidt in ue5-main branch]
# Although there aren't references left to the object, iterating over all the things will return the thing. Flagging as garbage seems a lot testier of a change for fixing the 5.1 crash with varied lifettime of the mode and mode manager contexts, so merely tracking it and reporting the correct world here.
#rnx
#Jira UE-168159
#rb lauren.barnes, zach.rammell
#preflight 6356f2ff3d41a4455a628b31
#lockdown jeanmichel.dignard
[CL 22787075 by brooke hubert in ue5-main branch]
Headers are updated to contain any missing #includes needed to compile and #includes are sorted. Nothing is removed.
#ushell-cherrypick of 21065253 by bryan.sefcik
#jira
#preflight 62d5b3e91062f2e63014598e
#ROBOMERGE-AUTHOR: bryan.sefcik
#ROBOMERGE-SOURCE: CL 21152630 via CL 21156388 via CL 21157044
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)
[CL 21181817 by bryan sefcik in ue5-main branch]