Commit Graph

83 Commits

Author SHA1 Message Date
jimmy andrews
cca27c2cdc Make the Modeling Tools Rounded Rectangle primitive preserve its Width/Depth by default as the Corner Radius changes. Add an option to enable the old behavior, where the Corner Radius extends beyond the Width/Depth.
#jira UE-191353
#rb rinat.abdrashitov

[CL 26791594 by jimmy andrews in ue5-main branch]
2023-08-02 18:43:44 -04:00
jimmy andrews
91e21c2731 Make a larger UI range for height offset in revolve properties
#rb trivial
#preflight skip

[CL 25433716 by jimmy andrews in ue5-main branch]
2023-05-11 15:27:54 -04:00
jimmy andrews
86467b259c fix compile error from bad merge in UVProjectionTool.h
#rb trivial
#preflight skip

[CL 24508051 by jimmy andrews in ue5-main branch]
2023-03-03 17:10:17 -05:00
jimmy andrews
cebb9b8683 InteractiveToolsFramework: Adds new helper methods to determine count ActorComponents that match TargetRequirements and an additional test predicate for specialized scenarios. Additionally adds a couple of helper methods to test for Volume components and component classes that support UVs. This is to fix the issues surrounding the UV modeling tools that shouldn't be viable for Volume type targets.
#rb Jimmy.Andrews
#preflight 63fe5fa6dd78dd50f61b619a

#tests Local testing with UEFN build 24438442.

#ushell-cherrypick of 23533564 by nathan.mitchell

[CL 24508032 by jimmy andrews in ue5-main branch]
2023-03-03 17:09:53 -05:00
jimmy andrews
f63cdc13af Update FLocalPlanarSimplify to support simplification along straight creases in a mesh, where the sides of the crease may optionally belong to different PolyGroups
Add an edge simplification operation to the PolyEdit tool

#rb semion.piskarev
#preflight 63ee9a0f3c1eb56f055442ac

[CL 24276322 by jimmy andrews in ue5-main branch]
2023-02-16 21:55:32 -05:00
ryan schmidt
af5699f133 ModelingTools: improve handling of invalid input selections to PolyEd Tool
Add UGeometrySelectionManager::GetActiveSelectionInfo, returns info about current selection w/o having to copy selection
Override UEditMeshPolygonsActionModeToolBuilder::CanBuildTool, use this new function to do specific per-action filtering to limit to supported input selection types
UEditMeshPolygonsSelectionModeToolBuilder::InitializeNewTool() now filters UI panels for current input selection if available, update Selection-palette PolyEd button to use this builder instead
#jira UE-176168
#preflight 63e2c886c2257e56f413b805
#rb david.hill

[CL 24068438 by ryan schmidt in ue5-main branch]
2023-02-08 01:21:37 -05:00
semion piskarev
be1e6fbac3 Fix capitalization of PolyGroup in some rare user-visible places.
#rb Jimmy.Andrews
#preflight 63dae05e3f006aee11b04b19

[CL 24004176 by semion piskarev in ue5-main branch]
2023-02-03 20:53:04 -05:00
semion piskarev
16b08005f7 MeshModelingTools: Fix PolyEd group edge insertion crashing if an undo transaction is received while waiting for an insertion to complete, and harden some of the state management.
#rb Tyson.Brochu, Jimmy.Andrews
#jira UE-174502
#preflight 63d3e7ba31334253e5c77aab

[CL 23889578 by semion piskarev in ue5-main branch]
2023-01-27 14:53:43 -05:00
ryan schmidt
227ac3d087 ModelingTools: Add OffsetMeshSelectionTool and RetriangulateGeometrySelectionCommand
#preflight 63cb1d78574ab9cae448312c
#rb none

[CL 23803436 by ryan schmidt in ue5-main branch]
2023-01-21 13:02:53 -05:00
ryan schmidt
70ac55822d ModelingMode: improve interop with new Selection System and existing Tools
Add support for Tools to provide an "output" selection. Add UGeometrySelectionManager::SetSelectionForComponent() which can set an explicit externally-provided selection. FBaseDynamicMeshSelector::UpdateSelectionFromSelection() now supports selection conversion when available and requested (is used to implement SetSelectionForComponent). New GeometrySelectionUtil functions InitializeSelectionFromTriangles() and ConvertSelection() are used to implement this (note: only Triangles->other conversion is currently supported). Add HaveAvailableGeometrySelection() and SetToolOutputGeometrySelectionForTarget() in StoredMeshSelectionUtil.h, this is the top-level function that Tools can use to set an Output selection.

