Commit Graph

19 Commits

Author SHA1 Message Date
semion piskarev
26410ec36f MeshModelingTools: Refactored modeling tools gizmos to avoid communication between component and proxy and prevent race conditions that resulted in incorrect view information being used in hit tests. Also fixed a minor issue with view plane-parallel circle gizmos, and created option to have scaling handles align better to view.
#rb Ryan.Schmidt
#rnx
#jira UETOOL-3468

[CL 16611870 by semion piskarev in ue5-main branch]
2021-06-09 16:28:33 -04:00
Ryan Schmidt
528eef40e9 InteractiveToolsFramework: change checks() to ensures() and switch to non-fatal error handling for most situations in GizmoManager and ToolManager. Add TransformGizmo::GetGizmoTransform()
#rb none
#rnx
#jira none
#preflight 60b03b4b7e4e6a0001a001f0

[CL 16499542 by Ryan Schmidt in ue5-main branch]
2021-05-28 02:04:32 -04:00
Ryan Schmidt
4ec1b6ae3c Gizmos: refactor Modeling Mode gizmo creation out of InteractiveGizmoManager. Editor will use other "default" transform gizmo implementations, and so the UTransformGizmo creation helper functions do not belong in GizmoManager. Instead a UTransformGizmoContextObject now provides this functionality. ModelingToolsEditorMode (and any other modes/systems that want to use these gizmo convenience functions) creates an instance of UTransformGizmoContextObject and registers it with the ContextObjectStore. Calling code can spawn a new UTransformGizmo by looking this object up in the ContextStore and calling it's helper functions. Static versions of the helper functions in the UE::TransformGizmoUtil:: namespace provide a single-line interface that replaces the previous GizmoManager call sites in the MeshModelingTools library.
IntervalGizmo is now just registered and unregistered as needed by the MeshSpaceDeformerTool, as this is the only place it is currently used.

Previous implementation in InteractiveGizmoManager is left intact as there are a few uses outside of MeshModelingTools that need to be cleaned up before it can be deleted.

UTransformGizmo now requires it's Builder to tell it which sub-gizmo identifier strings to pass to the GizmoManager to create axis/plane/rotation sub-gizmos (and the code that registers the Builder must then provide these strings). This cleans up previous explicit references to UInteractiveGizmoManager static strings from UTransformGizmo.

#rb Christina.TempelaarL, david.hill
#rnx
#jira none

[CL 16409673 by Ryan Schmidt in ue5-main branch]
2021-05-20 16:39:39 -04:00
semion piskarev
30aeed7a1f MeshModelingTools: Added ability for gizmo to be repositioned using middle mouse, and used it iin Transform and PolyEdit tools. Added ability for gizmo to snap to nearby geometry when pressing Ctrl, and used it in Transform and PolyEdit tools.
#rb Ryan.Schmidt
#jira none
#rnx

[CL 15098499 by semion piskarev in ue5-main branch]
2021-01-14 19:07:52 -04:00
Marc Audy
50a3d7d368 Merge Release-Engine-Staging to Main @ CL# 14467590
This represents UE4/Main @ 14432125 + some cherrypick fixes

[CL 14468207 by Marc Audy in ue5-main branch]
2020-10-09 22:42:26 -04:00
aditya ravichandran
32d7a329c9 Added initial prototype for the new in-viewport light gizmos using the Interactive Gizmo Framework.
#rb lauren.barnes, michael.daum

#fyi chris.gagnon

[CL 14182513 by aditya ravichandran in ue5-main branch]
2020-08-25 15:29:15 -04:00
JeanMichel Dignard
70d074639f Merging //UE4/Dev-Main @ 10886849 to Dev-Tools-Staging (//UE4/Dev-Tools-Staging)
#rb none
#rnx

[CL 10906274 by JeanMichel Dignard in Dev-Tools-Staging branch]
2020-01-08 13:26:18 -05:00
ryan durand
0f0464a30e Updating copyright for Engine Runtime.
#rnx
#rb none


#ROBOMERGE-OWNER: ryan.durand
#ROBOMERGE-AUTHOR: ryan.durand
#ROBOMERGE-SOURCE: CL 10869210 via CL 10869511 via CL 10869900
#ROBOMERGE-BOT: (v613-10869866)

[CL 10870549 by ryan durand in Main branch]
2019-12-26 14:45:42 -05:00
David Hill
bd6dd995f3 Geometry Processing - Interactive Tools. Adding Interval Gizmo.
#rb none
#jira nojira

