#jira UE-16415 - The origin of a BSP brush stays in place while youÆre editing the brush in Geometry mode, often leaving the origin (and default rotation point) floating off in space.
[CL 2634054 by Richard TalbotWatkin in Main branch]
#jira UE-16419 - If you right click on a vert to snap a pivot of a brush to that location, it will automatically reset the pivot back to the origin after your next mouse click.
#reviewedby Matt.Kuhlenschmidt
[CL 2612043 by Richard TalbotWatkin in Main branch]
#jira UE-16405 - Hitch occurs when undoing BSP manipulations
Summary of changes:
- Added 'fuzzy map' for quick look up of nearly equal FVectors, improving the BSP rebuild algorithm from O(n^4) to O(n*m) where m is much smaller than n.
- Added 'fuzzy map' for quick look up of nearly equal FPlanes, improving plane merging from O(n^2) to O(n).
- Changed TTransArrays in UModel to regular arrays, to remove a lot of transaction modifies during BSP rebuild.
- UModel array allocations are now allocated upfront where possible, instead of constant dynamic resizing.
- Optimized algorithm used by UModelComponent::GenerateElements to reduce allocations and simplify map lookups.
- Removed call to ULevel::CommitModelSurfaces in UModelComponent::PostEditUndo, which was causing an enormous amount of unnecessary work on each undo operation. It is now done, as ever, by UWorld::Tick.
#reviewedby Matt.Kuhlenschmidt
[CL 2600444 by Richard TalbotWatkin in Main branch]
#jira UE-12430 - BSP brushes that have been brush clipped cannot be copied and pasted between maps
#jira UE-12122 - Editing duplicated BSP brushes also edits the original brush
The new UModel is created as an inner object of the new Brush, meaning that it has no external path and hence imports correctly.
[CL 2498929 by Richard TalbotWatkin in Main branch]
#jira UE-7507 - Vertex editing 2 BSP brushes simultaneously reverts to local movement for brushes that have been rotated
[CL 2438298 by Richard TalbotWatkin in Main branch]
#jira UE-5794 - The translation widget uses a BSP's initial position when Geometry Editing after rotating
[CL 2370697 by Richard TalbotWatkin in Main branch]
* Moved Slate.h into SlateBasics.h and began shifting less commonly used headers into SlateExtras.h.
* Slate.h now simply includes SlateBasics.h and SlateExtras.h.
* Slate.h includes a deprecated warning now to indicate that SlateBasics.h + specific includes should be used instead.
* Moved dozens of inlined functions using Slate widgets into .cpp files to avoid header dependencies.
* All code samples now include SlateBasics.h and SlateExtras.h so future shifts will not break most those projects, but not trigger the deprecation warning of including Slate.h.
#BUN
[CL 2329610 by Wes Hunt in Main branch]
Breaking changes include:
* Rename of GEditorModeTools -> GLevelEditorModeTools to signify that it applies only to the level editor modes
* Addition of FEditorModeRegistry, responsible for managing and creating new editor modes. Modes are no longer registered with an instance of the mode, instead with a mode factory that is able to create a new mode of that type.
* Editor modes now operate on FEditorViewportClients rather than FLevelEditorViewportClients
* Added ability to specify an FEditorModeTools when creating an FEditorViewport
Moved component vizualiser manager handling outside of individual editor modes, and into FLevelEditorViewportClient. This should make it easier to transplant in future.
This work addresses TTP#334640 - EDITOR: Investigate making editor modes a per-'editor' concept
Reviewed by Michael Noland, Matt Kuhlenschmidt
[CL 2109245 by Andrew Rodham in Main branch]