- this is disable by default but can be enabled using 'Gizmos.AutoSwitchPullAxis 1' to get some feedback from users
#rb brooke.hubert
#rnx
[CL 35055345 by benoit gadreau in ue5-main branch]
Adjusted InputRouter to forward DoubleClick events to as Pressed events. Clients can register DoubleClick behaviors with a higher priority to capture DoubleClicks. This allows existing single click behaviors the opportunity to consume the double click event as a single click without having to add their own double click behaviors.
#rb nathan.mitchell, semion.piskarev
#jira UE-217980 UE-214543
[CL 34561004 by lonnie li in ue5-main branch]
As a proof of concept, enables the eyedropper cursor during the UV Editor's Texel Density tool's Sampling Mode.
New API is disabled by default, to enable set CVAR Editor.EnableITFCursorOverrideSupport > 1
#rb brooke.hubert, Jimmy.Andrews
#jira UE-207211, UE-207208
[CL 33217562 by nathan mitchell in ue5-main branch]
- as both legacy and new gizmos tick before the mode, they use an obsolete coordinate system when redering. As the Control Rig Mode caches the pivots on tick, we have to make sure we get up-to-date transforms.
#jira UE-206904
#rb Mike.Zyracki
[CL 31497523 by benoit gadreau in ue5-main branch]
- need to enable the experimental Gizmo Framework plugin to access those settings
- removed deprecated NewGizmoEnable module
#jira UE-200162
#rb brooke.hubert
[CL 30918031 by benoit gadreau in ue5-main branch]
- when created, the gizmo asks the mode manager to create a state target by calling FEditorModeTools::GetGizmoStateTarget(), which will create one if needed
- UEditorGizmoStateTarget::BeginUpdate() creates a new transaction + calls FEditorModeTools::BeginTransform() which will iterate thru the modes and ask them if they have anything to handle
- if they don't, the focused VPC still has the option of doing something (it doesn't by default, but some, like the level VPC, handle what they need to)
#jira UE-200162
#rb brooke.hubert, semion.piskarev
[CL 30411419 by benoit gadreau in ue5-main branch]
The new TRS gizmo system uses FEditorModeTools::GetShowWidget() to update the visible state of the gizmo.
However, for asset editors that don't override their default mode (as is the case with BP), the result is obtained from the FLevelEditorSelectModeWidgetHelper::ShouldDrawWidget function, which gets its data from the GCurrentLevelEditingViewportClient...
The FWidget rendering works mainly because it bypasses the result of FEditorModeTools::GetShowWidget() and relies on the value of FEditorViewportClient::GetWidgetMode() instead. VPCs like FSCSEditorViewportClient, for example, will change the widget mode dynamically according to the selection.
To change this behavior for new TRS gizmo without changing the current behavior, we swap the default mode with AssetEdModes::EM_AssetDefault if (and only if) FBuiltinEditorModes::EM_Default is one of the default modes and we're not dealing with the level editor's mode manager.
+ remove the direct uses of "Gizmos.UseLegacyWidget" in several places to ease the migration to user settings
#jira UE-200162
#rb brooke.hubert
[CL 30409058 by benoit gadreau in ue5-main branch]
two rotation modes available via Gizmos.RotateMode:
- 0: Pull, to rotate the object by pulling along the tangent to the circle (default)
- 1: Arc, to rotate the object by rotating around the gizmo center (like the screen space rotation does)
#jira UE-200162
#rb sara.schvartzman
[CL 30232941 by benoit gadreau in ue5-main branch]
- the "pull" direction is now based on the closest projection to the rotation circle
- normal to that pull direction is removed to avoid poor drag behavior
- added a few temp cvars to experiment and fine tune the behavior
- Gizmos.DotThreshold 0.2: Dot threshold for determining whether the rotation plane is perpendicular to the camera view [0.2, 1.0]
- Gizmos.DebugDraw false: Displays debugging information.
- Gizmos.ProjectIndirect true: Project to the nearest point of the curve when handling indirect rotation.
#jira UE-200162
#rb brooke.hubert
[CL 29809369 by benoit gadreau in ue5-main branch]