Commit Graph

87 Commits

Author SHA1 Message Date
ryan schmidt
e7f3baf1ca Edigrate Dev-Editor updates to InteractiveToolsFramework, GeometryProcessing, MeshModelingToolset, and ModelingTools Editor Mode Plugins. Update a few files in new MeshPaint Plugin for UInteractiveTool rename of ::Tick() to ::OnTick().
#rb none
#rnx

#ROBOMERGE-SOURCE: CL 12908995 via CL 12908996 via CL 12909001
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v682-12900288)

[CL 12909003 by ryan schmidt in Main branch]
2020-04-18 18:42:59 -04:00
lauren barnes
8872ec395f Mesh click tool now uses hit proxies to find initial clicked actors
#jira UE-91325
#rb Ryan.Schmidt
#lockdown Simon.Tourangeau

#ROBOMERGE-SOURCE: CL 12489539 in //UE4/Release-4.25/... via CL 12489543 via CL 12489546
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v673-12478461)

[CL 12489549 by lauren barnes in Main branch]
2020-03-30 15:59:16 -04:00
ryan schmidt
9be3d9c658 fix copypasta error caught by static analysis
#rb none
#rnx
#jira none

#ROBOMERGE-SOURCE: CL 12483797 in //UE4/Release-4.25/... via CL 12483798 via CL 12483799
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v673-12478461)

[CL 12487361 by ryan schmidt in Main branch]
2020-03-30 12:05:28 -04:00
ryan schmidt
1aede5bec1 ToolsFramework: add accessors to get active tool names
#rb none
#rnx
#jira none

#ROBOMERGE-SOURCE: CL 12472877 in //UE4/Release-4.25/... via CL 12472882 via CL 12472885
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v672-12450963)

[CL 12472889 by ryan schmidt in Main branch]
2020-03-27 14:26:54 -04:00
ryan schmidt
95838aee99 ToolsFramework: ToolManager needs to keep track of whether it is active or not to be able to properly expire change events.
#rb lauren.barnes
#rnx
#jira UE-90455

#ROBOMERGE-SOURCE: CL 12254324 in //UE4/Release-4.25/... via CL 12254334
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v668-12245121)

[CL 12296589 by ryan schmidt in Main branch]
2020-03-19 10:59:25 -04:00
ryan schmidt
7e33250cc0 ToolsFramework: UClickDragInputBehavior now tracks whether it is in drag or not, and during drag will not update modifier key states unless new bUpdateModifiersDuringDrag is enabled (default false). MeshSurfacePointTool now updates modifier states in ClickBehavior, and not just hover behavior. This resolves issue where shift-to-smooth/etc wouldn't kick in until the viewport was focused (ie had to click once first)
#rb none
#rnx
#jira none

#ROBOMERGE-SOURCE: CL 12233512 in //UE4/Release-4.25/... via CL 12233521
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v664-12234175)

[CL 12237418 by ryan schmidt in Main branch]
2020-03-17 20:01:57 -04:00
ryan schmidt
46af79019f ModelingTools: resolve many sculpting issues & limitations
- fix broken sculpt material that went to white in many cases, replace with diffuse shading and rim light in Emissive channel / unlit texture
- add image-based sculpt materials provided by techart, expose custom variant that allows user-defined shader image
- make flat shading optional in view settings, for relevant shaders
- reorganize properties and update tooltips to be more informative
- fix broken Falloff support and expose in property set, display in brush highlight. Make this separately exposable in BaseBrush property set since we don't need Strength.
- add viewpoint-based Sculpt and Plane brush modes
- fix brush preview location when in hover, was not respecting target surface setting
#rb none
#rnx
#jira none
[FYI] JeanSebastien.Guay

#ROBOMERGE-SOURCE: CL 12164804 in //UE4/Release-4.25/... via CL 12164806
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v661-12148976)

[CL 12164813 by ryan schmidt in Main branch]
2020-03-13 13:40:51 -04:00
ryan schmidt
49acf8b3fb ModelingTools: add some special-case code that allows alt+mouse navigation to work during draw-polygon tool
#rb none
#rnx
#jira none

#ROBOMERGE-SOURCE: CL 12122720 in //UE4/Release-4.25/... via CL 12122722
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v657-12064184)

[CL 12122725 by ryan schmidt in Main branch]
2020-03-10 23:42:51 -04:00
ryan schmidt
8001cf99fa Harden Modeling Mode against deleting objects currently being edited via ComponentTarget.
- don't allow delete when an Accept-style tool is active. This prevents most problems but is very hard-line from UX perspective.
- add FPrimitiveComponentTarget::IsValid(), use in various ComponentTarget functions to avoid trying to access a Component that has been deleted. Still returns null in many places which callers will need to handle.
#rb michael.daum
#rnx
#jira UE-86277

#ROBOMERGE-SOURCE: CL 11960881 in //UE4/Release-4.25/... via CL 11960906
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v656-11643781)

[CL 11960972 by ryan schmidt in Main branch]
2020-03-05 16:00:37 -05:00
ryan schmidt
c584503a69 Paint Mode uses a different active-Tool model than Modeling Mode, where the user must always be in either Select or Paint tool, and can never be in a 'no-tool' state. Previously active-tool changes were not transacted, and 'undo' out of an active tool canceled it, and starting a new tool pushed a new transaction which discards future transaction. The default-tool behavior in UEdMode would as a result clear the future history if the user did Undo out of an active Tool.
Now this behavior is configurable, and ToolManager can optionally emit FChange transactions that will replay active-tool-change events. Update UMeshPaintMode to use this new alternative. Disable default tool behavior in UEdMode.

