Commit Graph

130 Commits

Author SHA1 Message Date
Ryan Schmidt
45956cf80f ModelingMode: Add warning message type and warning message area to Modeling Tools Mode.
#rb none
#rnx

[CL 9053470 by Ryan Schmidt in Dev-Editor branch]
2019-09-24 16:19:08 -04:00
Ryan Schmidt
8ccfe7fcd3 ToolsFramework: add change event support for UTransformProxy. UGizmoTransformChangeStateTarget can now have attached change-generators. Use this in TransformGizmo to generate changes for TransformProxy when gizmo state change happens. Add TransformGizmo::SetNewGizmoTransform() which allows for repositioning gizmo via transaction/changes that work with undo/redo.
#rb none
#rnx

[CL 9010412 by Ryan Schmidt in Dev-Editor branch]
2019-09-23 22:01:25 -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
michael daum
a60778988b Fix strict build by disambiguating some types
#rb ryan.schmidt

[CL 8992993 by michael daum in Dev-Editor branch]
2019-09-23 16:51:50 -04:00
Ryan Schmidt
ff324f1b1e ToolsFramework: add IToolContextTransactionProvider UInterface which provides the transaction/change functions that ToolManager and GizmoManager both implement.
UGizmoTransformChangeStateTarget can now take either. TransformGizmo::SetActiveTarget() now takes optional override (uses GizmoManager by default).

This allows us to pass in ToolManager instead inside Tools where the Gizmo is fully local to Tool, in which case Gizmo undo/redo events should be auto-expired after the Tool exits (which ToolManager will do, but GizmoManager does not)

#rb none
#rnx

[CL 8988018 by Ryan Schmidt in Dev-Editor branch]
2019-09-23 16:14:03 -04:00
Ryan Schmidt
fded72fd60 ToolsFramework: Support for world/local frame configuration in TransformGizmo and EditMeshPolygonsTool
#rb none
#rnx

[CL 8980793 by Ryan Schmidt in Dev-Editor branch]
2019-09-23 13:14:39 -04:00
Ryan Schmidt
cafdb6ed68 ToolsFramework: Add support for querying external world/local coordinate system setting via IToolsContextQueriesAPI (eg like the current mode in the Editor UI).
#rb none
#fyi lauren.barnes
#rnx

[CL 8980599 by Ryan Schmidt in Dev-Editor branch]
2019-09-23 13:01:39 -04:00
Ryan Schmidt
6556f3ac37 ToolsFramework: add simple method to save/restore Tool UInteractiveToolPropertySet properties, via CDO.
#rb none
#rnx

[CL 8968042 by Ryan Schmidt in Dev-Editor branch]
2019-09-22 17:28:21 -04:00
Ryan Schmidt
3163b1346a ModelingTools: MeshSurfacePointTool now tracks ctrl key state, use in SculptTool to invert brush
#rb none
#rnx

[CL 8935995 by Ryan Schmidt in Dev-Editor branch]
2019-09-20 16:43:27 -04:00
Ryan Schmidt
aea0d26884 ToolsFramework: use new UGizmoTransformChangeStateTarget in TransformGizmo, so that gizmo position is properly updated on undo/redo
#rb none
#rnx

[CL 8932404 by Ryan Schmidt in Dev-Editor branch]
2019-09-20 14:03:22 -04:00
Ryan Schmidt
416e8b9a25 Add missing header to fix CIS errors
#rb none
#rnx

[CL 8932012 by Ryan Schmidt in Dev-Editor branch]
2019-09-20 13:54:06 -04:00
Ryan Schmidt
858fd800cc ToolsFramework: add FComponentWorldTransformChange, tracks changes world transform of a component. Add UGizmoTransformChangeStateTarget, a gizmo state target that builds and emits FComponentWorldTransformChange. Add hit normal to FInputRayHit.
#rb none
#rnx

[CL 8931662 by Ryan Schmidt in Dev-Editor branch]
2019-09-20 13:44:08 -04:00
Ryan Schmidt
718c31c8c9 ToolsFramework: expand InputBehavior/InputRouter hover implementation so it has hit-test/capture/release like mouse capture. This is required to resolve multiple hoverable objects under. Update all behaviors/tools with new API.
#rb none
#fyi lauren.barnes
#rnx

[CL 8887166 by Ryan Schmidt in Dev-Editor branch]
2019-09-19 10:23:48 -04:00
Ryan Schmidt
dbf6fb617a ToolsFramework: cleaned up IToolsContextAssetAPI, now only exposes a single function to create new package at a given path/basename combo, and returns unique asset name. Rewrote FEditorToolAssetAPI to use AssetToolsModule. AssetGenerationUtil::GenerateStaticMeshActor no longer tries to rename actor as this can result in collisions (which cause check), now only changes display name.
#rb none
#fyi michael.daum
#rnx

[CL 8849689 by Ryan Schmidt in Dev-Editor branch]
2019-09-18 17:33:43 -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
c727f4055d ToolsFramework: add trivial function to return material index count from Component
#rb none
#rnx

[CL 8685926 by Ryan Schmidt in Dev-Editor branch]
2019-09-15 19:19:44 -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
5f19bbb123 ToolsFramework: gizmo actors should not be transactional
#rb none
#rnx

[CL 8644466 by Ryan Schmidt in Dev-Editor branch]
2019-09-11 16:11:59 -04:00
Ryan Schmidt
1eb915b53c resolve minor CIS errors/warnings and remove initials from comment
#rb none
#rnx

[CL 8639855 by Ryan Schmidt in Dev-Editor branch]
2019-09-11 13:24:49 -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
1dd5787dec ToolsFramework: add new USelectionSet and UMeshSelectionSet to represent sub-selections of objects/meshes
#rb none
#rnx

[CL 8618879 by Ryan Schmidt in Dev-Editor branch]
2019-09-10 14:48:32 -04:00
Ryan Schmidt
406c4dbbe3 ToolsFramework: Improve Undo/Redo handling with new "Expired" functionality.
InteractiveToolManager now wraps incoming FChanges from the Tools in a FToolChangeWrapperChange that Expires itself once the Tool is no longer active.

InteractiveToolManager now pushes new FBeginToolChange at the start of each Tool. Undoing past start of Tool cancels the Tool, and then this change is Expired.

#rb none
#rnx

[CL 8618478 by Ryan Schmidt in Dev-Editor branch]
2019-09-10 14:40:38 -04:00
Ryan Schmidt
573d9becde add missing header
#rb none
#rnx

[CL 8618066 by Ryan Schmidt in Dev-Editor branch]
2019-09-10 14:20:52 -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