[CL 10070105 by David Hill in Dev-Editor branch]
2019-11-07 09:40:07 -05:00
Chris Gagnon
8ab0638182 Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) for 4.24
#rb none

[CL 9325047 by Chris Gagnon in Main branch]
2019-10-01 20:41:42 -04:00
Ryan Schmidt
d55190e47d ToolsFramework: add FToolCommandChange, replace all uses of FCommandChange with it. Move IToolContextTransactionProvider defn to separate file. Add IToolCommandChangeSource interface for downstream code to use. Move FCommandChangeSequence from inside Selection tool up to Framework level.
#rb none
#rnx

[CL 9010050 by Ryan Schmidt in Dev-Editor branch]
2019-09-23 21:52:12 -04:00
Rex Hill
64d7948e9c Fix compile error with UnEdMode PostMessage on windows due to a window headers defining PostMessage
#rb none
#rnx
#fyi Ryan.Schmidt

[CL 8696305 by Rex Hill in Dev-Editor branch]
2019-09-16 14:06:18 -04:00
Ryan Schmidt
86afe5a9fe ToolsFramework: GizmoManager can now spawn customized variants of the standard transform gizmo. Minor API changes.
#rb none
#rnx

[CL 8684609 by Ryan Schmidt in Dev-Editor branch]
2019-09-14 00:59:31 -04:00
Ryan Schmidt
2332e92367 ToolsFramework: replace FString/TCHAR in various PostMessage functions with FText. Fix up call sites. Add area to modeling panel to display notification messages.
#fyi lauren.barnes
#rb none
#rnx

[CL 8684596 by Ryan Schmidt in Dev-Editor branch]
2019-09-14 00:17:10 -04:00
Ryan Schmidt
23111ff977 ToolsFramework: minor Gizmo improvements. Gizmo unique identifier is now optional, allowing multiple TransformGizmo to be created. Added several options to TransformProxy to support moving pivot and separated rotations.
#rb none
#rnx

[CL 8631791 by Ryan Schmidt in Dev-Editor branch]
2019-09-10 21:58:36 -04:00
Ryan Schmidt
e0aaaed056 ToolsFramework: Standard implementations of Gizmos for axis position/angle and plane position. Used to implement a standard 3-axis translate/rotate transformer.
InteractiveGizmoManager now tracks Owner of Gizmos, for delete-by-owner support. Added Create3AxisTransformGizmo() to create standard Gizmo.

GizmoInterfaces.h: UInterfaces for gizmo components
AxisPositionGizmo, AxisAngleGizmo, PlanePositionGizmo: standard implementations of UInteractiveGizmo
GizmoBaseComponent, GizmoArrowComponent, GizmoRectangleComponent, GizmoCircleComponent: custom UPrimitiveComponent implementations for standard Gizmos
TransformGizmo: 3-axis transform gizmo built out of above elements
AxisSources.h, ParameterSourcesFloat/Vec2.h, StateTargets.h, HitTargets.h, TransformSources.h: UObjects used by Gizmos to expose implementation for customization.
ParameterToTransformAdapters.h: Gizmo ParameterSource implementations that convert axis/plane position and axis-angle to 3D translations/rotations
TransformProxy: wrapper around set of objects that provides a single FTransform, used by TransformGizmo to apply to multiple objects/etc
GizmoMath.h, GizmoRenderingUtil.h: utility functions for Gizmo implementation

#fyi Lauren.Ridge
#rb Michael.Daum
#rnx

[CL 8618015 by Ryan Schmidt in Dev-Editor branch]
2019-09-10 14:14:29 -04:00
Lauren Barnes
b4b7f96557 UEdMode initial implementation and handling by FEdModeManager
#jira UETOOL-1722
#rb none
#rnx
#fyi Ryan.Schmidt

[CL 8614167 by Lauren Barnes in Dev-Editor branch]
2019-09-10 12:01:07 -04:00
ryan schmidt
889b66d92f Move InteractiveToolsFramework and EditorInteractiveToolsFramework modules to Experimental
#rb none
#rnx

#ROBOMERGE-SOURCE: CL 6913333 in //UE4/Dev-Editor/...
#ROBOMERGE-BOT: ENGINE (Dev-Editor -> Main) (v366-6836689)

[CL 6913342 by ryan schmidt in Main branch]
2019-06-10 14:03:39 -04:00
Ryan Schmidt
f5ead98087 Move InteractiveToolsFramework and EditorInteractiveToolsFramework modules to Experimental
#rb none
#rnx
#robomerge UE4-Main

[CL 6913333 by Ryan Schmidt in Dev-Editor branch]
2019-06-10 14:03:03 -04:00