ExtrudeMeshSelectionTool now emits output selection.

Update EditMeshPolygonsTool to use new Selection system and allow individual operations to be utilized as standalone Tools. Convert EditMeshPolygonsTool to be a USingleTargetWithSelectionTool, use FGeometrySelection to initialize selection. Add bTerminateOnPendingActionComplete flag, which is set when Tool is directly initialized to a specific operation, and forces tool to shut down when operation completes. This allows it to be used to more cleanly implement multiple action buttons in Modeling UI. When in this mode, selection panels are not shown. On Shutdown, now emits an "output" selection which GeometrySelectionManager can use to provide new selection to user. Update UPolygonSelectionMechanic Set/Get selection APIs to use FGeometrySelection instead of UPersistentMeshSelection.

port UVProjectionTool to derive from USingleTargetWithSelectionTool, use FGeometrySelection to initialize target ROI

deprecate UPersistentMeshSelection and related functions in StoredMeshSelectionUtil.h. Deprecate Tool Input Selection APIs in USingleSelectionMeshEditingTool and Builder.

Repurpose old ModelingMode-level PolyModel tab operations for new Selection Tools UI, now support Inset, Outset, Cut Faces, Insert Edge Loop, PushPull, and Bevel.

#rb none
#preflight 63c84fa2b065224750b9831f

[CL 23766643 by ryan schmidt in ue5-main branch]
2023-01-18 17:59:31 -05:00
ryan schmidt
46630c002f ModelingMode: Selection system improvements. Add Disconnect command and various new Selection-Edit Commands
Add UInteractiveCommandResult, UInteractiveCommand::ExecuteCommand() now optionally can return a result subclass
Add UGeometrySelectionEditCommandResult, UGeometrySelectionEditCommand now can optionally return an "output" selection via this type
UGeometrySelectionManager::ExecuteSelectionCommand optionally can restore a selection after a command, via UGeometrySelectionEditCommandResult

Add UDisconnectGeometrySelectionCommand, implements disconnection of selected triangles (ie separates but not into a new mesh)
Add UModifyGeometrySelectionCommand, implements various selection edits (select all, expand to connected, invert, invert connected, expand, contract)
Add IGeometrySelector::InitializeSelectionFromPredicate() and ::UpdateSelectionFromSelection(), implement in UDynamicMeshSelector, used to implement selection edit commands
Add UI to enable new commands in Modeling Mode

#rb none
#preflight 63c047f4305002c64170f6a2

[CL 23667880 by ryan schmidt in ue5-main branch]
2023-01-12 14:52:52 -05:00
Nickolas Drake
33700c92e8 Modeling Mode Tools: Remove exponential behavior from unbounded sliders in various tools.
Added UI/Clamp meta tags where appropriate to implicitly remove the exponential behavior and added Delta/LinearDeltaSensitivity tags when values shouldn't be bounded but don't necessarily depend on the scale of the working mesh.

In the case of values that shouldn't be bounded and do change depending on the mesh scale, the exponential behavior remains.

#jira none
#rb ryan.schmidt
#preflight 639a3cc3776b61ba3bbf0f9f

[CL 23538292 by Nickolas Drake in ue5-main branch]
2022-12-16 11:11:57 -05:00
nathan mitchell
2a80a7febe InteractiveToolsFramework: Adds new helper methods to determine count ActorComponents that match TargetRequirements and an additional test predicate for specialized scenarios. Additionally adds a couple of helper methods to test for Volume components and component classes that support UVs. This is to fix the issues surrounding the UV modeling tools that shouldn't be viable for Volume type targets.
#rb Ryan.Schmidt
#preflight 639b914e2540a78d2702f8d8
#jira UE-169112

[CL 23533564 by nathan mitchell in ue5-main branch]
2022-12-15 18:17:12 -05:00
michael balzer
de8aea8db9 MeshModelingToolset: Fix ResetToDefault for Output Object Name in e.g. Merge and Trim tools
#jira UE-168625
#preflight 63937accc415e8dc78c56176
[FYI] nickolas.drake

