Commit Graph

36 Commits

Author SHA1 Message Date
Christina TempelaarL
4966988cf5 New TRS gizmo: add support for hovering.
#jira UETOOL-4781
#rb brooke.hubert
#preflight 62747612594b7a20312da916

[CL 20067991 by Christina TempelaarL in ue5-main branch]
2022-05-05 21:17:09 -04:00
Christina TempelaarL
9ac82fb6dd Add IGizmoClickMultiTarget, IGizmoRenderTarget and IGizmoRenderMultiTarget interfaces to facilitate hitting parts within a gizmo element hierarchy. Add HitObject member to FInputRayHit struct to hold UObect-derived owners of hits.
#jira UETOOL-4781
#rb ryan.schmidt, brooke.hubert, jimmy.andrews
#preflight 6272b741e95a8b960ebfba9c

[CL 20050122 by Christina TempelaarL in ue5-main branch]
2022-05-04 17:25:53 -04:00
semion piskarev
5989ed564b MeshModelingTools: Remove infinite loop in UGizmoLabdaHitTarget.
#rb Jimmy.Andrews
#jira UE-149765
#preflight 626070fd080c6600634c1c1b

#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 19839717 in //UE5/Release-5.0/... via CL 19840853
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v940-19807014)

[CL 19842651 by semion piskarev in ue5-main branch]
2022-04-20 20:27:33 -04:00
Christina TempelaarL
9e023d4eff Gizmo element library: added linetrace traversal support, implemented cone/cylinder/arrow hit-testing.
#jira UETOOL-4780
#rb jimmy.andrews
#preflight 625f80b773187d30d08ce4f7

[CL 19838111 by Christina TempelaarL in ue5-main branch]
2022-04-20 17:03:41 -04:00
Christina TempelaarL
fde891e2b1 Ray-cone and ray-cylinder intersection fixes: clipping cone at height and zero-comparison precision issues.
#jira UETOOL-4780
#rb jimmy.andrews
#preflight 625f06ea3e0f6f80adbbed1d

[CL 19814770 by Christina TempelaarL in ue5-main branch]
2022-04-19 15:21:24 -04:00
Christina TempelaarL
cb16fb4e51 Update gizmo element library with support for common view-dependent functionality, and rectangle, circle, torus objects. Implemented new TransformGizmo UX design using gizmo primitive library objects.
#rb michael.balzer, jimmy.andrews
#jira UETOOL-4296, UETOOL-3781
#preflight 624dd8b69052f5517c120614

[CL 19655712 by Christina TempelaarL in ue5-main branch]
2022-04-06 17:04:09 -04:00
christopher waters
f8147b1889 Full set of fixes for non-unity non-pch builds after EngineTypes cleanup. This includes adjusting previous build fixes that introduced new includes that weren't actually necessary. Restored a few includes and wrapped them in UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_1 checks to maintain compatability.
Also includes fixes for other build issues as it's hard to separate them all.

#jira too many to list
#rb none
#preflight 6247d21073665f7d5e6c5a6c

[CL 19600818 by christopher waters in ue5-main branch]
2022-04-02 01:04:02 -04:00
Jimmy Andrews
c78656355e update ITF and ModelingComponents headers to account for recent move of FHitResult (out of EngineTypes.h and into its own header)
#rb trivial
#preflight 62461694dc6183e3f50cb798

[CL 19578781 by Jimmy Andrews in ue5-main branch]
2022-03-31 17:15:39 -04:00
tyson brochu
a07cbd52dd Add a TargetWorld member to MeshSurfacePointTool, similar to other base tool classes.
Add attribute editor and vertex paint tools to cloth editor.


#rnx
#rb jimmy.andrews
#preflight 6244706b8f06610224f09976

[CL 19557482 by tyson brochu in ue5-main branch]
2022-03-30 11:06:49 -04:00
christopher waters
3b626d4efc Minor dependency cleanup in ComponentSourceInterfaces.h
#jira none
#rb josh.adams
#preflight 6233619b84667926da279199

[CL 19424614 by christopher waters in ue5-main branch]
2022-03-17 14:59:48 -04:00
semion piskarev
ddf6d3192b Multiple non-unity build fixes, mostly having to do with PDI.
#rb none
#jira UE-146349, UE-146335
#rnx
#preflight 62337597f101b8d0afa6c8d7

[CL 19423747 by semion piskarev in ue5-main branch]
2022-03-17 14:03:58 -04:00
daren cheng
6cb035f5f8 Fix Mac & copyright notice CIS issues
#rb trivial
#preflight skip
#jira UETOOL-4564 UETOOL-4565