To implement this, ToolManager now tracks name of active tool and active tool builders.

#jira UE-88323
#rb lauren.barnes
#rnx

#ROBOMERGE-SOURCE: CL 11570866 in //UE4/Release-4.25/... via CL 11570870
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v654-11333218)

[CL 11585170 by ryan schmidt in Main branch]
2020-02-22 17:01:16 -05:00
Max Chen
b4881d8bf8 Copying //UE4/Dev-Editor to Dev-Tools-Staging (//UE4/Dev-Tools-Staging) @11123875
#rb none
#jira none

[CL 11123880 by Max Chen in Dev-Tools-Staging branch]
2020-01-27 20:11:15 -05:00
JeanMichel Dignard
dc2d35695f Copyright fixes
#rb none
#rnx

[CL 10910710 by JeanMichel Dignard in Dev-Tools-Staging branch]
2020-01-08 17:11:23 -05: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
jeanmichel dignard
2ce7666d2d Copying //UE4/Dev-Core [at] 10708550 to Dev-Main (//UE4/Dev-Main)
#rb none

#ROBOMERGE-OWNER: jeanmichel.dignard
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 10708666 in //UE4/Main/...
#ROBOMERGE-BOT: TOOLS (Main -> Dev-Tools-Staging) (v626-10872990)

[CL 10898071 by jeanmichel dignard in Dev-Tools-Staging branch]
2020-01-07 15:54:23 -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
Chris Gagnon
346a4b05ea Copy up from Dev-Editor @10681378
#rb none

[CL 10837446 by Chris Gagnon in Dev-Tools-Staging branch]
2019-12-19 18:07:47 -05:00
Robert Manuszewski
7b6f840f7f Copying //UE4/Dev-Core @ 10708550 to Dev-Main (//UE4/Dev-Main)
#rb none

[CL 10708666 by Robert Manuszewski in Main branch]
2019-12-13 11:07:03 -05:00
Ryan Schmidt
6b67974ad6 ToolsFramework: refactor AnyButtonInputBehavior to allow target button to be externally configured. Add ULocalClickDragInputBehavior which uses itself as Target and defines target interface functions with repalceable lambdas. Add InputRouter::RegisterBehavior
#rb none
#rnx

[CL 10495360 by Ryan Schmidt in Dev-Editor branch]
2019-12-03 09:11:53 -05:00
Ryan Schmidt
458fa2e446 ToolsFramework: add missing file
#rb none
#rnx

[CL 10313502 by Ryan Schmidt in Dev-Editor branch]
2019-11-19 17:23:49 -05:00
Ryan Schmidt
b1d9c2be8f ModelingTools: Multiple Material Support on DynamicMesh Components
- MeshDescriptionToDynamicMesh now always enables MaterialID attribute
- add FComponentMaterialSet and FComponentTarget::GetMaterialSet() that returns for current object (eg set of Material Slot materials on StaticMesh)
- move FMeshRenderBufferSet to BaseMeshSceneProxy.h, add new FBaseDynamicMeshSceneProxy, centralizes management/initialization of RenderBuffers, default GetDynamicMeshElements implementation draws buffer set returned by subclasses
- FSimpleDynamicMeshSceneProxy and FOctreeDynamicMeshSceneProxy now subclass FBaseDynamicMeshSceneProxy, implement necessary functions/etc
- UBaseDynamicMeshComponent now manages its own set of Materials. New OverrideMaterial can be set to replace existing materials with override material during render calls (does not affect material set)
- FSimpleDynamicMeshSceneProxy now builds per-material RenderBuffers, new FastUpdateVertices function to update positions/normals/colors. Removed shared-vertex construction, now only builds split-triangle buffers.
- UPreviewMesh gets wrapper functions to manage materials, override material, tangents of contained Component
#rb none
#rnx

[CL 10313312 by Ryan Schmidt in Dev-Editor branch]
2019-11-19 17:08:48 -05:00
Lauren Barnes
cebc8d8a52 First pass on refactoring mesh paint to a plugin that uses the interactive tools framework
#jira UETOOL-1722
#rb Ryan.Schmidt

[CL 10287345 by Lauren Barnes in Dev-Editor branch]
2019-11-18 12:23:32 -05:00
michael daum
d2bcc09821 MeshModelingTools : Flesh out interface for commiting meshes
#rb none

#rnx

[CL 10222650 by michael daum in Dev-Editor branch]
2019-11-14 15:31:53 -05:00
Ryan Schmidt
0ca01e0b1f ToolsFramework: TransformGizmo can now snap to world grid during axis/plane translation. Moved snapping util funcs to GizmoMath. Axis and Plane TransformSources have optional Constraint functions which are used by TransformGizmo to apply calculated snaps. Snapping is controlled by boolean in TransformGizmo, currently Tools must explicitly enable/disable (ie no hotkey/etc at Gizmo level)
#rb none
#rnx

[CL 10114234 by Ryan Schmidt in Dev-Editor branch]
2019-11-12 13:27:52 -05:00
Ryan Schmidt
15b381e1fe ToolsFramework: fix typo resulting in wrong direction being used for plane-translate gizmo
#rb none
#rnx

[CL 10114140 by Ryan Schmidt in Dev-Editor branch]
2019-11-12 13:12:55 -05:00
David Hill
d227b28d69 Geometry Processing - Interactive Tools. Interval Gizmo. adding missing undef LOCTEXT_NAMESPACE
#rb none
#jira none

[CL 10070291 by David Hill in Dev-Editor branch]
2019-11-07 09:53:36 -05:00