[CL 23475313 by michael balzer in ue5-main branch]
2022-12-11 23:09:16 -05:00
michael balzer
54328185b1 MeshModelingToolset: Fix spelling for PolyGroup in Shapes tools
#preflight 6377d082fa348e8480d51957

[CL 23242411 by michael balzer in ue5-main branch]
2022-11-22 17:22:37 -05:00
Nickolas Drake
479dc14918 Draw Polygon Tool: Add construction plane mechanic to tool.
The tool seems to predate the construction plane mechanic and ought to use it so that changes to the construction plane mechanic are reflected in this tool.

#jira none
#rb semion.piskarev
#preflight 6373f66e0c74adb48ba697f6

[CL 23155352 by Nickolas Drake in ue5-main branch]
2022-11-16 11:40:11 -05:00
Nickolas Drake
8f3b5614fd UV Project Tool: Make uniform checkbox behave like pattern tool's Proportional checkbox in scale settings.
Instead of just using the x-component when bUniformDimensions is true, the actual dimension vector is changed uniformly and no check is needed when getting the projection box.

#jira none
#rb semion.piskarev
#preflight 6373f691232e3d12cbe04f95

[CL 23155278 by Nickolas Drake in ue5-main branch]
2022-11-16 11:37:21 -05:00
Nickolas Drake
af83a7cea2 PolyEdit Insert Edge Activity: Optionally allow users to chain edge insertions by automatically selecting the end point of the just inserted edge as the new start point.
#jira none
#rb Semion.Piskarev
#preflight 636922a4376a9cd6a8f093c7

[CL 23013108 by Nickolas Drake in ue5-main branch]
2022-11-07 12:37:29 -05:00
jimmy andrews
c100a9e893 Fill out the missing tooltips in PolyEd and TriEd tools, and tweak some of the tooltip wording.
#preflight 6363fb711052c15f1396465b
#rb rinat.abdrashitov

[CL 22968442 by jimmy andrews in ue5-main branch]
2022-11-03 18:01:17 -04:00
bryan sefcik
117472780d Fixed include paths.
#jira
#preflight 634ee62fe746026e48eb077e

[CL 22621687 by bryan sefcik in ue5-main branch]
2022-10-19 06:39:08 -04:00
michael balzer
3b1e52dbc7 MeshModelingToolset: Resolve typos in Offset tool
#jira UE-165490
#preflight 6335bf7d7c11614c216a5ffa
#rb

[CL 22323407 by michael balzer in ue5-main branch]
2022-10-03 21:14:39 -04:00
jimmy andrews
3afe4ea106 make PathRev tool warn the user if the draw plane / axis is very far from the camera position, with an explanation of how to place the draw plane in the view.
#jira UE-158042
#rb rinat.abdrashitov
#preflight 63379f5ae72271755f528447

[CL 22288697 by jimmy andrews in ue5-main branch]
2022-10-01 02:07:54 -04:00
jimmy andrews
c2c4465c98 fix polyedit extrude distance not having a max
#jira UE-162563
#rb david.hill
#rb tyson.brochu
#preflight 6328d8c2b40000c8f031ee06

[CL 22088934 by jimmy andrews in ue5-main branch]
2022-09-20 01:40:11 -04:00
david hill
5bbbb78af0 AddPrimitiveTool - Disc primitive, Punctured Disc. Don't let the inner radius exceed the outer
#jira UE-109022
#preflight 63235b73600516561b0d4c85
#rb Tyson.Brochu

[CL 22052305 by david hill in ue5-main branch]
2022-09-16 12:46:36 -04:00
tyson brochu
9efcc70606 ModelingComponents/Selection:
- create a new MeshTopologySelector base class. The existing GroupTopologySelector class now inherits from it, as does a new BoundarySelector class
- likewise, create a new MeshTopologySelectionMehchanic base class and have (existing) PolygonSelectionMechanic and (new) BoundarySelectionMechanic inherit from it
- the new Boundary classes use FMeshBoundary loops to define selectable loops rather than FGroupTopology

HoleFillTool:
- change to using BoundarySelectionMechanic instead of GroupTopologySelector

Misc:
- allow FMeshBoundaryLoops to fail untangling a loop with bowties but still continue processing other loops


#jira UE-144821
#rb jimmy.andrews
#preflight 63222176e93a80888cb7d3df

[CL 22013854 by tyson brochu in ue5-main branch]
2022-09-14 15:25:19 -04:00