[CL 19252776 by daren cheng in ue5-main branch]
2022-03-03 15:57:47 -05:00
daren cheng
99592a0721 Widget Tool Palette Prototype.
Add Marquee & create widget tools.
Add framework for widget-based tools.

#preflight 62202c37123d7a7f69141278
#jira UETOOL-4564 UETOOL-4565
#rb Vincent.Gauthier

[CL 19248542 by daren cheng in ue5-main branch]
2022-03-03 14:01:42 -05:00
jimmy andrews
7bed3e0ebf make brush tools notify property sets of updates done by hotkey actions (to brush size/strength), so the reset arrow correctly updates in the details panels
#jira UE-114680
#rb rinat.abdrashitov
#preflight 61b2e5bac01c89f906d632b3

#ROBOMERGE-AUTHOR: jimmy.andrews
#ROBOMERGE-SOURCE: CL 18431318 in //UE5/Release-5.0/... via CL 18435335
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)

[CL 18435573 by jimmy andrews in ue5-release-engine-test branch]
2021-12-10 17:49:08 -05:00
ryan schmidt
22c851a546 ModelingTools: add alpha mask visualization to brush stamp indicator in VertexSculptTool
#rb none
#rnx
#preflight 61ae4b412b3384289ad2048b

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18387240 in //UE5/Release-5.0/... via CL 18387277
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v896-18170469)

[CL 18387286 by ryan schmidt in ue5-release-engine-test branch]
2021-12-06 15:44:16 -05:00
ryan schmidt
d04552fc80 ToolsFramework: change IsValidChecked to IsValid in several places where we want to handle failure gracefully
#rb rinat.abdrashitov
#rnx
#jira none
#preflight 61a7a324e8314ee7b586bff2

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18341163 in //UE5/Release-5.0/... via CL 18341169
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18341187 by ryan schmidt in ue5-release-engine-test branch]
2021-12-01 12:47:30 -05:00
ryan schmidt
48e1cabf77 Added support for world-space hit-testing and snapping to Volume and DynamicMeshComponent mesh vertices/edges/faces, by having Modeling Mode maintain a persistent set of spatial data structures for these scene meshes. With this change, new ToolSceneQueriesUtil functions can be used to provide more general scene mesh-element hit-testing/snapping via ModelingSceneSnappingManager. Updates to existing Tools/Mechanics to use these new query functions will be done in later CLs.
ToolsFramework:
- added new USceneSnappingManager::ExecuteSceneHitQuery API function, as well as accompanying FSceneHitQueryRequest/FSceneHitQueryResult structs
- added FSceneQueryVisibilityFilter struct which contains ComponentsToIgnore/InvisibleComponentsToInclude lists for snapping queries and provides shared IsVisible() implementation

ModelingComponents:
- add FLevelObjectsObserver, tracks Actors added/removed to a Level via various editor events
- add FSceneGeometrySpatialCache, maintains spatial data structures for known types of mesh-backed PrimitiveComponents, an octree based on their world-space bounding-boxes, and provides various spatial-query functions
- ModelingSceneSnappingManager now maintains a FSceneGeometrySpatialCache for a set of Actors/Components it is notified about, and updates the spatial cache if those components are modified or translated. Currently supports Volumes and DynamicMeshComponents.
- add ModelingSceneSnappingManager::ExecuteSceneHitQuery implementation, does raycasts into the world (for static mesh components) and FSceneGeometrySpatialCache for Volumes/DMCs
- modified ModelingSceneSnappingManager::ExecuteSceneSnapQuery to also do combined query against StaticMeshComponents via world-linetrace, and FSceneGeometrySpatialCache for Volumes/DMCs
- add ToolSceneQueriesUtil::FindNearestVisibleObjectHit variants that take a USceneSnappingManager or UInteractiveTool, and do queries via the SceneSnappingManger, instead of directly linetracing into a UWorld

ModleingToolsEditorMode:
- add FLevelObjectsObserver instance and use it to drive updates to active ModelingSceneSnappingManager

#rnx
#jira none
#preflight 61a664a09a226d9e823ad4c1

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18339853 in //UE5/Release-5.0/... via CL 18339869
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18339891 by ryan schmidt in ue5-release-engine-test branch]
2021-12-01 11:15:01 -05:00
tyson brochu
f0753ca380 Don't snap the transform gizmo on mouse-down, wait for the drag event.
#jira UE-131786
#rnx
#rb ryan.schmidt semion.piskarev
#preflight 61a510e3ee100b68faa0517d

