Commit Graph

192 Commits

Author SHA1 Message Date
benoit gadreau
f5e9a6bdb7 New TRS Gizmo: fixed view direction projection
#rnx

[CL 29918002 by benoit gadreau in ue5-main branch]
2023-11-24 07:11:08 -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
benoit gadreau
1a5b48efc3 New TRS Gizmo: new behavior for rotation handles
- 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]
2023-11-17 11:24:36 -05:00
benoit gadreau
9d3b7605b6 New TRS Gizmo: toggle between arcball and screen space when re-entering rotate mode.
#rnx
[FYI] fredrik.nilsson

[CL 29708673 by benoit gadreau in ue5-main branch]
2023-11-14 05:22:20 -05:00
benoit gadreau
a9607bbff7 New TRS Gizmo: partial view dependent rendering improvements
- use the ViewAlignAxialMaxCosAngleTol property instead of the default one to enable per-element customization
    - reduced the max partial angle of rotation handles so that they don't depth fight with the arcball handle on edges

#rb brooke.hubert
#rnx

[CL 29680588 by benoit gadreau in ue5-main branch]
2023-11-13 06:09:58 -05:00
benoit gadreau
3c449766f8 New TRS Gizmo: CTRL + MMB does indirect manipulation on the Y axiz (CTRL+LMB does Z instead of CTRL+RMB+LMB)
#rb brooke.hubert
#rnx

[CL 29595563 by benoit gadreau in ue5-main branch]
2023-11-09 10:03:28 -05:00
benoit gadreau
51e24f2e05 New TRS Gizmo: hide gizmo if FEditorViewportClient::bShowWidget is false
#rb brooke.hubert
#rnx

[CL 29595527 by benoit gadreau in ue5-main branch]
2023-11-09 10:02:05 -05:00
bob tellez
2030016c50 [Backout] - CL29484848
[FYI] benoit.gadreau
Original CL Desc
-----------------------------------------------------------------
New TRS Gizmo: CTRL + MMB does indirect manipulation on the Y axiz (CTRL+LMB does Z instead of CTRL+RMB+LMB)

#rb brooke.hubert
#rnx

[CL 29499083 by bob tellez in ue5-main branch]
2023-11-06 15:56:38 -05:00
bob tellez
18b5da1455 [Backout] - CL29484771
[FYI] benoit.gadreau
Original CL Desc
-----------------------------------------------------------------
New TRS Gizmo: hide gizmo if FEditorViewportClient::bShowWidget is false

#rb brooke.hubert
#rnx

[CL 29499063 by bob tellez in ue5-main branch]
2023-11-06 15:56:09 -05:00
benoit gadreau
f1443ed902 New TRS Gizmo: CTRL + MMB does indirect manipulation on the Y axiz (CTRL+LMB does Z instead of CTRL+RMB+LMB)
#rb brooke.hubert
#rnx

[CL 29484859 by benoit gadreau in ue5-main branch]
2023-11-06 05:30:56 -05:00
benoit gadreau
357bc16dc8 New TRS Gizmo: hide gizmo if FEditorViewportClient::bShowWidget is false
#rb brooke.hubert
#rnx

[CL 29484782 by benoit gadreau in ue5-main branch]
2023-11-06 05:25:23 -05:00
benoit gadreau
268d1c4a21 New TRS Gizmo: support for parent space transformations (note that this is only exposed/available if the new trs gizmos are enabled).
- added ECoordSystem::COORD_Parent
    - the mode manager's GetCustomDrawingCoordinateSystem overrides calculates the parent space transformation if required.

For the moment, there's no need to add anything at the ITF level, as everything is redirected to the VPC/Mode Manager thru the UEditorTransformProxy.
If the UTransformGizmo were to manage it locally, we'd probably have to add something similar to UCombinedTransformGizmo::bUseContextCoordinateSystem to make the TransformProxy responsible for managing the "local/parent" coordinate system.

#jira UE-197757
#rb brooke.hubert

[CL 28836838 by benoit gadreau in ue5-main branch]
2023-10-17 08:51:02 -04:00
benoit gadreau
77433e0c4c New TRS Gizmo: do not handle indirect manipulation if the gizmo is hidden
#rb sara.schvartzman

#rnx

[CL 28410468 by benoit gadreau in ue5-main branch]
2023-10-03 08:20:18 -04:00
benoit gadreau
c44d51a218 New TRS GIzmo: fixed indirect translation screen axis computation
#rb helge.mathee
#rnx

