#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]
Also, added new console variables for the existing settings:
New Package Streaming console variables:
- WarnIfTimeLimitExceeded
- TimeLimitExceededMultiplier
- TimeLimitExceededMinTime
- MinBulkDataSizeForAsyncLoading
- AsyncIOBandwidthLimit
New GC console variables:
- FlushStreamingOnGC
- NumRetriesBeforeForcingGC
[CL 2584216 by Robert Manuszewski in Main branch]
#UE4 Removing a final update in cases where we created a physics scene. The use case for this vanished and is causing problems occationally in cook. It is no longer necessary so I am removing it.
--------
Integrated using branch Ue4-To-UE4-Fortnite-Simple (reversed) of change#2542894 by Bob.Tellez on 2015/05/08 10:59:35.
[CL 2543047 by Bob Tellez in Main branch]
#UE4 Fixed a bug where saving a sublevel would clear its components from the persistent world.
--------
Integrated using branch Ue4-To-UE4-Fortnite-Simple (reversed) of change#2540353 by Bob.Tellez on 2015/05/06 20:12:20.
[CL 2540360 by Bob Tellez in Main branch]
#UE4 Creating a physics scene for all world saves, not just when cooking.
--------
Integrated using branch Ue4-To-UE4-Fortnite-Simple (reversed) of change#2530904 by Bob.Tellez on 2015/04/29 17:56:09.
[CL 2530919 by Bob Tellez in Main branch]
- New "Size Map" feature that shows the resource size for selected assets in Content Browser
- Select assets in Content Browser, right click and choose "Size Map..." to show sizes for those assets
- Select actors and press Alt+Shift+M to show sizes of assets used by those actors
- Select assets in Reference Viewer, right click and choose "Size Map..." to show sizes for those assets
- Also added a new "Tree Map" general purpose Slate widget (STreeMap)
[CL 2521609 by Mike Fricker in Main branch]
Newly installed versions of the engine will now attempt to copy the project-agnostic config settings from a previous engine installation. This happens by way of a versioned manifest that copies old versions when the manifest does not exist, or is a different version. This code path is benign for non-installed versions of the engine (or FPaths::ShouldSaveToUserDir() is false).
EditorGameAgnosticSettings and EditorUserSettings ini paths have been renamed to EditorSettings and EditorPerProjectUserSettings respectively to better convey their purpose. In general, most settings should be saved in EditorSettings (project-agnostic) so that they apply regardless of which project is open. We have some way to go migrating existing settings for this to be the case, however.
Some previously per-project configuration files are now project-agnostic (such as Editor.ini, EditorKeyBindings.ini, and EditorLayout.ini)
GEditor->Access...Settings and GEditor->Get...Settings have been removed in favor of direct access of the CDO through GetMutableDefault<> and GetDefault<> respectively. Global config ini filenames that are not set up are now neither loaded nor saved on build machines, to handle the problem of indeterminate state more generically.
This addresses UETOOL-270 (Most editor preferences should be project-agnostic)
[CL 2517558 by Andrew Rodham in Main branch]
UEditorEngine cleanup:
- Split all UEditorEngine methods from Editor.cpp into EditorEngine.cpp (though more are still scattered around in other files like EditorServer.cpp)
- Removed GetClassFromPairMap, ClassMapPair, and associated keyboard shortcuts to place nav pylons, since they don't exist anymore
- Removed dead variable StreamingBoundsTexture and associated method SetStreamingBoundsTexture
- Split out the implementations of SplitActorLabel and SetActorLabelUnique into statics on FActorLabelUtilities, the non-static versions will be deprecated in the future
- Moved SoundWaveQualityPreview to be a static in FSoundPreviewThread
- Moved FPreviewInfo into DlgSoundWaveOptions.h
- Removed empty method HandleCreateMeshFromBSPCommand and associated exec command
GWorld cleanup:
- Removed EditorClearComponents and updated the few existing uses to call ClearWorldComponents directly on their world reference
- Removed UpdateSkyCaptures and updated the only existing use to call UpdateAllSkyCaptures directly on a world reference
[CL 2515212 by Michael Noland in Main branch]