#codereview matt.kuhlenschmidt
Integrate github pull request #832
- I did not convert geometry, ai path and lighting build to use the generic system. But users will be able to add custom build step using the public interface.
[CL 2682404 by Alexis Matte in Main branch]
Added console command for enabling/disabling the HLOD system
Changed/removed HLOD behaviour from build menu
Removed context menu from HLOD level treeview item
Double clicking a (build) LODActor or StaticMeshActor item in the HLOD outliner will now move the editor camera to the actor (just like the scene outliner)
[CL 2678787 by Jurre deBaare in Main branch]
#jira UE-18728 - There is no way to center the pivot on a BSP brush
#jira UE-18932 - After updating an actor transform via the details panel, the transform widget in the scene doesn't move
[CL 2634053 by Richard TalbotWatkin in Main branch]
#jira UE-18353 - SaveBrushAsCollison keybind makes no sense because the builder brush is no longer a user-facing concept
[CL 2619945 by Richard TalbotWatkin in Main branch]
ADDED UE-14356 HLOD: Print user friendly message if you try build and meshes don't have have LODs
ADDED MergeStaticMeshComponets to MeshUtilities needed for next CHANGE
ADDED HLOD preview build step for maps, this only builds the clusters for previewing the settings
ADDED SphereComponent now takes into account min and max drawing distances
ADDED Global forward declares and removed local ones from HierarchicalLOD.h
ADDED Visualization to LODActor class, uses USphereComponent to render its bounds
ADDED IsPreviewActor flag to LODActor class, if true during cluster generation DrawSphereComponents bounds will be used instead of LODActor's
ADDED vertex duplication removal on import
ADDED vertex/index buffer cache optimization on import
CHANGED World.h now forward declares HierarchicalLODBuilder to minimize (re)compile time
CHANGED While building/merging actors HLOD system now takes the orginal staticmesh from previously merged LODActors, this to enable retrieving the correct LOD per mesh (related to UE-15398)
CHANGED HLOD Cluster generation process, now takes into account HierarchicalLODVolumes to exclude actors from cluster generation
CHANGED Renamed CalculateRawMeshTangents to ExtractMeshDataForGeometryCache
FIXED Crash where a nullptr actor was added to actors list for > LOD0 clusters
FIXED Bound creation for actor within a cluster used FVector.Size(), now used FVector.AbsMax()
MOVED FLODCLuster structure into seperate header and cpp file
[CL 2617884 by Jurre DeBaare 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]
UE-14641 - Fix PushMenu() to use QueryPopupMethod()
Pretty big refactor
Adds IMenu as way to identify menus. Replaces referring to menus as SWindows.
Lots of uses of PushMenu() fixed up to match new API
#codereview Nick.Atamas
[CL 2579277 by Chris Wood in Main branch]
Added several additional layer action commands:
- Move selection up a layer (Ctrl+PageUp, also changes active layer)
- Move selection down a layer (Ctrl+PageDown, also changes active layer)
- Move selection to top layer (Shift+Ctrl+PageUp, also changes active layer)
- Move selection to bottom layer (Shift+Ctrl+PageDown, also changes active layer)
- Cycle active snap layer forwards (Alt+PageUp)
- Cycle active snap layer backwards (Alt+PageDown)
Changed the snap layer viewport toolbar button to be a reasonable minimum width, reducing horizontal bounciness when switching layers
Snap layers in the project settings are now automatically sorted by depth when they are edited
[CL 2554371 by Michael Noland in Main branch]
New FActorRange, TActorRange and FSelectedActorRange.
Some example usage of the new range types.
FNetRelevantActorIterator removed, as it's not used.
FTickableLevelFilter removed.
Actor iterators' operator bool made explicit.
#codereview robert.manuszewski
[CL 2553370 by Steve Robb 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]