[CL 28313880 by benoit gadreau in ue5-main branch]
2023-09-28 07:23:54 -04:00
benoit gadreau
d4492fb056 New TRS Gizmo:
- fixed axis manipulation for both direct & indirect manipulation
    - indirect manipulation using CTRL+LMB/RMB is now handled by the gizmo
    - added UMultiButtonClickDragBehavior to support click & drag with several buttons in one single behavior

#jira UE-152999
#rb semion.piskarev, brooke.hubert

[CL 28277038 by benoit gadreau in ue5-main branch]
2023-09-27 12:13:25 -04:00
semion piskarev
a463b1c354 InteractiveToolsFramework: Fix mouse state not being correctly updated in the editor for buttons other than the actively pressed one.
#rb none
#jira UE-196639

[CL 28275791 by semion piskarev in ue5-main branch]
2023-09-27 11:41:11 -04:00
yoan stamant
9ab3afc392 Added [[nodiscard]] to the constructors of TGuardValue, TOptionalGuardValue, TGuardValue_Bitfield_Cleanup and TScopeCounter.
[FYI] geoffrey.wong
#rb steve.robb

[CL 28097105 by yoan stamant in ue5-main branch]
2023-09-21 14:44:27 -04:00
benoit gadreau
e48cda08bb New TRS Gizmo
- support for current FEditorModeTools::WidgetScale
    - reset default indirect target when re-entering the same transform mode
    - added FEditorTransformGizmoDataBinder to easily interface between transform gizmos and the mode manager

TODO
    - FEditorModeTools::WidgetScale (currently acting as a uniform matrix scale as designed in 14299282) should be replaced by gizmo scale, line with and handle size settings once the design done.

#rb brooke.hubert

#rnx

[CL 27952239 by benoit gadreau in ue5-main branch]
2023-09-18 04:30:17 -04:00
jimmy andrews
78fbcb1c6b Use deprecated typedef to fix FSelectedOjectsChangeList typo in ITF's ToolContextInterfaces
#jira UE-192620
#rb matija.kecman
#rb lonnie.li

[CL 27782397 by jimmy andrews in ue5-main branch]
2023-09-12 00:11:43 -04:00
benoit gadreau
5748a9751d Fixed static analysis
- cf. https://horde.devtools.epicgames.com/job/64ff2bb0af5c3ec547a643b2

#rb trivial

#rnx

[CL 27756753 by benoit gadreau in ue5-main branch]
2023-09-11 12:05:45 -04:00
benoit gadreau
60aa402577 New TRS Gizmo updates: follow-up to CL 27751703
#rb trivial

#rnx

[CL 27755974 by benoit gadreau in ue5-main branch]
2023-09-11 11:46:24 -04:00
benoit gadreau
7c004866a5 New TRS Gizmo updates
- arcball rotation: the rotation is computed using a spherical+hyperbolic projection (see code for more explanation)
    - indirect manipulation via MMB: hit parts are stored per mode then are used to drive the proper drag function
    - defered drag function: in order to avoid notifications storm, the drag functions can be applied on tick instead using a pending function
    - a single default TRS gizmo is now created when needed (instead of creating several thru selection changed or when the gizmo manager was ticking) and its visibility is set based on rules

TODO
    - UEditorInteractiveGizmoManager is now closer to UInteractiveGizmoManager so I don't think we need ActiveEditorGizmos, CachedGizmoMap, etc. that are not used anymore. This should be cleaned in another CL
    - UEditorTransformGizmo::OnGizmoTransformBegin should set the current axis (needed for some modes, including IKRig) but this is disabled for now has there are some side effects with dragging (this will be treated in another CL)


#jira UE-152973
#jira UE-161236
#rb brooke.hubert zach.rammell

[CL 27751789 by benoit gadreau in ue5-main branch]
2023-09-11 09:54:48 -04:00
robert manuszewski
d3991fec9b Fixing potential compile errors ahead of enabling TObjectPtr GC barrier
#rb trivial

[CL 26868625 by robert manuszewski in ue5-main branch]
2023-08-05 06:09:54 -04:00
kirill zorin
b6ee3a6c64 Fix UE_LOG callsites that have format string-related UB
#rb trivial
#preflight 647107780a6634dbb236a0a6

[CL 25651638 by kirill zorin in ue5-main branch]
2023-05-26 15:52:39 -04:00
bryan sefcik
91c57d395e Removed redundant module includes.
#preflight 645d4bf3aa3c584c0b5b3a67

[CL 25435653 by bryan sefcik in ue5-main branch]
2023-05-11 16:48:21 -04:00