#ROBOMERGE-AUTHOR: tyson.brochu
#ROBOMERGE-SOURCE: CL 18312385 in //UE5/Release-5.0/... via CL 18312447
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18312473 by tyson brochu in ue5-release-engine-test branch]
2021-11-29 13:01:50 -05:00
lonnie li
2c15e236a7 InteractiveToolsFramework: Add UPrimitiveComponentToolTargetFactory.
#rb ryan.schmidt
#rnx
#jira none
#preflight 619e5291405273b2c37a20da

#ROBOMERGE-AUTHOR: lonnie.li
#ROBOMERGE-SOURCE: CL 18283958 in //UE5/Release-5.0/... via CL 18283976
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18283991 by lonnie li in ue5-release-engine-test branch]
2021-11-24 10:32:04 -05:00
lonnie li
6584198283 InteractiveToolsFramework: Remove unnecessary target interface functions from MultiSelectionTool.
ModelingTools: Add UMultiSelectionMeshEditingTool to hold common interface requirements and functions that pertain to modeling mode MultiSelectionTools.

#rb semion.piskarev
#rnx
#jira none
#preflight 619c66d5c3287aab27e12c73

#ROBOMERGE-AUTHOR: lonnie.li
#ROBOMERGE-SOURCE: CL 18269697 in //UE5/Release-5.0/... via CL 18269713
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18269717 by lonnie li in ue5-release-engine-test branch]
2021-11-23 09:42:40 -05:00
lonnie li
e08222e97a InteractiveToolFramework: Remove unnecessary tool target interface requirements for MeshSurfacePointTool.
ModelingTools: Add MeshSurfacePointMeshEditingToolBuilder with common mesh editing requirements.
Update MeshSurfacePointTool modeling tools to use MeshSurfacePointMeshEditingToolBuilder

#rb semion.piskarev
#rnx
#jira none
#preflight 6196d1bbb22f9e02b57b7438

#ROBOMERGE-AUTHOR: lonnie.li
#ROBOMERGE-SOURCE: CL 18269233 in //UE5/Release-5.0/... via CL 18269267
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18269272 by lonnie li in ue5-release-engine-test branch]
2021-11-23 08:55:40 -05:00
jimmy andrews
ce576573e3 Check if ToolManager is null before accessing it to close all tools, to avoid crash if cleanup functions are called at the wrong time
#rb rinat.abdrashitov
#rnx
#preflight 6196c4d87c5a3437f360b1cc

#ROBOMERGE-AUTHOR: jimmy.andrews
#ROBOMERGE-SOURCE: CL 18244813 in //UE5/Release-5.0/... via CL 18244865
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18244903 by jimmy andrews in ue5-release-engine-test branch]
2021-11-18 17:07:17 -05:00
Marc Audy
0c3be2b6ad Merge Release-Engine-Staging to Test @ CL# 18240298
[CL 18241953 by Marc Audy in ue5-release-engine-test branch]
2021-11-18 14:37:34 -05:00
semion piskarev
d11d07621e MeshModelingTools: Make rotation not try to (incorrectly) snap in local mode.
#rb Jimmy.Andrews
#rnx
#jira UE-121825
#preflight 61795f285794a5000101deec

#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 17946899 in //UE5/Release-5.0/... via CL 17946915
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v885-17909292)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17946930 by semion piskarev in ue5-release-engine-test branch]
2021-10-27 12:46:26 -04:00
ryan schmidt
35cb7ccf8f ToolsFramework: move support for scene location/angle snapping from ToolContextInterfaces/IContextQueriesAPI to USceneSnappingManager, a context store object that different modes may wish to implement.
USceneSnappingManager currently only provides the current snapping interface and a no-op implementation.
Move existing EdModeInteractiveToolsContext snapping implementation to ModelingSceneSnappingManager in ModelingComponents module.
Add IContextQueriesAPI::GetCurrentSnappingSettings to allow ITF Host to specify snapping settings, implement in EdModeInteractiveToolsContext.
Update affected Tools/Gizmos, register ModelingSceneSnappingManager instance in Modeling EdMode.

#rb semion.piskarev
#rnx
#jira none
#preflight 6171b7654d6efa00017a0450

#ROBOMERGE-OWNER: ryan.schmidt
#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 17890511 in //UE5/Release-5.0/... via CL 17890705
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v883-17842818)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17890711 by ryan schmidt in ue5-release-engine-test branch]
2021-10-21 16:57:00 -04:00