Files
UnrealEngineUWP/Engine/Source/Editor/UnrealEd/Private/SnappingUtils.cpp

513 lines
18 KiB
C++
Raw Normal View History

// Copyright Epic Games, Inc. All Rights Reserved.
#include "SnappingUtils.h"
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3209340 on 2016/11/23 by Ben.Marsh Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h. Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms. * Every header now includes everything it needs to compile. * There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first. * There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h. * Every .cpp file includes its matching .h file first. * This helps validate that each header is including everything it needs to compile. * No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more. * You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there. * There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible. * No engine code explicitly includes a precompiled header any more. * We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies. * PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files. Tool used to generate this transform is at Engine\Source\Programs\IncludeTool. [CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
#include "Modules/ModuleManager.h"
#include "GameFramework/Actor.h"
#include "Settings/LevelEditorViewportSettings.h"
#include "Editor/GroupActor.h"
#include "GameFramework/PhysicsVolume.h"
#include "Engine/PostProcessVolume.h"
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3209340 on 2016/11/23 by Ben.Marsh Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h. Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms. * Every header now includes everything it needs to compile. * There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first. * There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h. * Every .cpp file includes its matching .h file first. * This helps validate that each header is including everything it needs to compile. * No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more. * You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there. * There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible. * No engine code explicitly includes a precompiled header any more. * We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies. * PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files. Tool used to generate this transform is at Engine\Source\Programs\IncludeTool. [CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
#include "GameFramework/WorldSettings.h"
#include "EngineUtils.h"
#include "LevelEditorViewport.h"
#include "Engine/Selection.h"
#include "EditorModeManager.h"
#include "ScopedTransaction.h"
#include "EdMode.h"
#include "LevelEditor.h"
#include "LevelEditorActions.h"
#include "VertexSnapping.h"
#include "ISnappingPolicy.h"
#include "ViewportSnappingModule.h"
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3431234) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 3323393 on 2017/02/27 by Ben.Cosh This fixes an issue with actor details component selection causing actor selection to get out of sync across undo operations #Jira UE-40753 - [CrashReport] UE4Editor_LevelEditor!FLevelEditorActionCallbacks::Paste_CanExecute() [leveleditoractions.cpp:1602] #Proj Engine Change 3379355 on 2017/04/04 by Lauren.Ridge Adding sort priorities to Material Parameters and Parameter Groups. If sort priorities are equal, fallback to alphabetical sort. Default sort priority is 0, can be set on the parameter in the base material. Parameters are still sorted within groups.Group sort priority is set on the main material preferences. Change 3379389 on 2017/04/04 by Nick.Darnell Core - Removing several old macros that were referring to EMIT_DEPRECATED_WARNING_MESSAGE, which is no longer defined in the engine, so these macros are double deprecated. Change 3379551 on 2017/04/04 by Nick.Darnell Automation - Adding more logging to the automation controller when generating reports. Change 3379554 on 2017/04/04 by Nick.Darnell UMG - Making the WidgetComponent make more things caneditconst in the editor depending on what the settings are to make it more obvious what works in certain contexts. Change 3379565 on 2017/04/04 by Nick.Darnell UMG - Deprecating OPTIONA_BINDING, moving to PROPERTY_BINDING in place and you'll need to define a PROPERTY_BINDING_IMPLEMENTATION. Will make bindings safer to call from blueprints. Change 3379576 on 2017/04/04 by Lauren.Ridge Parameter group dropdown now sorts alphabetically Change 3379592 on 2017/04/04 by JeanMichel.Dignard Fbx Morph Targets import optimisation - Only reimport the points for each morphs and compute the tangents for the wedges affected by those points. - Removed the full skeletal mesh rebuild on each morph target import. - Allow MeshUtilities::ComputeTangents_MikkTSpace to only recompute the tangents that are zero. Gains around 7.30 mins for 785 morph targets in mikkt space and 1.30 mins using built-in normals, with provided test file. #jira UE-34125 Change 3380260 on 2017/04/04 by Nick.Darnell UMG - Fixing some OPTIONAL_BINDINGS that needed to be converted. Change 3380551 on 2017/04/05 by Andrew.Rodham Sequencer: Fixed ImplIndex sometimes not relating to the source data index when compiling at the track level #jira UE-43446 Change 3380555 on 2017/04/05 by Andrew.Rodham Sequencer: Automated unit tests for the segment and track compilers Change 3380647 on 2017/04/05 by Nick.Darnell UMG - Tweaking some stuff on the experimental rich textblock. Change 3380719 on 2017/04/05 by Yannick.Lange Fix 'Compile FortniteClient Mac' and 'Compile Ocean iOS' Failed with Material.cpp errors. Wrapping WITH_EDITOR around ParameterGroupData. #jira UE-43667 Change 3380765 on 2017/04/05 by Nick.Darnell UMG - Fixing a few more instances of OPTIONAL_BINDING. Change 3380786 on 2017/04/05 by Yannick.Lange Wrap SortPriority in GetParameterSortPriority with WITH_EDITOR. Change 3380872 on 2017/04/05 by Matt.Kuhlenschmidt PR #3453: UE-43004: YesNo MessageDialog instead of YesNoCancel (Contributed by projectgheist) Change 3381635 on 2017/04/05 by Matt.Kuhlenschmidt Expose static mesh material accessors to blueprints #jira UE-43631 Change 3381643 on 2017/04/05 by Matt.Kuhlenschmidt Added a way to enable or disable the component transform units display independently from unit display anywhere else. This is off by default Change 3381705 on 2017/04/05 by Yannick.Lange - Slate application multiple input pre-processors. - Remove ViewportWorldInteractionManager, let ViewportWorldInteraction handle it's own input pre-processor. Change 3381959 on 2017/04/05 by Yannick.Lange Back out changelist 3381705. Old changelist. Change 3382049 on 2017/04/05 by Yannick.Lange - Slate application multiple input pre-processors in a wrapper class. - Remove ViewportWorldInteractionManager, let ViewportWorldInteraction handle it's own input pre-processor. - Deprecated SetInputPreProcessor, but made it work with RegisterInputPreProcessor and UnregisterInputPreProcessor. Change 3382450 on 2017/04/06 by Andrew.Rodham Sequencer: Fixed 'ambiguous' overloaded constructor for UT linux server builds Change 3382468 on 2017/04/06 by Yannick.Lange Rename AllowWorldMovement parameter to bAllow. Change 3382474 on 2017/04/06 by Yannick.Lange Make GetInteractors constant because we dont want it to be possible to change this arrray. Change 3382492 on 2017/04/06 by Yannick.Lange VR Editor: Floating UI's are stored in a map with FNames as key. Change 3382502 on 2017/04/06 by Yannick.Lange VR Editor: Use asset container for auto scaler sound. Change 3382589 on 2017/04/06 by Nick.Darnell Slate - Upgrading usages of SetInputPreprocessor. Also adjusting the API for the new preprocessor functions to have an option to remove all, which was what several usages expected. Also updated the deprecated version of SetInputPreprocessor to removeall if null is provided for the remove, mimicing the old functionality. Change 3382594 on 2017/04/06 by Nick.Darnell UMG - Deprecating GetMousePositionScaledByDPI, this function has too many issues, and I don't want to break buggy backwards compatability, so just going to deprecate it instead. For replacement, you can now access an FGeometry representing the viewport (after DPI scale has been added to the transform stack), and also the FGeometry for a Player's Screen widget host, which might be constrained for splitscreen, or camera aspect. Change 3382672 on 2017/04/06 by Nick.Darnell Build - Fixing incremental build. Change 3382674 on 2017/04/06 by Nick.Darnell Removing a hack added by launcher. Change 3382697 on 2017/04/06 by Matt.Kuhlenschmidt Fixed plugin browser auto-resizing when scrolling. Gave it a proper splitter Change 3382875 on 2017/04/06 by Michael.Trepka Modified FMacApplication::OnCursorLock() to avoid a thread safety problem with using TSharedPtr/Ref<FMacWindow> of the same window on main and game threads simultaneously. #jira FORT-34952 Change 3383303 on 2017/04/06 by Lauren.Ridge Adding sort priority to texture parameter code Change 3383561 on 2017/04/06 by Jamie.Dale Fixed MaximumIntegralDigits incorrectly including group separators in its count Change 3383570 on 2017/04/06 by Jamie.Dale Added regression tests for formatting a number with MaximumIntegralDigits and group separators enabled Change 3384507 on 2017/04/07 by Lauren.Ridge Mesh painting no longer paints on invisible components. Toggling visiblity refreshes the selected set. #jira UE-21172 Change 3384804 on 2017/04/07 by Joe.Graf Fixed a clang error on Linux due to missing virtual destructor when deleting through the interface pointer #CodeReview: marc.audy #rb: n/a Change 3385011 on 2017/04/07 by Matt.Kuhlenschmidt Fix dirtying levels just by copying actors if the level contains a foliage actor. The foliage system makes lazy asset pointers #jira UE-43750 Change 3385127 on 2017/04/07 by Lauren.Ridge Adding WITHEDITOR to OnDragDropCheckOverride Change 3385241 on 2017/04/07 by Jamie.Dale Removing warning if asking for a null or empty localization provider Change 3385442 on 2017/04/07 by Arciel.Rekman Fix a number of problems with Linux splash. - Thread safety (UE-40354). - Inconsistent font (UE-35000). - Change by Cengiz Terzibas. Change 3385708 on 2017/04/08 by Lauren.Ridge Resaving VREditor asset container with engine version Change 3385711 on 2017/04/08 by Arciel.Rekman Speculative fix for a non-unity Linux build. Change 3386120 on 2017/04/10 by Matt.Kuhlenschmidt Fix stats not being enabled when in simulate Change 3386289 on 2017/04/10 by Matt.Kuhlenschmidt PR #3466: Git plugin: add option to autoconfigure Git LFS (Contributed by SRombauts) Change 3386301 on 2017/04/10 by Matt.Kuhlenschmidt PR #3470: Git Plugin: disable "Keep Files Checked Out" checkbox on Submit to Source Control Window (Contributed by SRombauts) Change 3386381 on 2017/04/10 by Michael.Trepka PR #3461: Mac doesn't return the correct exit code (Contributed by projectgheist) Change 3388223 on 2017/04/11 by matt.kuhlenschmidt Deleted collection: MattKTest Change 3388808 on 2017/04/11 by Lauren.Ridge Reset arrows now only display for non-default values in the Material Instance editor. Reset to default arrows now are placed in the correct location for SObjectPropertyEntryBox and SPropertyEditorAsset. SResetToDefaultPropertyEditor now takes a property handle in the constructor, instead of an FPropertyEditor. #jira UE-20882 Change 3388843 on 2017/04/11 by Lauren.Ridge Forward declaring custom reset override. Fix for incremental build error Change 3388950 on 2017/04/11 by Nick.Darnell PR #3450: UMG "Lock" Feature (Contributed by GBX-ABair). Epic Edit: Made some changes to make it work with named slots, added an option not to always recursively itterate the children, also removed the dependency on SWidget changes. Change 3388996 on 2017/04/11 by Matt.Kuhlenschmidt Removed crashtracker Change 3389004 on 2017/04/11 by Lauren.Ridge Fix for automated test error - additional safety check for if the reset button has been successfully created. Change 3389056 on 2017/04/11 by Matt.Kuhlenschmidt Removed editor live streaming Change 3389077 on 2017/04/11 by Jamie.Dale Removing QAGame config change Change 3389078 on 2017/04/11 by Nick.Darnell Fortnite - Fixing an input preprocessor warning. Change 3389136 on 2017/04/11 by Nick.Darnell Slate - Removing deprecated 'aspect ratio' locking box cells, never really worked, deprecated a long time ago. Change 3389147 on 2017/04/11 by Nick.Darnell UMG - Fixing a critical error with the alignment of the lock icon. #jira UE-43881 Change 3389401 on 2017/04/11 by Nick.Darnell UMG - Adds a designer option to control respecting the locked mode. Change 3389638 on 2017/04/11 by Nick.Darnell UMG - Adding the Widget Reflector button to the widget designer. Change 3389639 on 2017/04/11 by Nick.Darnell UMG - Tweaking the respect lock icon. Change 3390032 on 2017/04/12 by JeanMichel.Dignard Fixed project generation when using subfolders in Target.SolutionDirectory (ie: SolutionDirectory = "Programs\MyProgram") Change 3390033 on 2017/04/12 by Matt.Kuhlenschmidt PR #3472: Exposed Distributions to Game Projects and Plugins (Contributed by StormtideGames) Change 3390041 on 2017/04/12 by Matt.Kuhlenschmidt PR #3446: Add missing TryLock to PThreadCriticalSection and add RAII helper for try locking. (Contributed by Laurie-Hedge) Change 3390196 on 2017/04/12 by Lauren.Ridge Fix for crash on opening assets without reset to default button enable Change 3390414 on 2017/04/12 by Matt.Kuhlenschmidt PR #3300: UE-5528: Added check for empty startup tutorial path (Contributed by projectgheist) #jira UE-5528 Change 3390427 on 2017/04/12 by Jamie.Dale Fixed not being able to set pure whitespace values on FText properties #jira UE-42007 Change 3390712 on 2017/04/12 by Jamie.Dale Content Browser search now takes the display names of properties into account #jira UE-39564 Change 3390897 on 2017/04/12 by Nick.Darnell Slate - Changing the order that the tabs draw in so that the draw front to back, instead of back to front. Change 3390900 on 2017/04/12 by Nick.Darnell Making a Cast CastChecked in UScaleBox. Change 3390907 on 2017/04/12 by Nick.Darnell UMG - Adding GetMousePositionOnPlatform and GetMousePositionOnViewport as other replacements that people can use rather than GetMousePositionScaledByDPI. Change 3390934 on 2017/04/12 by Cody.Albert Fix to set correct draw layer in FSlateElementBatcher::AddElements Change 3390966 on 2017/04/12 by Nick.Darnell Input - Force inline some core input functions. Change 3391207 on 2017/04/12 by Jamie.Dale Fixed moving a folder containing a level not moving the level Also removed some redundant usage of ContentBrowserUtils::GetUnloadedAssets #jira UE-42091 Change 3391327 on 2017/04/12 by Mike.Fricker Removed Twitch support and GameLiveStreaming Change 3391405 on 2017/04/12 by Mike.Fricker Removed Twitch support and GameLiveStreaming (part 2) Change 3391407 on 2017/04/12 by Mike.Fricker Removed some remaining EditorLiveStreaming and CrashTracker code Change 3392296 on 2017/04/13 by Yannick.Lange VR Editor: New assets in asset containers for gizmo rotation. Change 3392332 on 2017/04/13 by Nick.Darnell Slate - Removing delegate hooks from the safezone and scalebox widget when the widgets are cleaned up. Change 3392349 on 2017/04/13 by Cody.Albert Corrected typo Change 3392688 on 2017/04/13 by Yannick.Lange VR Editor: Resaved asset containers Change 3392905 on 2017/04/13 by Jamie.Dale Fixed FPaths::ChangeExtension and FPaths::SetExtension stomping over the path part of a filename if the name part of the had no extension but the path contained a dot, eg) C:/First.Last/file Change 3393514 on 2017/04/13 by Yannick.Lange VR Editor: Temp direct interaction pointer. Change 3393930 on 2017/04/14 by Yannick.Lange VR Editor: Remove unused transform gizmo Change 3394084 on 2017/04/14 by Max.Chen Audio Capture: No longer beta Change 3394499 on 2017/04/14 by Cody.Albert Updated UMovieSceneSpawnTrack::PostLoad to call ConditionalPostLoad on bool track before converting it to a spawn track #rnx Change 3395703 on 2017/04/17 by Yannick.Lange Duplicate from Release-4.16 CL 3394172 Viewport Interaction: Fix disable animation when aiming for gizmo stretch handles. #jira UE-43964 Change 3395794 on 2017/04/17 by Mike.Fricker #rn Fixed FastXML not loading XML files with attributes delimited by single quote characters Change 3395945 on 2017/04/17 by Yannick.Lange VR Editor: Swap end and start of laser, because they start of laser was using end mesh. Change 3396253 on 2017/04/17 by Michael.Dupuis #jiraUE-43693: While moving foliage instance between levels, UI count was'nt updating properly Moved MoveSelectedFoliageToLevel to EdModeFoliage as we required more treatment than was done in LevelCollectionModel Ask to save foliage type as asset while moving between level foliage instances containing local foliage type Change 3396291 on 2017/04/17 by Michael.Dupuis #jira UE-35029: Added a cache for mesh bounds so if the bounds changed we can rebuild the occlusion tree Added possibility to register on bounds changed of a static mesh in editor mode Rebuild the occlusion tree if the mesh bounds changed Rebuild the occlusion tree if we change the mesh associated with a foliage type Optimize some operation to not Rebuild the occlusion tree for every instance added/remove instead it's done at the end of the operation Change 3396293 on 2017/04/17 by Michael.Dupuis #jira UE-40685: Improve Collision With World algo, to support painting pitch rotated instance or not on a flat terrain or slope respecting the specified ground angles Change 3397660 on 2017/04/18 by Matt.Kuhlenschmidt PR #3480: Git plugin: improve/cleanup init and settings (Contributed by SRombauts) Change 3397675 on 2017/04/18 by Alex.Delesky #jira UE-42383 - Adds a delegate to the placement mode module to allow users to register custom categories and listen to when they should be refreshed. Change 3397818 on 2017/04/18 by Yannick.Lange ViewportInteraction and VR Editor: - Replace GENERATED_UCLASS_BODY with GENERATED_BODY. - Remove destructors for uobjects. Change 3397832 on 2017/04/18 by Yannick.Lange VR Editor: Remove unused vreditorbuttoon Change 3397884 on 2017/04/18 by Yannick.Lange VREditor: Addition to 3397832, remove unused vreditorbuttoon. Change 3397985 on 2017/04/18 by Michael.Trepka Another attempt to solve the issue with dsymutil failing with an error saying the input file did not exist. We now check for the input file's existence in a loop 30 times (once a second) before trying to call dsymutil. Also, added a FixDylibDependencies as a prerequisite for dSYM generation. #jira UE-43900 Change 3398030 on 2017/04/18 by Jamie.Dale Fixed outline changes not automatically updating the text layout used by a text block #jira UE-42116 Change 3398039 on 2017/04/18 by Jamie.Dale Unified asset drag-and-drop FAssetDragDropOp now handles both assets and asset paths, and FAssetPathDragDropOp has been removed. This allows assets and folders to be drag-dropped at the same time in the Content Browser. #jira UE-39208 Change 3398074 on 2017/04/18 by Michael.Dupuis Fixed crash in cooking fortnite Change 3398351 on 2017/04/18 by Alex.Delesky Fixing PlacementMode module build error Change 3398513 on 2017/04/18 by Yannick.Lange VR Editor: - Remove unused previousvreditor member. - Removing extensions when exiting vr mode without having to find the extensions. Change 3398540 on 2017/04/18 by Alex.Delesky Removing a private PlacementMode header that was included in a public one. Change 3399434 on 2017/04/19 by Matt.Kuhlenschmidt Remove uncessary files from p4 Change 3400657 on 2017/04/19 by Jamie.Dale Fixed potential underflow when using negative digit ranges with FastDecimalFormat Change 3400722 on 2017/04/19 by Jamie.Dale Removed some check's that could trip with malformed data Change 3401811 on 2017/04/20 by Jamie.Dale Improved the display of asset tags in the Content Browser - Numeric tags are now displayed pretty printed. - Numeric tags can now be displayed as a memory value (the numeric value should be in bytes). - Dimensional tags are now split and each part pretty printed. - Date/Time tags are now stored as a timestamp (which has the side effect of sorting correctly) and displayed as a localized date/time. - The column view now shows the same display values as the tooltips do. - The tooltip now uses the tag meta-data display name (if set). - The tag meta-data display name can now be used as an alias in the Content Browser search. #jira UE-34090 Change 3401868 on 2017/04/20 by Cody.Albert Add screenshot save directory parameter to editor and project settings #rn Added options to the settings menu to specify screenshot save directory Change 3402107 on 2017/04/20 by Jamie.Dale Cleaned up the "View Options" menu in the Content Browser Re-organized some of the settings into better groups, and fixed some places where items would still be shown in the asset view when some of these content filter options were disabled (either via a setting, or via the UI). Change 3402283 on 2017/04/20 by Jamie.Dale Creating a folder in the Content Browser now creates the folder on disk, and cancelling a folder naming now removes the temporary folder #jira UE-8892 Change 3402572 on 2017/04/20 by Alex.Delesky #jira UE-42421 PR #3311: Improved log messages (Contributed by projectgheist) Change 3403226 on 2017/04/21 by Yannick.Lange VR Editor: - Removed previous quick menu floating UI panel. - Added the concept of a info display floating UI panel. - Used info display for showing sequencer timer. Change 3403277 on 2017/04/21 by Yannick.Lange VR Editor: - Set window mesh for info display panel. - Add option to null out widget when hidden. Change 3403289 on 2017/04/21 by Yannick.Lange VR Editor: Don't load VREditorAssetContainer asset when starting editor. Change 3403353 on 2017/04/21 by Yannick.Lange VR Editor: Fix variable 'RelativeOffset' is uninitialized when used within its own initialization. Change 3404183 on 2017/04/21 by Matt.Kuhlenschmidt Fix typo Change 3405378 on 2017/04/24 by Alex.Delesky #jira UE-42550 - Audio thumbnails should never rerender now, even with real-time thumbnails enabled Change 3405382 on 2017/04/24 by Alex.Delesky #jira UE-42097 - The Main Frame window will no longer steadily grow if it's closed while not maximized Change 3405384 on 2017/04/24 by Alex.Delesky #jira UE-43985 - Duplicating Force Feedback, Sound Wave, or Sound Cue assets from the context menu after right-clicking on the playback controls will now correctly select the newly created asset for rename. Change 3405386 on 2017/04/24 by Alex.Delesky #jire UE-42239 - Blueprints that have been duplicated from another blueprint will now render their thumbnails correctly instead of displaying a flat black thumbnail. Change 3405388 on 2017/04/24 by Alex.Delesky #jira UE-43241 - Blueprint classes that derive from notplaceable classes (such as SpectatorPawn and GameMode) can no longer be placed within the level editor via the right-click Add/Replace menus Change 3405394 on 2017/04/24 by Alex.Delesky #jira UE-42137 - Users can no longer access the widget object of a Widget Component from within actor construction scripts Change 3405429 on 2017/04/24 by Alex.Delesky Fixing a naming issue for CL 3405378 Change 3405579 on 2017/04/24 by Cody.Albert Fixed bad include from CL#1401868 #jira UE-44238 Change 3406716 on 2017/04/24 by Max.Chen Sequencer: Add attach/detach rules for attach section. #jira UE-40970 Change 3406718 on 2017/04/24 by Max.Chen Sequencer: Set component velocity for attached objects #jira UE-36337 Change 3406721 on 2017/04/24 by Max.Chen Sequencer: Re-evaluate on stop. This fixes a situation where if you set the playback position to the end of a sequence while it's playing, the sequence will stop playing but won't re-evaluate to the end of the sequence. #jira UE-43966 Change 3406726 on 2017/04/24 by Max.Chen Sequencer: Added StopAndGoToEnd() function to player #jira UE-43967 Change 3406727 on 2017/04/24 by Max.Chen Sequencer: Add cinematic options to level sequence player #jira UE-39388 Change 3407097 on 2017/04/25 by Yannick.Lange VR Editor: Temp asset for free rotation handle gizmo. Change 3407123 on 2017/04/25 by Michael.Dupuis #jira UE-44329: Only display the message in attended mode and editor (so user can actually perform the save) Change 3407135 on 2017/04/25 by Max.Chen Sequencer: Load level sequence asynchronously. #jira UE-43807 Change 3407137 on 2017/04/25 by Shaun.Kime Fixing comments to refer to correct function name. Change 3407138 on 2017/04/25 by Max.Chen Sequencer: Mark actor that the spawnable duplicates as a transient so that the level isn't dirtied. Then clear the transient flag on the object template. #jira UE-30007 Change 3407139 on 2017/04/25 by Max.Chen Sequencer: Fix active marker in sub, cinematic, control rig sections. #jira UE-44235 Change 3407229 on 2017/04/25 by Max.Chen Sequencer: Prioritize buttons over label. #jira UE-26813 Change 3407343 on 2017/04/25 by Matt.Kuhlenschmidt Added a world accessor to blutilties so they can operate on the editor world (spawn,destroy actors etc) Change 3407401 on 2017/04/25 by Nick.Darnell Slate - Adding a Round function to SlateRect. Also adding a way to convert a Transform2D to a full matrix. Change 3407842 on 2017/04/25 by Matt.Kuhlenschmidt Made AssetTools a uobject interface so it could be access from script. A few methods were deprecated and renamed to enforce a consistent UI. Now all asset tools methods that expose a dialog have "WithDialog" in their name to differentiate them from methods that do not open dialogs and could be used by scripts for automation. C++ users may still access IAssetTools but should not ever need to use the UAssetTools interface class Change 3407890 on 2017/04/25 by Matt.Kuhlenschmidt Removed temp method Change 3408084 on 2017/04/25 by Matt.Kuhlenschmidt Exposed source control helpers to script Change 3408163 on 2017/04/25 by Matt.Kuhlenschmidt Deprecated actor grouping methods on UUnrealEdEngine and moved their functionality into their own class( UActorGroupingUtils). There is a new editor config setting to set which grouping utils class is used and defaults to the base class. The new utility methods are exposed to script. Change 3408220 on 2017/04/25 by Alex.Delesky #jira UE-43387 - The Levels window will now support the organization of streaming levels using editor-only folders. Change 3408239 on 2017/04/25 by Matt.Kuhlenschmidt Added a file helpers API to script. This one is a wrapper around FEditorFileUtils for now to work around some issues exposing legacy methods to script but FEditorFileUtils will be deprecated soon Change 3408314 on 2017/04/25 by Jamie.Dale Fixed typo Change 3408911 on 2017/04/25 by Max.Chen Level Editor: Delegate for when viewport tab content changes. #jira UE-37805 Change 3408912 on 2017/04/25 by Max.Chen Sequencer: Transport controls are added when viewport content changes and only to viewports that support it (ie. cinematic viewport doesn't allow it since it has its own transport controls). This fixes issues where transport controls wouldn't be visible in newly created viewports and also would get disabled when switching from default to cinematic and back to default. #jira UE-37805 Change 3409073 on 2017/04/26 by Yannick.Lange VR Editor: Fix starting point of lasers. Change 3409330 on 2017/04/26 by Matt.Kuhlenschmidt Fix CIS Change 3409497 on 2017/04/26 by Alexis.Matte Fix crash importing animation with skeleton that do not match the fbx skeleton. #jira UE-43865 Change 3409530 on 2017/04/26 by Michael.Dupuis #jira UE-44329: Only display the log if we're not running a commandlet Change 3409559 on 2017/04/26 by Alex.Delesky #jira none - Fixing case of header include for CL 3408220 Change 3409577 on 2017/04/26 by Yannick.Lange VR Editor: being able to push/pull along the laser using touchpad or analog stick when transforming object towards laser impact. Change 3409614 on 2017/04/26 by Max.Chen Sequencer: Add Scrub() to movie scene player. Change 3409658 on 2017/04/26 by Jamie.Dale Made the handling of null item selection consistent in SComboBox If the selection was initially null and the combo was closed, it would previously pass through the null entry to its child SListView, which would then always think the selection was changing when the combo was opened and cause it to immediately close again. Change 3409659 on 2017/04/26 by Jamie.Dale Added preset Unicode block range selection to the font editor UI #jira UE-44312 Change 3409755 on 2017/04/26 by Max.Chen Sequencer: Back out bIsUISound for scrubbing. Change 3410015 on 2017/04/26 by Max.Chen Sequencer: Fix crash on asynchronous level sequence player load. #jira UE-43807 Change 3410094 on 2017/04/26 by Max.Chen Slate: Enter edit mode and return handled if not read only. Change 3410151 on 2017/04/26 by Michael.Trepka Fix for building EngineTest project on Mac Change 3410930 on 2017/04/27 by Matt.Kuhlenschmidt Expose editor visibility methods on Actor to blueprint/script Change 3411164 on 2017/04/27 by Matt.Kuhlenschmidt Fix crash when repeatedly spaming ctrl+s and ctrl+shift+s to save. PR #3511: UE-44098: Replace check with if-statement (Contributed by projectgheist) Change 3411187 on 2017/04/27 by Jamie.Dale No longer attempt to use the game culture override in the editor Change 3411443 on 2017/04/27 by Alex.Delesky #jira UE-43730, UE-43703 - Material Instances will now correctly use their preview meshes when being edited, or will use their parent's preview mesh if their preview mesh has not been set and the parent's is valid. Change 3411809 on 2017/04/27 by Max.Chen Sequencer: Prioritize buttons over label. #jira UE-26813 Change 3411810 on 2017/04/27 by Cody.Albert Scrollbox now properly calls Invalidate while scrolling Change 3411892 on 2017/04/27 by Alex.Delesky #jira UE-40031 PR #3065: Ignore .vs folder when initializing git projects (Contributed by mattiascibien) Change 3412002 on 2017/04/27 by Jamie.Dale Fixed crash when using an invalid regex pattern #jira UE-44340 Change 3412009 on 2017/04/27 by Cody.Albert Fixed Invalidation Panel to apply scale only to volatile elements, correcting an issue with Cache Relative Positions Change 3412631 on 2017/04/27 by Jamie.Dale Implemented support for hiding empty folders in the Content Browser "Empty" in this case is defined as folders that recursively don't contain assets or classes. Folders that have been created by the user or have at any point contained content during the current editing session are always shown. This also fixes some places where the content filters would miss certain folders (usually due to missing checks when processing AssetRegistry events), and allows asset and path views to be synced to folder selections (as well as asset selections), which improves the experience when renaming folders, and navigating the Content Browser history. #jira UE-40038 Change 3413023 on 2017/04/27 by Max.Chen Sequencer: Fix filtering so that it includes parent nodes only and doesn't recurse through to add their children. Change 3413309 on 2017/04/28 by Jamie.Dale Fixed shadow warning Change 3413327 on 2017/04/28 by Jamie.Dale Added code to sanitize some known strings before passing them to ICU Change 3413486 on 2017/04/28 by Matt.Kuhlenschmidt Allow AssetRenameData to be exposed to blueprints/script Change 3413630 on 2017/04/28 by Jamie.Dale Moved FUnicodeBlockRange into Slate so that it can be used for C++ defined fonts as well as those defined in the font editor Change 3414164 on 2017/04/28 by Jamie.Dale Removing some type-unsafe placement new array additions Change 3414497 on 2017/04/28 by Yannick.Lange ViewportInteraction: - Add arcball sphere asset. - Add opacity parameter to translucent gizmo material. Change 3415021 on 2017/04/28 by Max.Chen Sequencer: Remove spacer nodes at the top and bottom of the node tree. This fixes the artifact of having spaces at the top and bottom which get selected when you click on the space and when you press Home and End to go to the top or bottom of the tree. #jira UE-28931 Change 3415786 on 2017/05/01 by Matt.Kuhlenschmidt #rn PR #3518: Allow PaintedVertices to be sized down (Contributed by jasoncalvert) Change 3415836 on 2017/05/01 by Alex.Delesky #jira UE-39203 - You can now summon the reference viewer from the content browser using the keyboard shortcut. Change 3415837 on 2017/05/01 by Alex.Delesky #jira UE-34947 - When the user attempts to download an IDE from within the editor (due to needing one to add a C++ class), the window that hosts the widget will now close if it's a modal window. Change 3415839 on 2017/05/01 by Alex.Delesky #jira UE-42049 PR #3266: Profiler: added Thread filter (Contributed by StefanoProsperi) Change 3415842 on 2017/05/01 by Michael.Dupuis #jira UE-44514 : Removed the warning as it's causing more issue than it fixes. Change 3416511 on 2017/05/01 by Matt.Kuhlenschmidt Make UHT generate WITH_EDITOR guards around UFunctions generated in a WITH_EDITOR C++ block. This prevents these functions from being generated in non-editor builds Change 3416520 on 2017/05/01 by Yannick.Lange Viewport Interaction: - Toggle ViewportWorldInteraction with command for desktop testing without having to use VREditor. - Add helper function to add a unique extension by subclass. Change 3416956 on 2017/05/01 by Matt.Kuhlenschmidt Exposed EditorLevelUtils to script. This allows creation of streaming levels, setting the current level and moving actors between levels Change 3416964 on 2017/05/01 by Matt.Kuhlenschmidt Prevent foliage from marking actors dirty as HISM components are added and removed from the scene. Change 3416988 on 2017/05/01 by Lauren.Ridge PR #3122: UE-40262: Color tabs according to asset type (Contributed by projectgheist) Changed the highlight style to be around the icon and match the content browser color and style. #jira UE-40437 Change 3418014 on 2017/05/02 by Yannick.Lange Viewport Interaction: Remove material members from base transform gizmo and use asset container to get materials. Change 3418087 on 2017/05/02 by Lauren.Ridge Adding minor tab icon surrounds Change 3418602 on 2017/05/02 by Jamie.Dale Fixed a crash that could occur due to bad data in the asset registry It was possible for FAssetRegistry::PrioritizeSearchPath to re-order the BackgroundAssetResults in response to callback from FAssetRegistry::AssetSearchDataGathered, which caused integrity issues with the array, and would lead to results being missed, or an existing result being processed twice (which due to certain assumptions would result in it being deleted, and bad data being left in the asset registry). These results lists now use a custom type that prevents the mutation of items that have already been processed but not yet trimmed. Change 3418702 on 2017/05/02 by Matt.Kuhlenschmidt Fix USD files that reference other USD files not finding the referenced files by relative path. Requires USD third party changes only Change 3419071 on 2017/05/02 by Arciel.Rekman UBT: optimize FixDeps step on Linux. - Removes the need to re-link unrelated engine libraries when recompiling a code project. - Makes builds faster on machines with multiple cores. - The module that has circularly referenced dependencies is considered cross-referenced itself. - Tested compilation on Linux (native & cross) and Mac (native). Change 3419240 on 2017/05/02 by Cody.Albert Bound widgets in animation tracks can no longer be swapped with widgets from a different widget blueprint, which would lead to a crash Change 3420011 on 2017/05/02 by Max.Chen Sequencer: Fix scrubber hit testing so that the time scrubber is really favored over the playback ranges. #jira UE-44569 Change 3420507 on 2017/05/03 by Lauren.Ridge Selecting a camera or other preview actor in VR Mode now creates a floating in-world viewport. Also deselect all Actors when moving into and out of VR Mode Change 3420643 on 2017/05/03 by andrew.porter QAGame - Adding test content to QA-Sequencer for using spawnables with override bindings Change 3420678 on 2017/05/03 by andrew.porter QAGame: Updating override binding sequence Change 3420961 on 2017/05/03 by Jamie.Dale Exposed some missing Internationalization functions to BPs Change 3422767 on 2017/05/04 by Yannick.Lange ViewportInteraction: Extensibility for dragging on gizmo handles Removed ETransformGizmoInteractionType completely and replaced it with UViewportDragOperation. Using the ETransformGizmoInteractionType enum made external extensibility impossible. Now every gizmo handle group has a component called UViewportDragOperationComponent which holds a UViewportDragOperation of a certain type. This UViewportDragOperation can be inherited to create a custom method to calculate a new transform for the objects when dragging the gizmo handle. Change 3422789 on 2017/05/04 by Yannick.Lange ViewportInteraction: Fix duplicate console variable. Change 3422817 on 2017/05/04 by Andrew.Rodham Sequencer: Changed level sequence object references to always use a package and object path based lookup - Newly created binding references now consist of a package name and an inner object path for actors, and just an inner object path for components. The package name is fixed up dynamically for PIE, which means it can work correctly for multiplayer PIE, and when levels are streamed in during PIE (functionality previously unavailable to lazy object ptrs) - Added a way of rebinding all possessable objects in the current sequence (Rebind Possessable References) - Level sequence binding references no longer use native serialization now that TMap serialization is fully supported. - Multiple bindings are now supported in the API layer of level sequence references, although this is not yet exposed to the sequencer UI. #jira UE-44490 Change 3422826 on 2017/05/04 by Andrew.Rodham Removed erroneous braces Change 3422874 on 2017/05/04 by James.Golding Adding MaterialEditingLibrary to allow manipulation of materials within the editor. - Refactored code out of MaterialEditor where possible Marked some material types as BP-accessible, to allow to editor-Blueprint access. Remove unused 'bSkipPrim' property from Set/CheckMaterialUsage Change 3422942 on 2017/05/04 by Lauren.Ridge Tab padding adjustment to allow tabs with icons to be the same height as tabs without Change 3423090 on 2017/05/04 by Jamie.Dale Added a way to get the source package path for a localized package path Added tests for the localized package path checks. Change 3423133 on 2017/05/04 by Jamie.Dale Fixed a bug where a trailing quote without a newline at the end of a CSV file would be added to the parsed text rather than converted to a terminator Change 3423301 on 2017/05/04 by Max.Chen Sequencer: Add JumpToPosition which updates to a position in a scrubbing state. Change 3423344 on 2017/05/04 by Jamie.Dale Updated localized asset group caching so that it works in non-cooked builds Change 3423486 on 2017/05/04 by Lauren.Ridge Fixing deselection code in VWI Change 3423502 on 2017/05/04 by Jamie.Dale Adding automated localization tests Change 3424219 on 2017/05/04 by Yannick.Lange - Hide FWidget when ViewportWorldInteraction starts. - Added option to EditorViewportClient to not render FWidget without using FWidget::SetDefaultVisibility. Change 3425116 on 2017/05/05 by Matt.Kuhlenschmidt PR #3527: Modified comments (Contributed by projectgheist) Change 3425239 on 2017/05/05 by Matt.Kuhlenschmidt Fix shutdown crash in projects that unregister asset tools in UObjects being destroyed at shutdown. Change 3425241 on 2017/05/05 by Max.Chen Sequencer: Components aren't deselected from the sequencer tree view when they get deselected in the viewport/outliner. #jira UE-44559 Change 3425286 on 2017/05/05 by Jamie.Dale Text duplicated as part of a widget archetype now maintains its existing key #jira UE-44715 Change 3425477 on 2017/05/05 by Andrew.Rodham Sequencer: Do not deprecate legacy object references since they still need to be serialized on save - Also re-add identical via equality operator so that serialization works again Change 3425681 on 2017/05/05 by Jamie.Dale Fixed fallback font height/baseline measuring Change 3426137 on 2017/05/05 by Jamie.Dale Removing PPF_Localized It's an old UE3-ism that's no longer tested anywhere Change 3427434 on 2017/05/07 by Yannick.Lange ViewportInteraction: Null check for viewport. Change 3427905 on 2017/05/08 by Matt.Kuhlenschmidt Removed the concept of a global selection annotation. This poses a major problem when more than one selection set is clearing it. If more than one selection set is in a transaction the last one to be serialized will clear and rebuild the annotation thus causing out of sync issues with component and actor selection sets. This change introduces the concept of a per-selection set annotation to avoid being out of sync. Actor and ActorComponent now override IsSelected (editor only) to make use of these selections. #jira UE-44655 Change 3428738 on 2017/05/08 by Matt.Kuhlenschmidt Fix other usage of USelection not having a selection annotation #jira UE-44786 Change 3429562 on 2017/05/08 by Matt.Kuhlenschmidt Fix crash on platforms without a cursor #jira UE-44815 Change 3429862 on 2017/05/08 by tim.gautier QAGame: Enable Include CrashReporter in Project Settings Change 3430385 on 2017/05/09 by Lauren.Ridge Resetting user focus to game viewport after movie finishes playback #jira UE-44785 Change 3430695 on 2017/05/09 by Lauren.Ridge Fix for crash on leaving in the middle of a loading movie #jira UE-44834 Change 3431234 on 2017/05/09 by Matt.Kuhlenschmidt Fixed movie player setting all users to focus which breaks VR controllers [CL 3432852 by Matt Kuhlenschmidt in Main branch]
2017-05-10 11:49:32 -04:00
#include "ActorGroupingUtils.h"
//////////////////////////////////////////////////////////////////////////
// FEditorViewportSnapping
class FEditorViewportSnapping : public ISnappingPolicy
{
public:
// FEditorViewportSnapping interface
virtual void SnapScale(FVector& Point, const FVector& GridBase) override;
virtual void SnapPointToGrid(FVector& Point, const FVector& GridBase) override;
virtual void SnapRotatorToGrid(FRotator& Rotation) override;
virtual void ClearSnappingHelpers(bool bClearImmediately = false) override;
virtual void DrawSnappingHelpers(const FSceneView* View, FPrimitiveDrawInterface* PDI) override;
// End of FEditorViewportSnapping interface
bool IsSnapToGridEnabled();
bool IsSnapRotationEnabled();
bool IsSnapScaleEnabled();
/**
* @return true if snapping to vertices is enabled
*/
bool IsSnapToVertexEnabled(bool bIsPivot = false);
/**
* @return true if snapping actors to other actors is enabled
*/
bool IsSnapToActorEnabled();
/** Set user setting for actor snap. */
void EnableActorSnap(bool bEnable);
/** Access user setting for distance. Fractional 0.0->100.0 */
float GetActorSnapDistance(bool bScalar = false);
/** Set user setting for distance. Fractional 0.0->100.0 */
void SetActorSnapDistance(float Distance);
/**
* Attempts to snap the selected actors to the nearest other actor
*
* @param DragDelta The current world space drag amount
* @param ViewportClient The viewport client the user is dragging in
*/
bool SnapActorsToNearestActor( FVector& DragDelta, FLevelEditorViewportClient* ViewportClient );
/**
* Snaps actors to the nearest vertex on another actor
*
* @param DragDelta The current world space drag amount that will be modified to account for snapping to a vertex
* @param ViewportClient The viewport client the user is dragging in
* @return true if anything was snapped
*/
bool SnapDraggedActorsToNearestVertex( FVector& DragDelta, FLevelEditorViewportClient* ViewportClient );
/**
* Snaps a delta drag movement to the nearest vertex
*
* @param BaseLocation Location that should be snapped before any drag is applied
* @param DragDelta Delta drag movement that should be snapped. This value will be updated such that BaseLocation+DragDelta is the nearest snapped verted
* @param ViewportClient The viewport client being dragged in.
* @return true if anything was snapped
*/
bool SnapDragLocationToNearestVertex( const FVector& BaseLocation, FVector& DragDelta, FLevelEditorViewportClient* ViewportClient, bool bIsPivot = false );
/**
* Snaps a location to the nearest vertex
*
* @param Location The location to snap
* @param MouseLocation The current 2d mouse location. Vertices closer to the mouse are favored
* @param ViewportClient The viewport client being used
* @param OutVertexNormal The normal at the closest vertex
* @return true if anything was snapped
*/
bool SnapLocationToNearestVertex( FVector& Location, const FVector2D& MouseLocation, FLevelEditorViewportClient* ViewportClient, FVector& OutVertexNormal, bool bDrawVertHelpers );
bool SnapToBSPVertex( FVector& Location, FVector GridBase, FRotator& Rotation );
private:
/** Vertex snapping implementation */
FVertexSnappingImpl VertexSnappingImpl;
};
//////////////////////////////////////////////////////////////////////////
// FEditorViewportSnapping
bool FEditorViewportSnapping::IsSnapToGridEnabled()
{
return GetDefault<ULevelEditorViewportSettings>()->GridEnabled && !IsSnapToVertexEnabled();
}
bool FEditorViewportSnapping::IsSnapRotationEnabled()
{
// Ask Current Editor Mode if Rotation Snap is enabled
return GLevelEditorModeTools().IsSnapRotationEnabled();
}
bool FEditorViewportSnapping::IsSnapScaleEnabled()
{
return GetDefault<ULevelEditorViewportSettings>()->SnapScaleEnabled;
}
bool FEditorViewportSnapping::IsSnapToVertexEnabled(bool bIsPivot)
{
if( GetDefault<ULevelEditorViewportSettings>()->bSnapVertices )
{
return true;
}
else if( GCurrentLevelEditingViewportClient )
{
FLevelEditorModule& LevelEditor = FModuleManager::GetModuleChecked<FLevelEditorModule>( TEXT("LevelEditor") );
const FLevelEditorCommands& Commands = LevelEditor.GetLevelEditorCommands();
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3621452) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3567301 by Arciel.Rekman Linux: fix for importing failure when clicking shortcuts (UE-47932). - Slate dialog would return incorrect relative paths (not matching CWD) if Engine or Project shortcuts were used. #jira UE-47932 Change 3567687 by Arciel.Rekman Minor fixes to gdb pretty printers by icculus. Change 3568024 by Arciel.Rekman Made SDL_SetWindowInputFocus() wait until window is viewable (UE-33369). - Pull request #2608 contributed by Ereski. - Updated x86_64 lib only (anticipating more changes to SDL). #coderview Cengiz.Terzibas, Ryan.Gordon Change 3568173 by Max.Chen Movie Scene Capture: Delay on shot boundaries by setting the sequencer play rate to 0. This allows particles, TAA, and other effects to settle on the shot cuts. #jira UE-44598 Change 3568174 by Max.Chen Sequencer: Added option to rerun construction scripts on bound actors in the sequence every frame. #jira UE-31193 Change 3568331 by Matt.Kuhlenschmidt PR #3850: Add extensible source navigation service (Contributed by mhutch) Change 3568350 by Matt.Kuhlenschmidt PR #3851: Add argument to pass params to standalone play session (Contributed by mhutch) Change 3568387 by Matt.Kuhlenschmidt PR #3852: Add FEditorDelegates::BeginLocalPlay event (Contributed by mhutch) Change 3568541 by Arciel.Rekman Merged Icculus' patch for copy-paste (UE-40071). - Alas does not seem to fix inability to copy/paste between Output log and kate. - Updated x86_64 lib only (anticipating more changes). Change 3568547 by Arciel.Rekman Fix OpenGL queries reused after deletion. Change 3568790 by Matt.Kuhlenschmidt PR #3857: Loading screen widgets not scaled correctly (Contributed by projectgheist) Change 3568900 by Alexis.Matte Fix the fbx re-import factory handler to say failed in case there was no geometry to import. #jira UE-47506 Change 3568902 by Alexis.Matte Reduce memory footprint when importing large FBX scene PR #3834 #jira UE-47833 Change 3569061 by Arciel.Rekman Linux: remove unnecessary symbols for MSVC visualizers. - Reported by ASan as collision because they exist in each DSO. Change 3569782 by Cody.Albert Updated ImportAssets Commandlet help text to properly reflect supported features. Change 3569843 by Arciel.Rekman SDL: add logic to select headless EGL device. - SDL will try to guess which device is GPU using CUDA device id (can also be hinted explicitly). - Also fixes the problem of engine not starting on some drivers that don't support the necessary EGL extensions. Change 3570234 by Max.Chen Sequencer: Import FBX settings. Added settings to toggle force front x axis and whether to create cameras that don't already exist in the level. #jira UE-46754 Change 3570578 by Arciel.Rekman Linux: make FAnsiMalloc compatible with malloc()/free(). - Prerequisite for ASan. Also helps fringe cases when we have to use FAnsiMalloc. Change 3571015 by Alexis.Matte Issue warning when we found zero normal, tangent or binormal #jira UE-46419 Change 3571376 by Jamie.Dale Force a unique package localization ID when loading packages for diffing Change 3571412 by Jamie.Dale Removed unused setting Change 3571487 by Alexis.Matte fix speed tree import cancel workflow #jira UE-47482 Change 3571614 by Jamie.Dale Games now use the native culture of any of the game targets as the fallback (rather than always using English) This replaces the previously removed redundant setting from CL# 3571412 Change 3572649 by Jamie.Dale SavePackageHelper now always honors KeepObjectFlags Change 3572730 by Matt.Kuhlenschmidt Guard against crash in the details panel when there is a message in the queue and something scrolls into view when the list has been invalidated #jira UE-48037 Change 3572773 by Matt.Kuhlenschmidt Guard against high res screenshot crashing if the requested image size doesnt match the image data size #jira UE-47765 Change 3572813 by Michael.Trepka Workaround for a mysterious issue in Xcode 9 beta 3 and 4 which makes it generate -Wnullability-inferred-on-nested-type warnings/errors in MetalDebugCommandEncoder.h even though we tell Clang to ignore them in MacPlatformCompilerPreSetup.h Change 3573043 by Arciel.Rekman FAnsiMalloc: fix compile issue (UE-48066). #jira UE-48066 Change 3573236 by Arciel.Rekman Linux: add UnrealLightmass to the installed build. - Was also requested by a licensee on UDN. Change 3573705 by Arciel.Rekman SDL: update UE4 fork to the latest trunk (UETOOL-1242). - Revision 11184 form 2017-08-04: http://hg.libsdl.org/SDL/rev/04063928c4a8 - Change by icculus (Ryan Gordon). - Rebuilt x86_64 library only for now. Change 3573741 by Arciel.Rekman Fix crash when capturing a movie (UE-48093). #jira UE-48093 Change 3574389 by Max.Chen Sequencer: Array bounds check. #jira UE-48095 Change 3574399 by Max.Chen Sequencer: Fix crash in removing delegate #jira UE-47461 Change 3574415 by Max.Chen Sequencer: Put level visibility tracks in the SpawnObjects evaluation group to ensure levels are streamed before any possessable bindings are resolved Change 3574416 by Max.Chen Prevent slow task feedback from performing slow operations (flushing rendering commands, checking if shaders are initialized) when there are no modal dialogs open Change 3574726 by Matt.Kuhlenschmidt Focus the details view when actor selection changes if it is not focused Change 3574922 by Michael.Trepka Copy of CL 3574653 by Richard.Wallis XCode Beta 4 Compile fixes. "Inferring '_Nonnull' for pointer type within array is deprecated " Change 3576525 by Nick.Darnell Editor - Data table rows names sort correctly in the property customization. Blueprint - Fixing some crashes due to holding onto raw pointers instead of TWeakObjectPtrs. UMG - SetWidgetClass now reinstances the widget if you change it at runtime. Editor - Deleting actors that are still referenced now at least logs to the console what still references it. Change 3576714 by Nick.Darnell Editor - Build fix. Change 3576770 by Jamie.Dale Removed some dead code It seems to be left over from the first attempt at stable localization keys Change 3578433 by Matt.Kuhlenschmidt Fix content browser settings being per project and having created a "Global" category for one setting Change 3578556 by Max.Chen Editor: Fix toolbar shared ref which was keeping the viewport toolbar around when switching between default and cinematic viewports. #jira UE-48125 Change 3578561 by Matt.Kuhlenschmidt Fix USD importing not respecting DestinationPath for automated import Change 3580124 by Matt.Kuhlenschmidt Fix bogus warning message when a property has an editcondition that is not marked edit aynwhere. This has always been supported and is the correct way to make an editcondition Change 3581936 by Jamie.Dale Restoring defaults for UContentBrowserSettings Change 3582039 by Matt.Kuhlenschmidt High DPI mode changes - Editor viewport screen percentage is now adjusted automatically to account for DPI scaling. By default the scene will be rendered at a lower resolution based on screen percentage calculated based on 100/DPIScale. Users can override this automatic calcuation in the performance options if desired. - DPI awareness is only set on windows in the editor now (still disabled by default) - Fixed hit proxy calculation not working properly with screen percentage - Developers can now register a delegate with SlateApplication to tell when a window's DPI changes Change 3582049 by Matt.Kuhlenschmidt Fix color picker not properly converting FColor properties back to gamma space Change 3582054 by Matt.Kuhlenschmidt Fix mac menus updating during unsafe times such as modal windows and slow tasks #jira UE-47874 Change 3582084 by Jamie.Dale Make sure to update the rendering resources for the active world if reloading its map build data This prevents a crash in the renderer due to it holding onto stale data Change 3582257 by Matt.Kuhlenschmidt Fix widget component spawning widgets on cook #jira UE-48201 Change 3582655 by Matt.Kuhlenschmidt Fix DPI scale not being accounted for when entering immersive. Change 3582706 by Matt.Kuhlenschmidt Fix automation tests Change 3582728 by Matt.Kuhlenschmidt Turn on high dpi by default for windows editor Change 3582732 by Matt.Kuhlenschmidt Turn on high DPI by default for mac editor Change 3583112 by Max.Chen Sequencer: Add OnPlayReverse() event for when playback is in reverse Change 3584130 by Matt.Kuhlenschmidt PR #3897: Git plugin: fix action icon in history window (Contributed by SRombauts) Change 3584237 by Matt.Kuhlenschmidt Added the beginnings of a way to extend the usd importer with a custom resolver class that optionally handles prim identification and mesh and actor spawning. Added a test resolver that handles prims based on usd "kind" metadata. Change 3584535 by Matt.Kuhlenschmidt Fix LOD identification in USD files Change 3587703 by Matt.Kuhlenschmidt Fix tooltip Change 3587901 by Matt.Kuhlenschmidt Fixed USD importing not finding and importing LODs properly Change 3588380 by Matt.Kuhlenschmidt Fix ctrl+w not duplicating on mac #jira UE-46573 Change 3590435 by Jamie.Dale Added support for in-editor previews of localized game text This is configured by the "Preview Game Culture" setting, and will automatically be active when PIE is running (the preview language is also passed to any standalone games that are launched via the editor). This preview can also be used in the UMG editor to preview widgets in different languages. While a preview is running, all editable FText fields are locked-down (read-only) to prevent accidentally clobbering source data with translation data. You can also use this new lock-down feature to prevent any localization changes in your project (set "LockLocalization" to "True" under the "Internationalization" section of either your DefaultGame or DefaultEngine INI). In order to allow the game translations to be used in the editor, we now map the translation to any package localization ID variants when the LocRes data is loaded (or when looking up a specific piece of text). This is needed as the LocRes files only ever contain the "clean" versions of the IDs (without the package localization ID the editor uses), and also means that we no longer need to gather the "editor-only" variants of the text within assets. Change 3592131 by Matt.Kuhlenschmidt Log for newly converted actors being pending kill #jira UE-47464 Change 3592200 by Matt.Kuhlenschmidt Made the class viewer menu function properly on mac. Since it as a nomad tab it wasnt properly inserting itself into the top level menu on mac nor should it since it could be docked anywhere. The filters menu is now consistent with other filters menus Change 3592227 by Matt.Kuhlenschmidt Fix drag drop of actors being offset with high dpi monitors. Change 3592719 by Bradut.Palas #jira UE-45632 - dual key bindings feature My approach was transforming the ActiveChord and DefaultChord into arrays and accessing them through an enum class called EMultipleKeyBindingIndex. A lot of connecting code, function prototypes, and data structures had to be changed to accomodate this. Most menus and tooltip texts are generated using the first valid active shortcut. Change 3592793 by Bradut.Palas Fix compile warnings for InputBindingManager (there were actually hidden bugs among them) Change 3593128 by Matt.Kuhlenschmidt Force low quality mode for background blurs by default on android Change 3593579 by Michael.Dupuis #jira UE-47223 : If we have no world simply return null when GetLandscapeInfo is called Handle the cases in PostEditChange to handle null returned from GetLandscapeInfo Change 3593580 by Michael.Dupuis Added missing shaders while generating thumbnails Change 3593582 by Michael.Dupuis #jira UE-47492 : Make sure LayerInfo is valid before accessing data Change 3593584 by Michael.Dupuis #jira UE-47253: Do not recreate the scene info in simulation mode Change 3593585 by Michael.Dupuis #jira UE-48484: no longer mark the package dirty while generating the GrassMap if they were not existing Change 3593586 by Michael.Dupuis #jira UE-48483 : hide the Rendering property group so user can't by mistake change the actor visibility Change 3593593 by Michael.Dupuis #jira UE-48327: Added guard to prevent crash when using CVarFoliageDiscardDataOnLoad and having invalid foliage in your map Change 3593597 by Michael.Dupuis #jira UE-48309: Do not build the tree if the static mesh is not even loaded yet #jira UE-48340: Properly support the Random stream and partial buffer update #jira UE-48228: Instance from blueprint are now visible in standalone game #jira UE-45854: Crash probably linked to post load called on not loaded static mesh #jira UE-48035: Properly init the per instance render data when creating a new component Only update instance in non archetype or CDO. Change 3594060 by Matt.Kuhlenschmidt Fix high DPI mode being set for non-editor. Also prevent possible crashes due to dll handle for high DPI method being freed before called Change 3594355 by Matt.Kuhlenschmidt Change API help link to point to a website since offline CHM based docs are no longer used #jira UE-48230 Change 3595358 by Matt.Kuhlenschmidt Fixed bad initial window position and sizes for editor windows By default SWindow.ClientSize will assume unscaled window size and will scale it based on DPI as needed. AdjustInitialSizeAndPositionForDPIScale argument can be used to disable this if needed Fixed a dock tabs and the main frame not taking into account dpi scale when saving their layout. Now we always save window size at 1.0 scale and auto scale it based on DPI of the monitor it opens on. #jira UE-48446 Change 3595590 by Matt.Kuhlenschmidt Fix missing includes Change 3595792 by Matt.Kuhlenschmidt Fix style warnings Change 3596418 by Bradut.Palas fixing initial issue with dual keybinds (removed ensure macro to speedup first use of alternate key) Change 3598679 by Max.Chen PR #3872: Fix small typo in ImagePlate Plugin (Contributed by TheCodez) #jira UE-48141 Change 3598720 by Max.Chen Cine Camera: Add toggle to disable constraining the roll when look at tracking is enabled. This allows the user to animate the roll while tracking an object. #jira UE-48316 Change 3600236 by Alexis.Matte Create a LOD Custom Mode in the meshes editor UI. This allow user to compare details values between LODs #jira UE-46822 Change 3600260 by Alexis.Matte Make sure temporary rename do not create redirector #jira UE-48364 Change 3600671 by Lauren.Ridge PR #3913: Fixed 3D preview issue in the material editor (Contributed by YuchenMei) #jira UE-48539 #jira UE-48180 #jira UE-48182 Change 3600812 by Jamie.Dale We now defer the registration of IME contexts until an editable text first gains focus Certain IMEs can have very high per-context costs, so this avoids that cost until we know that we definitely need to use the context #jira UE-48100 Change 3601839 by Matt.Kuhlenschmidt Fix USD import crash with "facevarying" normals Change 3602434 by Jamie.Dale Removing dead code These flags were never being tested or used in any meaningul way Change 3602611 by Jamie.Dale Ensure PackageToReload is non-null #jira UE-46655 Change 3602648 by Jamie.Dale Fixed custom columns with the same name as fixed columns causing infinite duplications in the content browser #jira UE-47392 Change 3602651 by Lauren.Ridge Fix for parameter tooltips not being found #jira UE-47417 Change 3604172 by Bradut.Palas #jira UE-48449 #jira UE-48380 #jira UE-48381 #jira UE-48423 I moved the IsFilenameValidForSaving() function from FEditorFileUtils to FFileHelper so that it is accessible from CollectionManager.cpp in order to validate collection names as file names and no longer trigger any of the bugs. Change 3604210 by Bradut.Palas #jira UE-48718 Regression issue appeared from fixing a crash when using console command "open" Reworked by only refusing to open local URLs in case of client mode and multiprocess being active simultaneously. Change 3604258 by Jamie.Dale IME contexts can now flag themselves as dead to avoid latent IME callbacks trying to access a deleted widget #jira UE-46815 #jira UE-47295 Change 3604312 by Matt.Kuhlenschmidt PR #3931: Fixing a few obvious copy & paste errors. (Contributed by DaveC79) Change 3604352 by Matt.Kuhlenschmidt Fix crash accessing potentially invalid parent layout from a detail category #jira UE-48729 Change 3604402 by Lauren.Ridge Epic Friday - array drag and drop Change 3605228 by Cody.Albert TSets and TMaps should now properly rehash if a key is modified in the details panel. Change 3605275 by Alexis.Matte Merge actor do not keep the material slot name #jira UE-43246 Change 3605715 by Max.Chen Sequencer: Fix cinematic mode getting activated on BeginPlay() instead of OnStartedPlaying(). #jira UE-48770 Change 3606411 by Max.Chen Sequencer: Fix a few player state issues. When paused, calling stop now tears down properly (spawnables are removed, etc). When a level sequence is deleted, tears down properly as well. #jira UE-42008 Change 3606440 by Max.Chen Sequencer: Update spawanble name when the spawnable actor name is changed. #jira UE-47815 Change 3606899 by Lauren.Ridge Disabling enum-based arrays from reordering Change 3606958 by Lauren.Ridge Visual polish on array handles Change 3607733 by Max.Chen Sequencer: Check null in camera cut Change 3607849 by Max.Chen Sequencer: Clip transport controls. #jira UE-48812 Change 3608181 by Max.Chen #jira UE-48813 Correctly set GPlayInEditorID when initializing the PIE gameinstance, which does the initial tick. This fixes autoplay sequences Copy from Dev-Framework Change 3608361 by christopher.biancard QAGame: Submitting test content for Array Element Reorder testing Change 3608512 by Alexis.Matte Add fbx exporter option dialog, support export all and cancel all functionality when doing bulk export. #jira UE-48058 Change 3608629 by Max.Chen Camera Rig: Fix crane and rail not being packaged properly. #jira UE-48829 Change 3609217 by Matt.Kuhlenschmidt Added a lock around access to slate active timers to protect it against race conditions when accessed on the slate movie thread and the game thread Change 3609722 by Alexis.Matte Make sure a warning is log when we cannot export an animation sequence. #jira UE-48390 Change 3609774 by Alexis.Matte Fix the merge actor build LOD scale again, a previous merge erase the fix #jira UE-48156 Change 3609891 by christopher.biancard QAGame: Minor additions for test coverage on Array Element Reorder Change 3610171 by Lauren.Ridge Fixes for reordering metadata, creating actual swap function out of three element functions #jira UE-48823 Change 3610407 by Lauren.Ridge Fixing highlighting and behavior to place dragged row in the spot you release (not below) Change 3610472 by Lauren.Ridge Moving final location logic Change 3610797 by Lauren.Ridge Disabling dragging handles during PIE Change 3611089 by Lauren.Ridge Disabling handles when overall tree is disabled Change 3612479 by Lauren.Ridge Fix for asset contex menu warning #jira UE-46667 Change 3612791 by Michael.Dupuis #jira UE-48914 : Add the possibility to specify if we need CPU access to the instance buffer depending on the usage. Grass should always have CPU access. Change 3612802 by Michael.Dupuis missing file from checkin 3612791 Change 3612805 by Max.Chen Sequencer: Fix crash with null GEditor Copy from Release-4.17 #jira UE-48443 Change 3612806 by Max.Chen Sequencer: Fix crash when capturing a movie with options enabling separate process and close editor. Copy from Release-4.17 #jira UE-48487 Change 3612807 by Max.Chen Sequencer: Fix crash upgrading the time range of a null track. Copy from Release-4.17 #jira UE-48490 Change 3612808 by Max.Chen Sequencer: Fixed dragging skeletal animations causing them to revert back to t-pose Copy from Release-4.17 #jira UE-48367 Change 3612849 by Arciel.Rekman Fix tesselation in packaged Linux projects (UE-24301). - Change by Cengiz.Terzibas. #jira UE-24301 Change 3613022 by Nick.Darnell Editor - Fixing a crash on load with a null CoordIndex json node. Change 3613030 by Matt.Kuhlenschmidt PR #3932: UE-48693: if instead of while statement (Contributed by projectgheist) #jira UE-48747 Change 3613047 by Matt.Kuhlenschmidt PR #3933: Git plugin: add "branch source" in history window (Contributed by SRombauts) Change 3613050 by Matt.Kuhlenschmidt PR #3942: Sort Data Table Structures Alphabetically (Contributed by Nick-Pearson) Change 3613062 by Matt.Kuhlenschmidt PR #3939: Fix a typo in RecordQualityLevelsAnalytics(). (Contributed by samhocevar) Change 3613241 by Nick.Darnell Editor - Fixing the content browser's view settings to be project agnostic, and they will start saving again. Change 3613329 by Lauren.Ridge Moving favorite levels to a standard submenu so they also work on Mac Change 3613344 by Nick.Darnell Editor - Fixing the achorgrid show up as white in HDPI mode, seems because we were upsampling the image, the blend was between dark and a transparent white, so that caused everything to turn white in HDPI mode. #jira UE-48921 Change 3613380 by Matt.Kuhlenschmidt Fix FBX window being off the screen in high DPI #jira UE-48872 Change 3614598 by Matt.Kuhlenschmidt Fixed Sequencer Keyframes appearing out of place on High DPI Monitors #jira UE-48915 Change 3614625 by Matt.Kuhlenschmidt Fixed not being able to click on BSP correctly in high dpi #jira UE-48947 Change 3614672 by Matt.Kuhlenschmidt Fix combo box windows being larger than necessary on high dpi monitors #jira UE-48908 Change 3614699 by Matt.Kuhlenschmidt Fix typo #jira UE-48941 Change 3615011 by Matt.Kuhlenschmidt Fix color picker calculation appearing offscreen for high dpi Change 3615013 by Michael.Dupuis #jira UE-48897: Properly rebuild the tree when reapplying instance to the component Change 3615014 by Colin.Benoit Sequencer Recorder test content Change 3615048 by Colin.Benoit Sequencer Recorder: more test content Change 3615118 by Lauren.Ridge Updating realtime state of viewports to also change when settings toggled #jira UE-48884 Change 3615127 by Lauren.Ridge Remove delegate binding on viewport destruction Change 3615180 by Bradut.Palas #jira UE-48167 profiler crash Don't duplicate the graph data when rebuilding because that completely voids the OneToOneMapping mechanism, resulting in the crash. Looking up objects in the mapping would always return null because the mapping contains the old addresses, before the rebuild. One option would have been to completely rebuild the mapping according to the duplicate graph, which would be dubious because the duplicate method isn't specifically designed so that the result would replace the source. But it looks like duplicating the data is not needed, it's safe to rebuild in-place, RebuildForFilter() doesn't do anything illegal with the objects. This is also the only purpose and the only reference of the function. Change 3615232 by Lauren.Ridge Adding input handling to the material editor viewport client #jira UE-48909 Change 3615703 by Jamie.Dale Fixed crash when fixing up references after a package rename failed #jira UE-48856 Change 3615752 by Matt.Kuhlenschmidt More generic fix for color picker and other windows that use CalculatePopupWindowPostion not accounting for DPI scale Change 3615907 by Jamie.Dale Fixed some crashes caused by CL# 3600812 Change 3616031 by Matt.Kuhlenschmidt Added guard against invalid blueprints (ones without a generated class) being trying to be opened in the property matrix and failing #jira UE-48986 Change 3616151 by Arciel.Rekman Fixing adding array elements in config. - "+Blah=Foo" will do Blah.AddUnique(Foo) - ".Blah=Foo" will do Blah.Add(Foo) - See JoshA re: why (also see: https://udn.unrealengine.com/questions/388157/incorrect-behavior-in-configcacheinicpp.html?childToView=389307) Change 3616439 by Andrew.Porter QAGame: Updating level visibility content in sequencer smoke map Change 3616441 by Matt.Kuhlenschmidt Fix more sequencer track offsetting with DPI scale #jira UE-48981 Change 3617263 by Max.Chen Sequencer: Fix crash in level visibility teardown. Null playback context. #jira UE-49012 Change 3617316 by Max.Chen Sequencer: Fixed a regression where the frame rate isn't getting initialized for a movie scene. Change 3617648 by Matt.Kuhlenschmidt Adding some windows specific logging around setting or failing to set process dpi awareness Change 3617665 by Matt.Kuhlenschmidt Guard against layers module not being loaded in keybinding automation test Change 3617731 by Arciel.Rekman Fix crashes on AMD Mesa drivers (UE-48374). - Do not expose unnecessary symbols from libelf.a to avoid symbol collision with system library used by drivers. Change 3617923 by Bradut.Palas #jira UE-47072 Editor was crashing because deleted actor was not cleaned properly from asset editors. Changed IAssetEditorInstance to offer a function for deleting an object from the editor. Change 3618088 by Matt.Kuhlenschmidt Guard against crash with potentially invalid worlds in preview scenes #jira UE-48997 Change 3618373 by Matt.Kuhlenschmidt Force worldsettings to be hidden in editor so that it is not considered for selection #jira UE-48996 Change 3618464 by Max.Chen Sequencer: Fix regression where spawnables don't play because they're defined as temporary editor actors. #jira UE-48923 Change 3619789 by Matt.Kuhlenschmidt Fix DPI scale warnings in any kind of headless editor mode Change 3619802 by Jamie.Dale Fixed deprecation warning in malloc profiler Change 3619841 by Matt.Kuhlenschmidt Fix missing icons in the package project menu #jira UE-48674 Change 3619991 by Lauren.Ridge Fix typo in transaction message #jira UE-48993 Change 3620086 by Lauren.Ridge Moving realtime viewport logic to refresh instead of construct so it is always triggered upon opening a new material editor #jira UE-48884 Change 3620616 by Matt.Kuhlenschmidt Fix up file Change 3621002 by Matt.Kuhlenschmidt Back out change to apply scaling rules in loading screens since blueprint based DPI scaling rule classes will not have been created yet #jira UE-49125 Change 3621049 by Arciel.Rekman Fix a build error. - Also make sure that we don't print confusing message when no messagebox can be shown (this code changed during the merge). Change 3621064 by Arciel.Rekman Deleted too much in the previous changelist. Change 3621369 by Matt.Kuhlenschmidt Fix keybindings automation test failing due to multiple entries in the active choords array pointing to the same thing #jira UE-49131 [CL 3621569 by Matt Kuhlenschmidt in Main branch]
2017-08-31 21:51:42 -04:00
bool bIsChordPressed = false;
for (uint32 i = 0; i < static_cast<uint8>(EMultipleKeyBindingIndex::NumChords); ++i)
{
EMultipleKeyBindingIndex ChordIndex = static_cast<EMultipleKeyBindingIndex> (i);
const FInputChord& Chord = bIsPivot ? (*Commands.HoldToEnablePivotVertexSnapping->GetActiveChord(ChordIndex)) : (*Commands.HoldToEnableVertexSnapping->GetActiveChord(ChordIndex));
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3621452) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3567301 by Arciel.Rekman Linux: fix for importing failure when clicking shortcuts (UE-47932). - Slate dialog would return incorrect relative paths (not matching CWD) if Engine or Project shortcuts were used. #jira UE-47932 Change 3567687 by Arciel.Rekman Minor fixes to gdb pretty printers by icculus. Change 3568024 by Arciel.Rekman Made SDL_SetWindowInputFocus() wait until window is viewable (UE-33369). - Pull request #2608 contributed by Ereski. - Updated x86_64 lib only (anticipating more changes to SDL). #coderview Cengiz.Terzibas, Ryan.Gordon Change 3568173 by Max.Chen Movie Scene Capture: Delay on shot boundaries by setting the sequencer play rate to 0. This allows particles, TAA, and other effects to settle on the shot cuts. #jira UE-44598 Change 3568174 by Max.Chen Sequencer: Added option to rerun construction scripts on bound actors in the sequence every frame. #jira UE-31193 Change 3568331 by Matt.Kuhlenschmidt PR #3850: Add extensible source navigation service (Contributed by mhutch) Change 3568350 by Matt.Kuhlenschmidt PR #3851: Add argument to pass params to standalone play session (Contributed by mhutch) Change 3568387 by Matt.Kuhlenschmidt PR #3852: Add FEditorDelegates::BeginLocalPlay event (Contributed by mhutch) Change 3568541 by Arciel.Rekman Merged Icculus' patch for copy-paste (UE-40071). - Alas does not seem to fix inability to copy/paste between Output log and kate. - Updated x86_64 lib only (anticipating more changes). Change 3568547 by Arciel.Rekman Fix OpenGL queries reused after deletion. Change 3568790 by Matt.Kuhlenschmidt PR #3857: Loading screen widgets not scaled correctly (Contributed by projectgheist) Change 3568900 by Alexis.Matte Fix the fbx re-import factory handler to say failed in case there was no geometry to import. #jira UE-47506 Change 3568902 by Alexis.Matte Reduce memory footprint when importing large FBX scene PR #3834 #jira UE-47833 Change 3569061 by Arciel.Rekman Linux: remove unnecessary symbols for MSVC visualizers. - Reported by ASan as collision because they exist in each DSO. Change 3569782 by Cody.Albert Updated ImportAssets Commandlet help text to properly reflect supported features. Change 3569843 by Arciel.Rekman SDL: add logic to select headless EGL device. - SDL will try to guess which device is GPU using CUDA device id (can also be hinted explicitly). - Also fixes the problem of engine not starting on some drivers that don't support the necessary EGL extensions. Change 3570234 by Max.Chen Sequencer: Import FBX settings. Added settings to toggle force front x axis and whether to create cameras that don't already exist in the level. #jira UE-46754 Change 3570578 by Arciel.Rekman Linux: make FAnsiMalloc compatible with malloc()/free(). - Prerequisite for ASan. Also helps fringe cases when we have to use FAnsiMalloc. Change 3571015 by Alexis.Matte Issue warning when we found zero normal, tangent or binormal #jira UE-46419 Change 3571376 by Jamie.Dale Force a unique package localization ID when loading packages for diffing Change 3571412 by Jamie.Dale Removed unused setting Change 3571487 by Alexis.Matte fix speed tree import cancel workflow #jira UE-47482 Change 3571614 by Jamie.Dale Games now use the native culture of any of the game targets as the fallback (rather than always using English) This replaces the previously removed redundant setting from CL# 3571412 Change 3572649 by Jamie.Dale SavePackageHelper now always honors KeepObjectFlags Change 3572730 by Matt.Kuhlenschmidt Guard against crash in the details panel when there is a message in the queue and something scrolls into view when the list has been invalidated #jira UE-48037 Change 3572773 by Matt.Kuhlenschmidt Guard against high res screenshot crashing if the requested image size doesnt match the image data size #jira UE-47765 Change 3572813 by Michael.Trepka Workaround for a mysterious issue in Xcode 9 beta 3 and 4 which makes it generate -Wnullability-inferred-on-nested-type warnings/errors in MetalDebugCommandEncoder.h even though we tell Clang to ignore them in MacPlatformCompilerPreSetup.h Change 3573043 by Arciel.Rekman FAnsiMalloc: fix compile issue (UE-48066). #jira UE-48066 Change 3573236 by Arciel.Rekman Linux: add UnrealLightmass to the installed build. - Was also requested by a licensee on UDN. Change 3573705 by Arciel.Rekman SDL: update UE4 fork to the latest trunk (UETOOL-1242). - Revision 11184 form 2017-08-04: http://hg.libsdl.org/SDL/rev/04063928c4a8 - Change by icculus (Ryan Gordon). - Rebuilt x86_64 library only for now. Change 3573741 by Arciel.Rekman Fix crash when capturing a movie (UE-48093). #jira UE-48093 Change 3574389 by Max.Chen Sequencer: Array bounds check. #jira UE-48095 Change 3574399 by Max.Chen Sequencer: Fix crash in removing delegate #jira UE-47461 Change 3574415 by Max.Chen Sequencer: Put level visibility tracks in the SpawnObjects evaluation group to ensure levels are streamed before any possessable bindings are resolved Change 3574416 by Max.Chen Prevent slow task feedback from performing slow operations (flushing rendering commands, checking if shaders are initialized) when there are no modal dialogs open Change 3574726 by Matt.Kuhlenschmidt Focus the details view when actor selection changes if it is not focused Change 3574922 by Michael.Trepka Copy of CL 3574653 by Richard.Wallis XCode Beta 4 Compile fixes. "Inferring '_Nonnull' for pointer type within array is deprecated " Change 3576525 by Nick.Darnell Editor - Data table rows names sort correctly in the property customization. Blueprint - Fixing some crashes due to holding onto raw pointers instead of TWeakObjectPtrs. UMG - SetWidgetClass now reinstances the widget if you change it at runtime. Editor - Deleting actors that are still referenced now at least logs to the console what still references it. Change 3576714 by Nick.Darnell Editor - Build fix. Change 3576770 by Jamie.Dale Removed some dead code It seems to be left over from the first attempt at stable localization keys Change 3578433 by Matt.Kuhlenschmidt Fix content browser settings being per project and having created a "Global" category for one setting Change 3578556 by Max.Chen Editor: Fix toolbar shared ref which was keeping the viewport toolbar around when switching between default and cinematic viewports. #jira UE-48125 Change 3578561 by Matt.Kuhlenschmidt Fix USD importing not respecting DestinationPath for automated import Change 3580124 by Matt.Kuhlenschmidt Fix bogus warning message when a property has an editcondition that is not marked edit aynwhere. This has always been supported and is the correct way to make an editcondition Change 3581936 by Jamie.Dale Restoring defaults for UContentBrowserSettings Change 3582039 by Matt.Kuhlenschmidt High DPI mode changes - Editor viewport screen percentage is now adjusted automatically to account for DPI scaling. By default the scene will be rendered at a lower resolution based on screen percentage calculated based on 100/DPIScale. Users can override this automatic calcuation in the performance options if desired. - DPI awareness is only set on windows in the editor now (still disabled by default) - Fixed hit proxy calculation not working properly with screen percentage - Developers can now register a delegate with SlateApplication to tell when a window's DPI changes Change 3582049 by Matt.Kuhlenschmidt Fix color picker not properly converting FColor properties back to gamma space Change 3582054 by Matt.Kuhlenschmidt Fix mac menus updating during unsafe times such as modal windows and slow tasks #jira UE-47874 Change 3582084 by Jamie.Dale Make sure to update the rendering resources for the active world if reloading its map build data This prevents a crash in the renderer due to it holding onto stale data Change 3582257 by Matt.Kuhlenschmidt Fix widget component spawning widgets on cook #jira UE-48201 Change 3582655 by Matt.Kuhlenschmidt Fix DPI scale not being accounted for when entering immersive. Change 3582706 by Matt.Kuhlenschmidt Fix automation tests Change 3582728 by Matt.Kuhlenschmidt Turn on high dpi by default for windows editor Change 3582732 by Matt.Kuhlenschmidt Turn on high DPI by default for mac editor Change 3583112 by Max.Chen Sequencer: Add OnPlayReverse() event for when playback is in reverse Change 3584130 by Matt.Kuhlenschmidt PR #3897: Git plugin: fix action icon in history window (Contributed by SRombauts) Change 3584237 by Matt.Kuhlenschmidt Added the beginnings of a way to extend the usd importer with a custom resolver class that optionally handles prim identification and mesh and actor spawning. Added a test resolver that handles prims based on usd "kind" metadata. Change 3584535 by Matt.Kuhlenschmidt Fix LOD identification in USD files Change 3587703 by Matt.Kuhlenschmidt Fix tooltip Change 3587901 by Matt.Kuhlenschmidt Fixed USD importing not finding and importing LODs properly Change 3588380 by Matt.Kuhlenschmidt Fix ctrl+w not duplicating on mac #jira UE-46573 Change 3590435 by Jamie.Dale Added support for in-editor previews of localized game text This is configured by the "Preview Game Culture" setting, and will automatically be active when PIE is running (the preview language is also passed to any standalone games that are launched via the editor). This preview can also be used in the UMG editor to preview widgets in different languages. While a preview is running, all editable FText fields are locked-down (read-only) to prevent accidentally clobbering source data with translation data. You can also use this new lock-down feature to prevent any localization changes in your project (set "LockLocalization" to "True" under the "Internationalization" section of either your DefaultGame or DefaultEngine INI). In order to allow the game translations to be used in the editor, we now map the translation to any package localization ID variants when the LocRes data is loaded (or when looking up a specific piece of text). This is needed as the LocRes files only ever contain the "clean" versions of the IDs (without the package localization ID the editor uses), and also means that we no longer need to gather the "editor-only" variants of the text within assets. Change 3592131 by Matt.Kuhlenschmidt Log for newly converted actors being pending kill #jira UE-47464 Change 3592200 by Matt.Kuhlenschmidt Made the class viewer menu function properly on mac. Since it as a nomad tab it wasnt properly inserting itself into the top level menu on mac nor should it since it could be docked anywhere. The filters menu is now consistent with other filters menus Change 3592227 by Matt.Kuhlenschmidt Fix drag drop of actors being offset with high dpi monitors. Change 3592719 by Bradut.Palas #jira UE-45632 - dual key bindings feature My approach was transforming the ActiveChord and DefaultChord into arrays and accessing them through an enum class called EMultipleKeyBindingIndex. A lot of connecting code, function prototypes, and data structures had to be changed to accomodate this. Most menus and tooltip texts are generated using the first valid active shortcut. Change 3592793 by Bradut.Palas Fix compile warnings for InputBindingManager (there were actually hidden bugs among them) Change 3593128 by Matt.Kuhlenschmidt Force low quality mode for background blurs by default on android Change 3593579 by Michael.Dupuis #jira UE-47223 : If we have no world simply return null when GetLandscapeInfo is called Handle the cases in PostEditChange to handle null returned from GetLandscapeInfo Change 3593580 by Michael.Dupuis Added missing shaders while generating thumbnails Change 3593582 by Michael.Dupuis #jira UE-47492 : Make sure LayerInfo is valid before accessing data Change 3593584 by Michael.Dupuis #jira UE-47253: Do not recreate the scene info in simulation mode Change 3593585 by Michael.Dupuis #jira UE-48484: no longer mark the package dirty while generating the GrassMap if they were not existing Change 3593586 by Michael.Dupuis #jira UE-48483 : hide the Rendering property group so user can't by mistake change the actor visibility Change 3593593 by Michael.Dupuis #jira UE-48327: Added guard to prevent crash when using CVarFoliageDiscardDataOnLoad and having invalid foliage in your map Change 3593597 by Michael.Dupuis #jira UE-48309: Do not build the tree if the static mesh is not even loaded yet #jira UE-48340: Properly support the Random stream and partial buffer update #jira UE-48228: Instance from blueprint are now visible in standalone game #jira UE-45854: Crash probably linked to post load called on not loaded static mesh #jira UE-48035: Properly init the per instance render data when creating a new component Only update instance in non archetype or CDO. Change 3594060 by Matt.Kuhlenschmidt Fix high DPI mode being set for non-editor. Also prevent possible crashes due to dll handle for high DPI method being freed before called Change 3594355 by Matt.Kuhlenschmidt Change API help link to point to a website since offline CHM based docs are no longer used #jira UE-48230 Change 3595358 by Matt.Kuhlenschmidt Fixed bad initial window position and sizes for editor windows By default SWindow.ClientSize will assume unscaled window size and will scale it based on DPI as needed. AdjustInitialSizeAndPositionForDPIScale argument can be used to disable this if needed Fixed a dock tabs and the main frame not taking into account dpi scale when saving their layout. Now we always save window size at 1.0 scale and auto scale it based on DPI of the monitor it opens on. #jira UE-48446 Change 3595590 by Matt.Kuhlenschmidt Fix missing includes Change 3595792 by Matt.Kuhlenschmidt Fix style warnings Change 3596418 by Bradut.Palas fixing initial issue with dual keybinds (removed ensure macro to speedup first use of alternate key) Change 3598679 by Max.Chen PR #3872: Fix small typo in ImagePlate Plugin (Contributed by TheCodez) #jira UE-48141 Change 3598720 by Max.Chen Cine Camera: Add toggle to disable constraining the roll when look at tracking is enabled. This allows the user to animate the roll while tracking an object. #jira UE-48316 Change 3600236 by Alexis.Matte Create a LOD Custom Mode in the meshes editor UI. This allow user to compare details values between LODs #jira UE-46822 Change 3600260 by Alexis.Matte Make sure temporary rename do not create redirector #jira UE-48364 Change 3600671 by Lauren.Ridge PR #3913: Fixed 3D preview issue in the material editor (Contributed by YuchenMei) #jira UE-48539 #jira UE-48180 #jira UE-48182 Change 3600812 by Jamie.Dale We now defer the registration of IME contexts until an editable text first gains focus Certain IMEs can have very high per-context costs, so this avoids that cost until we know that we definitely need to use the context #jira UE-48100 Change 3601839 by Matt.Kuhlenschmidt Fix USD import crash with "facevarying" normals Change 3602434 by Jamie.Dale Removing dead code These flags were never being tested or used in any meaningul way Change 3602611 by Jamie.Dale Ensure PackageToReload is non-null #jira UE-46655 Change 3602648 by Jamie.Dale Fixed custom columns with the same name as fixed columns causing infinite duplications in the content browser #jira UE-47392 Change 3602651 by Lauren.Ridge Fix for parameter tooltips not being found #jira UE-47417 Change 3604172 by Bradut.Palas #jira UE-48449 #jira UE-48380 #jira UE-48381 #jira UE-48423 I moved the IsFilenameValidForSaving() function from FEditorFileUtils to FFileHelper so that it is accessible from CollectionManager.cpp in order to validate collection names as file names and no longer trigger any of the bugs. Change 3604210 by Bradut.Palas #jira UE-48718 Regression issue appeared from fixing a crash when using console command "open" Reworked by only refusing to open local URLs in case of client mode and multiprocess being active simultaneously. Change 3604258 by Jamie.Dale IME contexts can now flag themselves as dead to avoid latent IME callbacks trying to access a deleted widget #jira UE-46815 #jira UE-47295 Change 3604312 by Matt.Kuhlenschmidt PR #3931: Fixing a few obvious copy & paste errors. (Contributed by DaveC79) Change 3604352 by Matt.Kuhlenschmidt Fix crash accessing potentially invalid parent layout from a detail category #jira UE-48729 Change 3604402 by Lauren.Ridge Epic Friday - array drag and drop Change 3605228 by Cody.Albert TSets and TMaps should now properly rehash if a key is modified in the details panel. Change 3605275 by Alexis.Matte Merge actor do not keep the material slot name #jira UE-43246 Change 3605715 by Max.Chen Sequencer: Fix cinematic mode getting activated on BeginPlay() instead of OnStartedPlaying(). #jira UE-48770 Change 3606411 by Max.Chen Sequencer: Fix a few player state issues. When paused, calling stop now tears down properly (spawnables are removed, etc). When a level sequence is deleted, tears down properly as well. #jira UE-42008 Change 3606440 by Max.Chen Sequencer: Update spawanble name when the spawnable actor name is changed. #jira UE-47815 Change 3606899 by Lauren.Ridge Disabling enum-based arrays from reordering Change 3606958 by Lauren.Ridge Visual polish on array handles Change 3607733 by Max.Chen Sequencer: Check null in camera cut Change 3607849 by Max.Chen Sequencer: Clip transport controls. #jira UE-48812 Change 3608181 by Max.Chen #jira UE-48813 Correctly set GPlayInEditorID when initializing the PIE gameinstance, which does the initial tick. This fixes autoplay sequences Copy from Dev-Framework Change 3608361 by christopher.biancard QAGame: Submitting test content for Array Element Reorder testing Change 3608512 by Alexis.Matte Add fbx exporter option dialog, support export all and cancel all functionality when doing bulk export. #jira UE-48058 Change 3608629 by Max.Chen Camera Rig: Fix crane and rail not being packaged properly. #jira UE-48829 Change 3609217 by Matt.Kuhlenschmidt Added a lock around access to slate active timers to protect it against race conditions when accessed on the slate movie thread and the game thread Change 3609722 by Alexis.Matte Make sure a warning is log when we cannot export an animation sequence. #jira UE-48390 Change 3609774 by Alexis.Matte Fix the merge actor build LOD scale again, a previous merge erase the fix #jira UE-48156 Change 3609891 by christopher.biancard QAGame: Minor additions for test coverage on Array Element Reorder Change 3610171 by Lauren.Ridge Fixes for reordering metadata, creating actual swap function out of three element functions #jira UE-48823 Change 3610407 by Lauren.Ridge Fixing highlighting and behavior to place dragged row in the spot you release (not below) Change 3610472 by Lauren.Ridge Moving final location logic Change 3610797 by Lauren.Ridge Disabling dragging handles during PIE Change 3611089 by Lauren.Ridge Disabling handles when overall tree is disabled Change 3612479 by Lauren.Ridge Fix for asset contex menu warning #jira UE-46667 Change 3612791 by Michael.Dupuis #jira UE-48914 : Add the possibility to specify if we need CPU access to the instance buffer depending on the usage. Grass should always have CPU access. Change 3612802 by Michael.Dupuis missing file from checkin 3612791 Change 3612805 by Max.Chen Sequencer: Fix crash with null GEditor Copy from Release-4.17 #jira UE-48443 Change 3612806 by Max.Chen Sequencer: Fix crash when capturing a movie with options enabling separate process and close editor. Copy from Release-4.17 #jira UE-48487 Change 3612807 by Max.Chen Sequencer: Fix crash upgrading the time range of a null track. Copy from Release-4.17 #jira UE-48490 Change 3612808 by Max.Chen Sequencer: Fixed dragging skeletal animations causing them to revert back to t-pose Copy from Release-4.17 #jira UE-48367 Change 3612849 by Arciel.Rekman Fix tesselation in packaged Linux projects (UE-24301). - Change by Cengiz.Terzibas. #jira UE-24301 Change 3613022 by Nick.Darnell Editor - Fixing a crash on load with a null CoordIndex json node. Change 3613030 by Matt.Kuhlenschmidt PR #3932: UE-48693: if instead of while statement (Contributed by projectgheist) #jira UE-48747 Change 3613047 by Matt.Kuhlenschmidt PR #3933: Git plugin: add "branch source" in history window (Contributed by SRombauts) Change 3613050 by Matt.Kuhlenschmidt PR #3942: Sort Data Table Structures Alphabetically (Contributed by Nick-Pearson) Change 3613062 by Matt.Kuhlenschmidt PR #3939: Fix a typo in RecordQualityLevelsAnalytics(). (Contributed by samhocevar) Change 3613241 by Nick.Darnell Editor - Fixing the content browser's view settings to be project agnostic, and they will start saving again. Change 3613329 by Lauren.Ridge Moving favorite levels to a standard submenu so they also work on Mac Change 3613344 by Nick.Darnell Editor - Fixing the achorgrid show up as white in HDPI mode, seems because we were upsampling the image, the blend was between dark and a transparent white, so that caused everything to turn white in HDPI mode. #jira UE-48921 Change 3613380 by Matt.Kuhlenschmidt Fix FBX window being off the screen in high DPI #jira UE-48872 Change 3614598 by Matt.Kuhlenschmidt Fixed Sequencer Keyframes appearing out of place on High DPI Monitors #jira UE-48915 Change 3614625 by Matt.Kuhlenschmidt Fixed not being able to click on BSP correctly in high dpi #jira UE-48947 Change 3614672 by Matt.Kuhlenschmidt Fix combo box windows being larger than necessary on high dpi monitors #jira UE-48908 Change 3614699 by Matt.Kuhlenschmidt Fix typo #jira UE-48941 Change 3615011 by Matt.Kuhlenschmidt Fix color picker calculation appearing offscreen for high dpi Change 3615013 by Michael.Dupuis #jira UE-48897: Properly rebuild the tree when reapplying instance to the component Change 3615014 by Colin.Benoit Sequencer Recorder test content Change 3615048 by Colin.Benoit Sequencer Recorder: more test content Change 3615118 by Lauren.Ridge Updating realtime state of viewports to also change when settings toggled #jira UE-48884 Change 3615127 by Lauren.Ridge Remove delegate binding on viewport destruction Change 3615180 by Bradut.Palas #jira UE-48167 profiler crash Don't duplicate the graph data when rebuilding because that completely voids the OneToOneMapping mechanism, resulting in the crash. Looking up objects in the mapping would always return null because the mapping contains the old addresses, before the rebuild. One option would have been to completely rebuild the mapping according to the duplicate graph, which would be dubious because the duplicate method isn't specifically designed so that the result would replace the source. But it looks like duplicating the data is not needed, it's safe to rebuild in-place, RebuildForFilter() doesn't do anything illegal with the objects. This is also the only purpose and the only reference of the function. Change 3615232 by Lauren.Ridge Adding input handling to the material editor viewport client #jira UE-48909 Change 3615703 by Jamie.Dale Fixed crash when fixing up references after a package rename failed #jira UE-48856 Change 3615752 by Matt.Kuhlenschmidt More generic fix for color picker and other windows that use CalculatePopupWindowPostion not accounting for DPI scale Change 3615907 by Jamie.Dale Fixed some crashes caused by CL# 3600812 Change 3616031 by Matt.Kuhlenschmidt Added guard against invalid blueprints (ones without a generated class) being trying to be opened in the property matrix and failing #jira UE-48986 Change 3616151 by Arciel.Rekman Fixing adding array elements in config. - "+Blah=Foo" will do Blah.AddUnique(Foo) - ".Blah=Foo" will do Blah.Add(Foo) - See JoshA re: why (also see: https://udn.unrealengine.com/questions/388157/incorrect-behavior-in-configcacheinicpp.html?childToView=389307) Change 3616439 by Andrew.Porter QAGame: Updating level visibility content in sequencer smoke map Change 3616441 by Matt.Kuhlenschmidt Fix more sequencer track offsetting with DPI scale #jira UE-48981 Change 3617263 by Max.Chen Sequencer: Fix crash in level visibility teardown. Null playback context. #jira UE-49012 Change 3617316 by Max.Chen Sequencer: Fixed a regression where the frame rate isn't getting initialized for a movie scene. Change 3617648 by Matt.Kuhlenschmidt Adding some windows specific logging around setting or failing to set process dpi awareness Change 3617665 by Matt.Kuhlenschmidt Guard against layers module not being loaded in keybinding automation test Change 3617731 by Arciel.Rekman Fix crashes on AMD Mesa drivers (UE-48374). - Do not expose unnecessary symbols from libelf.a to avoid symbol collision with system library used by drivers. Change 3617923 by Bradut.Palas #jira UE-47072 Editor was crashing because deleted actor was not cleaned properly from asset editors. Changed IAssetEditorInstance to offer a function for deleting an object from the editor. Change 3618088 by Matt.Kuhlenschmidt Guard against crash with potentially invalid worlds in preview scenes #jira UE-48997 Change 3618373 by Matt.Kuhlenschmidt Force worldsettings to be hidden in editor so that it is not considered for selection #jira UE-48996 Change 3618464 by Max.Chen Sequencer: Fix regression where spawnables don't play because they're defined as temporary editor actors. #jira UE-48923 Change 3619789 by Matt.Kuhlenschmidt Fix DPI scale warnings in any kind of headless editor mode Change 3619802 by Jamie.Dale Fixed deprecation warning in malloc profiler Change 3619841 by Matt.Kuhlenschmidt Fix missing icons in the package project menu #jira UE-48674 Change 3619991 by Lauren.Ridge Fix typo in transaction message #jira UE-48993 Change 3620086 by Lauren.Ridge Moving realtime viewport logic to refresh instead of construct so it is always triggered upon opening a new material editor #jira UE-48884 Change 3620616 by Matt.Kuhlenschmidt Fix up file Change 3621002 by Matt.Kuhlenschmidt Back out change to apply scaling rules in loading screens since blueprint based DPI scaling rule classes will not have been created yet #jira UE-49125 Change 3621049 by Arciel.Rekman Fix a build error. - Also make sure that we don't print confusing message when no messagebox can be shown (this code changed during the merge). Change 3621064 by Arciel.Rekman Deleted too much in the previous changelist. Change 3621369 by Matt.Kuhlenschmidt Fix keybindings automation test failing due to multiple entries in the active choords array pointing to the same thing #jira UE-49131 [CL 3621569 by Matt Kuhlenschmidt in Main branch]
2017-08-31 21:51:42 -04:00
bIsChordPressed |= (Chord.NeedsControl() == GCurrentLevelEditingViewportClient->IsCtrlPressed())
&& (Chord.NeedsAlt() == GCurrentLevelEditingViewportClient->IsAltPressed())
&& (Chord.NeedsShift() == GCurrentLevelEditingViewportClient->IsShiftPressed())
&& GCurrentLevelEditingViewportClient->Viewport->KeyState(Chord.Key) == true;
}
return bIsChordPressed;
}
else
{
return false;
}
}
bool FEditorViewportSnapping::IsSnapToActorEnabled()
{
return GetDefault<ULevelEditorViewportSettings>()->bEnableActorSnap && !IsSnapToVertexEnabled();
}
void FEditorViewportSnapping::EnableActorSnap(bool bEnable)
{
ULevelEditorViewportSettings* ViewportSettings = GetMutableDefault<ULevelEditorViewportSettings>();
ViewportSettings->bEnableActorSnap = bEnable;
ViewportSettings->PostEditChange();
}
float FEditorViewportSnapping::GetActorSnapDistance(bool bScalar)
{
ULevelEditorViewportSettings* ViewportSettings = GetMutableDefault<ULevelEditorViewportSettings>();
// If the user has purposefully exceeded the maximum scale, convert this to the range so that it can be more easily adjusted in the editor
if (ViewportSettings->ActorSnapScale > 1.0f)
{
ViewportSettings->ActorSnapDistance *= ViewportSettings->ActorSnapScale;
ViewportSettings->ActorSnapScale = 1.0f;
ViewportSettings->PostEditChange();
}
if (bScalar)
{
// Clamp to within range (just so slider looks correct)
return FMath::Clamp(ViewportSettings->ActorSnapScale, 0.0f, 1.0f);
}
// Multiply by the max distance allowed to convert to range
return FMath::Max(0.0f, ViewportSettings->ActorSnapScale) * ViewportSettings->ActorSnapDistance;
}
void FEditorViewportSnapping::SetActorSnapDistance(float Distance)
{
ULevelEditorViewportSettings* ViewportSettings = GetMutableDefault<ULevelEditorViewportSettings>();
ViewportSettings->ActorSnapScale = Distance;
ViewportSettings->PostEditChange();
}
bool FEditorViewportSnapping::SnapActorsToNearestActor( FVector& Drag, FLevelEditorViewportClient* ViewportClient )
{
FEditorModeTools& Tools = GLevelEditorModeTools();
// Does the user have actor snapping enabled?
bool bSnapped = false;
if ( IsSnapToActorEnabled() )
{
// Are there selected actors?
USelection* Selection = GEditor->GetSelectedActors();
if ( Selection->Num() > 0 )
{
// Nearest results
const AActor* BestActor = NULL;
FVector BestPoint = FVector::ZeroVector;
float BestSqrdDist = 0.0f;
// Find the nearest actor to the pivot point that isn't part of the selection
const FVector PivotLocation = Tools.PivotLocation;
for (FActorIterator It(ViewportClient->GetWorld()); It; ++It) // Actor iterator :( [Note: Also, can't use BoxOverlapMulti to as the pivot may lie outside the bounds of the actor!]
{
AActor* Actor = static_cast<AActor*>( *It );
checkSlow( Actor->IsA(AActor::StaticClass()) );
// Make sure this isn't an invalid actor type or one of the selected actors
const FString tmp = Actor->GetActorLabel();
if ( !Actor->IsA(AWorldSettings::StaticClass())
&& !Actor->IsA(APhysicsVolume::StaticClass())
&& !Actor->IsA(APostProcessVolume::StaticClass())
&& !Selection->IsSelected( Actor ) )
{
// Group Actors don't appear in the selected actors list!
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3431234) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 3323393 on 2017/02/27 by Ben.Cosh This fixes an issue with actor details component selection causing actor selection to get out of sync across undo operations #Jira UE-40753 - [CrashReport] UE4Editor_LevelEditor!FLevelEditorActionCallbacks::Paste_CanExecute() [leveleditoractions.cpp:1602] #Proj Engine Change 3379355 on 2017/04/04 by Lauren.Ridge Adding sort priorities to Material Parameters and Parameter Groups. If sort priorities are equal, fallback to alphabetical sort. Default sort priority is 0, can be set on the parameter in the base material. Parameters are still sorted within groups.Group sort priority is set on the main material preferences. Change 3379389 on 2017/04/04 by Nick.Darnell Core - Removing several old macros that were referring to EMIT_DEPRECATED_WARNING_MESSAGE, which is no longer defined in the engine, so these macros are double deprecated. Change 3379551 on 2017/04/04 by Nick.Darnell Automation - Adding more logging to the automation controller when generating reports. Change 3379554 on 2017/04/04 by Nick.Darnell UMG - Making the WidgetComponent make more things caneditconst in the editor depending on what the settings are to make it more obvious what works in certain contexts. Change 3379565 on 2017/04/04 by Nick.Darnell UMG - Deprecating OPTIONA_BINDING, moving to PROPERTY_BINDING in place and you'll need to define a PROPERTY_BINDING_IMPLEMENTATION. Will make bindings safer to call from blueprints. Change 3379576 on 2017/04/04 by Lauren.Ridge Parameter group dropdown now sorts alphabetically Change 3379592 on 2017/04/04 by JeanMichel.Dignard Fbx Morph Targets import optimisation - Only reimport the points for each morphs and compute the tangents for the wedges affected by those points. - Removed the full skeletal mesh rebuild on each morph target import. - Allow MeshUtilities::ComputeTangents_MikkTSpace to only recompute the tangents that are zero. Gains around 7.30 mins for 785 morph targets in mikkt space and 1.30 mins using built-in normals, with provided test file. #jira UE-34125 Change 3380260 on 2017/04/04 by Nick.Darnell UMG - Fixing some OPTIONAL_BINDINGS that needed to be converted. Change 3380551 on 2017/04/05 by Andrew.Rodham Sequencer: Fixed ImplIndex sometimes not relating to the source data index when compiling at the track level #jira UE-43446 Change 3380555 on 2017/04/05 by Andrew.Rodham Sequencer: Automated unit tests for the segment and track compilers Change 3380647 on 2017/04/05 by Nick.Darnell UMG - Tweaking some stuff on the experimental rich textblock. Change 3380719 on 2017/04/05 by Yannick.Lange Fix 'Compile FortniteClient Mac' and 'Compile Ocean iOS' Failed with Material.cpp errors. Wrapping WITH_EDITOR around ParameterGroupData. #jira UE-43667 Change 3380765 on 2017/04/05 by Nick.Darnell UMG - Fixing a few more instances of OPTIONAL_BINDING. Change 3380786 on 2017/04/05 by Yannick.Lange Wrap SortPriority in GetParameterSortPriority with WITH_EDITOR. Change 3380872 on 2017/04/05 by Matt.Kuhlenschmidt PR #3453: UE-43004: YesNo MessageDialog instead of YesNoCancel (Contributed by projectgheist) Change 3381635 on 2017/04/05 by Matt.Kuhlenschmidt Expose static mesh material accessors to blueprints #jira UE-43631 Change 3381643 on 2017/04/05 by Matt.Kuhlenschmidt Added a way to enable or disable the component transform units display independently from unit display anywhere else. This is off by default Change 3381705 on 2017/04/05 by Yannick.Lange - Slate application multiple input pre-processors. - Remove ViewportWorldInteractionManager, let ViewportWorldInteraction handle it's own input pre-processor. Change 3381959 on 2017/04/05 by Yannick.Lange Back out changelist 3381705. Old changelist. Change 3382049 on 2017/04/05 by Yannick.Lange - Slate application multiple input pre-processors in a wrapper class. - Remove ViewportWorldInteractionManager, let ViewportWorldInteraction handle it's own input pre-processor. - Deprecated SetInputPreProcessor, but made it work with RegisterInputPreProcessor and UnregisterInputPreProcessor. Change 3382450 on 2017/04/06 by Andrew.Rodham Sequencer: Fixed 'ambiguous' overloaded constructor for UT linux server builds Change 3382468 on 2017/04/06 by Yannick.Lange Rename AllowWorldMovement parameter to bAllow. Change 3382474 on 2017/04/06 by Yannick.Lange Make GetInteractors constant because we dont want it to be possible to change this arrray. Change 3382492 on 2017/04/06 by Yannick.Lange VR Editor: Floating UI's are stored in a map with FNames as key. Change 3382502 on 2017/04/06 by Yannick.Lange VR Editor: Use asset container for auto scaler sound. Change 3382589 on 2017/04/06 by Nick.Darnell Slate - Upgrading usages of SetInputPreprocessor. Also adjusting the API for the new preprocessor functions to have an option to remove all, which was what several usages expected. Also updated the deprecated version of SetInputPreprocessor to removeall if null is provided for the remove, mimicing the old functionality. Change 3382594 on 2017/04/06 by Nick.Darnell UMG - Deprecating GetMousePositionScaledByDPI, this function has too many issues, and I don't want to break buggy backwards compatability, so just going to deprecate it instead. For replacement, you can now access an FGeometry representing the viewport (after DPI scale has been added to the transform stack), and also the FGeometry for a Player's Screen widget host, which might be constrained for splitscreen, or camera aspect. Change 3382672 on 2017/04/06 by Nick.Darnell Build - Fixing incremental build. Change 3382674 on 2017/04/06 by Nick.Darnell Removing a hack added by launcher. Change 3382697 on 2017/04/06 by Matt.Kuhlenschmidt Fixed plugin browser auto-resizing when scrolling. Gave it a proper splitter Change 3382875 on 2017/04/06 by Michael.Trepka Modified FMacApplication::OnCursorLock() to avoid a thread safety problem with using TSharedPtr/Ref<FMacWindow> of the same window on main and game threads simultaneously. #jira FORT-34952 Change 3383303 on 2017/04/06 by Lauren.Ridge Adding sort priority to texture parameter code Change 3383561 on 2017/04/06 by Jamie.Dale Fixed MaximumIntegralDigits incorrectly including group separators in its count Change 3383570 on 2017/04/06 by Jamie.Dale Added regression tests for formatting a number with MaximumIntegralDigits and group separators enabled Change 3384507 on 2017/04/07 by Lauren.Ridge Mesh painting no longer paints on invisible components. Toggling visiblity refreshes the selected set. #jira UE-21172 Change 3384804 on 2017/04/07 by Joe.Graf Fixed a clang error on Linux due to missing virtual destructor when deleting through the interface pointer #CodeReview: marc.audy #rb: n/a Change 3385011 on 2017/04/07 by Matt.Kuhlenschmidt Fix dirtying levels just by copying actors if the level contains a foliage actor. The foliage system makes lazy asset pointers #jira UE-43750 Change 3385127 on 2017/04/07 by Lauren.Ridge Adding WITHEDITOR to OnDragDropCheckOverride Change 3385241 on 2017/04/07 by Jamie.Dale Removing warning if asking for a null or empty localization provider Change 3385442 on 2017/04/07 by Arciel.Rekman Fix a number of problems with Linux splash. - Thread safety (UE-40354). - Inconsistent font (UE-35000). - Change by Cengiz Terzibas. Change 3385708 on 2017/04/08 by Lauren.Ridge Resaving VREditor asset container with engine version Change 3385711 on 2017/04/08 by Arciel.Rekman Speculative fix for a non-unity Linux build. Change 3386120 on 2017/04/10 by Matt.Kuhlenschmidt Fix stats not being enabled when in simulate Change 3386289 on 2017/04/10 by Matt.Kuhlenschmidt PR #3466: Git plugin: add option to autoconfigure Git LFS (Contributed by SRombauts) Change 3386301 on 2017/04/10 by Matt.Kuhlenschmidt PR #3470: Git Plugin: disable "Keep Files Checked Out" checkbox on Submit to Source Control Window (Contributed by SRombauts) Change 3386381 on 2017/04/10 by Michael.Trepka PR #3461: Mac doesn't return the correct exit code (Contributed by projectgheist) Change 3388223 on 2017/04/11 by matt.kuhlenschmidt Deleted collection: MattKTest Change 3388808 on 2017/04/11 by Lauren.Ridge Reset arrows now only display for non-default values in the Material Instance editor. Reset to default arrows now are placed in the correct location for SObjectPropertyEntryBox and SPropertyEditorAsset. SResetToDefaultPropertyEditor now takes a property handle in the constructor, instead of an FPropertyEditor. #jira UE-20882 Change 3388843 on 2017/04/11 by Lauren.Ridge Forward declaring custom reset override. Fix for incremental build error Change 3388950 on 2017/04/11 by Nick.Darnell PR #3450: UMG "Lock" Feature (Contributed by GBX-ABair). Epic Edit: Made some changes to make it work with named slots, added an option not to always recursively itterate the children, also removed the dependency on SWidget changes. Change 3388996 on 2017/04/11 by Matt.Kuhlenschmidt Removed crashtracker Change 3389004 on 2017/04/11 by Lauren.Ridge Fix for automated test error - additional safety check for if the reset button has been successfully created. Change 3389056 on 2017/04/11 by Matt.Kuhlenschmidt Removed editor live streaming Change 3389077 on 2017/04/11 by Jamie.Dale Removing QAGame config change Change 3389078 on 2017/04/11 by Nick.Darnell Fortnite - Fixing an input preprocessor warning. Change 3389136 on 2017/04/11 by Nick.Darnell Slate - Removing deprecated 'aspect ratio' locking box cells, never really worked, deprecated a long time ago. Change 3389147 on 2017/04/11 by Nick.Darnell UMG - Fixing a critical error with the alignment of the lock icon. #jira UE-43881 Change 3389401 on 2017/04/11 by Nick.Darnell UMG - Adds a designer option to control respecting the locked mode. Change 3389638 on 2017/04/11 by Nick.Darnell UMG - Adding the Widget Reflector button to the widget designer. Change 3389639 on 2017/04/11 by Nick.Darnell UMG - Tweaking the respect lock icon. Change 3390032 on 2017/04/12 by JeanMichel.Dignard Fixed project generation when using subfolders in Target.SolutionDirectory (ie: SolutionDirectory = "Programs\MyProgram") Change 3390033 on 2017/04/12 by Matt.Kuhlenschmidt PR #3472: Exposed Distributions to Game Projects and Plugins (Contributed by StormtideGames) Change 3390041 on 2017/04/12 by Matt.Kuhlenschmidt PR #3446: Add missing TryLock to PThreadCriticalSection and add RAII helper for try locking. (Contributed by Laurie-Hedge) Change 3390196 on 2017/04/12 by Lauren.Ridge Fix for crash on opening assets without reset to default button enable Change 3390414 on 2017/04/12 by Matt.Kuhlenschmidt PR #3300: UE-5528: Added check for empty startup tutorial path (Contributed by projectgheist) #jira UE-5528 Change 3390427 on 2017/04/12 by Jamie.Dale Fixed not being able to set pure whitespace values on FText properties #jira UE-42007 Change 3390712 on 2017/04/12 by Jamie.Dale Content Browser search now takes the display names of properties into account #jira UE-39564 Change 3390897 on 2017/04/12 by Nick.Darnell Slate - Changing the order that the tabs draw in so that the draw front to back, instead of back to front. Change 3390900 on 2017/04/12 by Nick.Darnell Making a Cast CastChecked in UScaleBox. Change 3390907 on 2017/04/12 by Nick.Darnell UMG - Adding GetMousePositionOnPlatform and GetMousePositionOnViewport as other replacements that people can use rather than GetMousePositionScaledByDPI. Change 3390934 on 2017/04/12 by Cody.Albert Fix to set correct draw layer in FSlateElementBatcher::AddElements Change 3390966 on 2017/04/12 by Nick.Darnell Input - Force inline some core input functions. Change 3391207 on 2017/04/12 by Jamie.Dale Fixed moving a folder containing a level not moving the level Also removed some redundant usage of ContentBrowserUtils::GetUnloadedAssets #jira UE-42091 Change 3391327 on 2017/04/12 by Mike.Fricker Removed Twitch support and GameLiveStreaming Change 3391405 on 2017/04/12 by Mike.Fricker Removed Twitch support and GameLiveStreaming (part 2) Change 3391407 on 2017/04/12 by Mike.Fricker Removed some remaining EditorLiveStreaming and CrashTracker code Change 3392296 on 2017/04/13 by Yannick.Lange VR Editor: New assets in asset containers for gizmo rotation. Change 3392332 on 2017/04/13 by Nick.Darnell Slate - Removing delegate hooks from the safezone and scalebox widget when the widgets are cleaned up. Change 3392349 on 2017/04/13 by Cody.Albert Corrected typo Change 3392688 on 2017/04/13 by Yannick.Lange VR Editor: Resaved asset containers Change 3392905 on 2017/04/13 by Jamie.Dale Fixed FPaths::ChangeExtension and FPaths::SetExtension stomping over the path part of a filename if the name part of the had no extension but the path contained a dot, eg) C:/First.Last/file Change 3393514 on 2017/04/13 by Yannick.Lange VR Editor: Temp direct interaction pointer. Change 3393930 on 2017/04/14 by Yannick.Lange VR Editor: Remove unused transform gizmo Change 3394084 on 2017/04/14 by Max.Chen Audio Capture: No longer beta Change 3394499 on 2017/04/14 by Cody.Albert Updated UMovieSceneSpawnTrack::PostLoad to call ConditionalPostLoad on bool track before converting it to a spawn track #rnx Change 3395703 on 2017/04/17 by Yannick.Lange Duplicate from Release-4.16 CL 3394172 Viewport Interaction: Fix disable animation when aiming for gizmo stretch handles. #jira UE-43964 Change 3395794 on 2017/04/17 by Mike.Fricker #rn Fixed FastXML not loading XML files with attributes delimited by single quote characters Change 3395945 on 2017/04/17 by Yannick.Lange VR Editor: Swap end and start of laser, because they start of laser was using end mesh. Change 3396253 on 2017/04/17 by Michael.Dupuis #jiraUE-43693: While moving foliage instance between levels, UI count was'nt updating properly Moved MoveSelectedFoliageToLevel to EdModeFoliage as we required more treatment than was done in LevelCollectionModel Ask to save foliage type as asset while moving between level foliage instances containing local foliage type Change 3396291 on 2017/04/17 by Michael.Dupuis #jira UE-35029: Added a cache for mesh bounds so if the bounds changed we can rebuild the occlusion tree Added possibility to register on bounds changed of a static mesh in editor mode Rebuild the occlusion tree if the mesh bounds changed Rebuild the occlusion tree if we change the mesh associated with a foliage type Optimize some operation to not Rebuild the occlusion tree for every instance added/remove instead it's done at the end of the operation Change 3396293 on 2017/04/17 by Michael.Dupuis #jira UE-40685: Improve Collision With World algo, to support painting pitch rotated instance or not on a flat terrain or slope respecting the specified ground angles Change 3397660 on 2017/04/18 by Matt.Kuhlenschmidt PR #3480: Git plugin: improve/cleanup init and settings (Contributed by SRombauts) Change 3397675 on 2017/04/18 by Alex.Delesky #jira UE-42383 - Adds a delegate to the placement mode module to allow users to register custom categories and listen to when they should be refreshed. Change 3397818 on 2017/04/18 by Yannick.Lange ViewportInteraction and VR Editor: - Replace GENERATED_UCLASS_BODY with GENERATED_BODY. - Remove destructors for uobjects. Change 3397832 on 2017/04/18 by Yannick.Lange VR Editor: Remove unused vreditorbuttoon Change 3397884 on 2017/04/18 by Yannick.Lange VREditor: Addition to 3397832, remove unused vreditorbuttoon. Change 3397985 on 2017/04/18 by Michael.Trepka Another attempt to solve the issue with dsymutil failing with an error saying the input file did not exist. We now check for the input file's existence in a loop 30 times (once a second) before trying to call dsymutil. Also, added a FixDylibDependencies as a prerequisite for dSYM generation. #jira UE-43900 Change 3398030 on 2017/04/18 by Jamie.Dale Fixed outline changes not automatically updating the text layout used by a text block #jira UE-42116 Change 3398039 on 2017/04/18 by Jamie.Dale Unified asset drag-and-drop FAssetDragDropOp now handles both assets and asset paths, and FAssetPathDragDropOp has been removed. This allows assets and folders to be drag-dropped at the same time in the Content Browser. #jira UE-39208 Change 3398074 on 2017/04/18 by Michael.Dupuis Fixed crash in cooking fortnite Change 3398351 on 2017/04/18 by Alex.Delesky Fixing PlacementMode module build error Change 3398513 on 2017/04/18 by Yannick.Lange VR Editor: - Remove unused previousvreditor member. - Removing extensions when exiting vr mode without having to find the extensions. Change 3398540 on 2017/04/18 by Alex.Delesky Removing a private PlacementMode header that was included in a public one. Change 3399434 on 2017/04/19 by Matt.Kuhlenschmidt Remove uncessary files from p4 Change 3400657 on 2017/04/19 by Jamie.Dale Fixed potential underflow when using negative digit ranges with FastDecimalFormat Change 3400722 on 2017/04/19 by Jamie.Dale Removed some check's that could trip with malformed data Change 3401811 on 2017/04/20 by Jamie.Dale Improved the display of asset tags in the Content Browser - Numeric tags are now displayed pretty printed. - Numeric tags can now be displayed as a memory value (the numeric value should be in bytes). - Dimensional tags are now split and each part pretty printed. - Date/Time tags are now stored as a timestamp (which has the side effect of sorting correctly) and displayed as a localized date/time. - The column view now shows the same display values as the tooltips do. - The tooltip now uses the tag meta-data display name (if set). - The tag meta-data display name can now be used as an alias in the Content Browser search. #jira UE-34090 Change 3401868 on 2017/04/20 by Cody.Albert Add screenshot save directory parameter to editor and project settings #rn Added options to the settings menu to specify screenshot save directory Change 3402107 on 2017/04/20 by Jamie.Dale Cleaned up the "View Options" menu in the Content Browser Re-organized some of the settings into better groups, and fixed some places where items would still be shown in the asset view when some of these content filter options were disabled (either via a setting, or via the UI). Change 3402283 on 2017/04/20 by Jamie.Dale Creating a folder in the Content Browser now creates the folder on disk, and cancelling a folder naming now removes the temporary folder #jira UE-8892 Change 3402572 on 2017/04/20 by Alex.Delesky #jira UE-42421 PR #3311: Improved log messages (Contributed by projectgheist) Change 3403226 on 2017/04/21 by Yannick.Lange VR Editor: - Removed previous quick menu floating UI panel. - Added the concept of a info display floating UI panel. - Used info display for showing sequencer timer. Change 3403277 on 2017/04/21 by Yannick.Lange VR Editor: - Set window mesh for info display panel. - Add option to null out widget when hidden. Change 3403289 on 2017/04/21 by Yannick.Lange VR Editor: Don't load VREditorAssetContainer asset when starting editor. Change 3403353 on 2017/04/21 by Yannick.Lange VR Editor: Fix variable 'RelativeOffset' is uninitialized when used within its own initialization. Change 3404183 on 2017/04/21 by Matt.Kuhlenschmidt Fix typo Change 3405378 on 2017/04/24 by Alex.Delesky #jira UE-42550 - Audio thumbnails should never rerender now, even with real-time thumbnails enabled Change 3405382 on 2017/04/24 by Alex.Delesky #jira UE-42097 - The Main Frame window will no longer steadily grow if it's closed while not maximized Change 3405384 on 2017/04/24 by Alex.Delesky #jira UE-43985 - Duplicating Force Feedback, Sound Wave, or Sound Cue assets from the context menu after right-clicking on the playback controls will now correctly select the newly created asset for rename. Change 3405386 on 2017/04/24 by Alex.Delesky #jire UE-42239 - Blueprints that have been duplicated from another blueprint will now render their thumbnails correctly instead of displaying a flat black thumbnail. Change 3405388 on 2017/04/24 by Alex.Delesky #jira UE-43241 - Blueprint classes that derive from notplaceable classes (such as SpectatorPawn and GameMode) can no longer be placed within the level editor via the right-click Add/Replace menus Change 3405394 on 2017/04/24 by Alex.Delesky #jira UE-42137 - Users can no longer access the widget object of a Widget Component from within actor construction scripts Change 3405429 on 2017/04/24 by Alex.Delesky Fixing a naming issue for CL 3405378 Change 3405579 on 2017/04/24 by Cody.Albert Fixed bad include from CL#1401868 #jira UE-44238 Change 3406716 on 2017/04/24 by Max.Chen Sequencer: Add attach/detach rules for attach section. #jira UE-40970 Change 3406718 on 2017/04/24 by Max.Chen Sequencer: Set component velocity for attached objects #jira UE-36337 Change 3406721 on 2017/04/24 by Max.Chen Sequencer: Re-evaluate on stop. This fixes a situation where if you set the playback position to the end of a sequence while it's playing, the sequence will stop playing but won't re-evaluate to the end of the sequence. #jira UE-43966 Change 3406726 on 2017/04/24 by Max.Chen Sequencer: Added StopAndGoToEnd() function to player #jira UE-43967 Change 3406727 on 2017/04/24 by Max.Chen Sequencer: Add cinematic options to level sequence player #jira UE-39388 Change 3407097 on 2017/04/25 by Yannick.Lange VR Editor: Temp asset for free rotation handle gizmo. Change 3407123 on 2017/04/25 by Michael.Dupuis #jira UE-44329: Only display the message in attended mode and editor (so user can actually perform the save) Change 3407135 on 2017/04/25 by Max.Chen Sequencer: Load level sequence asynchronously. #jira UE-43807 Change 3407137 on 2017/04/25 by Shaun.Kime Fixing comments to refer to correct function name. Change 3407138 on 2017/04/25 by Max.Chen Sequencer: Mark actor that the spawnable duplicates as a transient so that the level isn't dirtied. Then clear the transient flag on the object template. #jira UE-30007 Change 3407139 on 2017/04/25 by Max.Chen Sequencer: Fix active marker in sub, cinematic, control rig sections. #jira UE-44235 Change 3407229 on 2017/04/25 by Max.Chen Sequencer: Prioritize buttons over label. #jira UE-26813 Change 3407343 on 2017/04/25 by Matt.Kuhlenschmidt Added a world accessor to blutilties so they can operate on the editor world (spawn,destroy actors etc) Change 3407401 on 2017/04/25 by Nick.Darnell Slate - Adding a Round function to SlateRect. Also adding a way to convert a Transform2D to a full matrix. Change 3407842 on 2017/04/25 by Matt.Kuhlenschmidt Made AssetTools a uobject interface so it could be access from script. A few methods were deprecated and renamed to enforce a consistent UI. Now all asset tools methods that expose a dialog have "WithDialog" in their name to differentiate them from methods that do not open dialogs and could be used by scripts for automation. C++ users may still access IAssetTools but should not ever need to use the UAssetTools interface class Change 3407890 on 2017/04/25 by Matt.Kuhlenschmidt Removed temp method Change 3408084 on 2017/04/25 by Matt.Kuhlenschmidt Exposed source control helpers to script Change 3408163 on 2017/04/25 by Matt.Kuhlenschmidt Deprecated actor grouping methods on UUnrealEdEngine and moved their functionality into their own class( UActorGroupingUtils). There is a new editor config setting to set which grouping utils class is used and defaults to the base class. The new utility methods are exposed to script. Change 3408220 on 2017/04/25 by Alex.Delesky #jira UE-43387 - The Levels window will now support the organization of streaming levels using editor-only folders. Change 3408239 on 2017/04/25 by Matt.Kuhlenschmidt Added a file helpers API to script. This one is a wrapper around FEditorFileUtils for now to work around some issues exposing legacy methods to script but FEditorFileUtils will be deprecated soon Change 3408314 on 2017/04/25 by Jamie.Dale Fixed typo Change 3408911 on 2017/04/25 by Max.Chen Level Editor: Delegate for when viewport tab content changes. #jira UE-37805 Change 3408912 on 2017/04/25 by Max.Chen Sequencer: Transport controls are added when viewport content changes and only to viewports that support it (ie. cinematic viewport doesn't allow it since it has its own transport controls). This fixes issues where transport controls wouldn't be visible in newly created viewports and also would get disabled when switching from default to cinematic and back to default. #jira UE-37805 Change 3409073 on 2017/04/26 by Yannick.Lange VR Editor: Fix starting point of lasers. Change 3409330 on 2017/04/26 by Matt.Kuhlenschmidt Fix CIS Change 3409497 on 2017/04/26 by Alexis.Matte Fix crash importing animation with skeleton that do not match the fbx skeleton. #jira UE-43865 Change 3409530 on 2017/04/26 by Michael.Dupuis #jira UE-44329: Only display the log if we're not running a commandlet Change 3409559 on 2017/04/26 by Alex.Delesky #jira none - Fixing case of header include for CL 3408220 Change 3409577 on 2017/04/26 by Yannick.Lange VR Editor: being able to push/pull along the laser using touchpad or analog stick when transforming object towards laser impact. Change 3409614 on 2017/04/26 by Max.Chen Sequencer: Add Scrub() to movie scene player. Change 3409658 on 2017/04/26 by Jamie.Dale Made the handling of null item selection consistent in SComboBox If the selection was initially null and the combo was closed, it would previously pass through the null entry to its child SListView, which would then always think the selection was changing when the combo was opened and cause it to immediately close again. Change 3409659 on 2017/04/26 by Jamie.Dale Added preset Unicode block range selection to the font editor UI #jira UE-44312 Change 3409755 on 2017/04/26 by Max.Chen Sequencer: Back out bIsUISound for scrubbing. Change 3410015 on 2017/04/26 by Max.Chen Sequencer: Fix crash on asynchronous level sequence player load. #jira UE-43807 Change 3410094 on 2017/04/26 by Max.Chen Slate: Enter edit mode and return handled if not read only. Change 3410151 on 2017/04/26 by Michael.Trepka Fix for building EngineTest project on Mac Change 3410930 on 2017/04/27 by Matt.Kuhlenschmidt Expose editor visibility methods on Actor to blueprint/script Change 3411164 on 2017/04/27 by Matt.Kuhlenschmidt Fix crash when repeatedly spaming ctrl+s and ctrl+shift+s to save. PR #3511: UE-44098: Replace check with if-statement (Contributed by projectgheist) Change 3411187 on 2017/04/27 by Jamie.Dale No longer attempt to use the game culture override in the editor Change 3411443 on 2017/04/27 by Alex.Delesky #jira UE-43730, UE-43703 - Material Instances will now correctly use their preview meshes when being edited, or will use their parent's preview mesh if their preview mesh has not been set and the parent's is valid. Change 3411809 on 2017/04/27 by Max.Chen Sequencer: Prioritize buttons over label. #jira UE-26813 Change 3411810 on 2017/04/27 by Cody.Albert Scrollbox now properly calls Invalidate while scrolling Change 3411892 on 2017/04/27 by Alex.Delesky #jira UE-40031 PR #3065: Ignore .vs folder when initializing git projects (Contributed by mattiascibien) Change 3412002 on 2017/04/27 by Jamie.Dale Fixed crash when using an invalid regex pattern #jira UE-44340 Change 3412009 on 2017/04/27 by Cody.Albert Fixed Invalidation Panel to apply scale only to volatile elements, correcting an issue with Cache Relative Positions Change 3412631 on 2017/04/27 by Jamie.Dale Implemented support for hiding empty folders in the Content Browser "Empty" in this case is defined as folders that recursively don't contain assets or classes. Folders that have been created by the user or have at any point contained content during the current editing session are always shown. This also fixes some places where the content filters would miss certain folders (usually due to missing checks when processing AssetRegistry events), and allows asset and path views to be synced to folder selections (as well as asset selections), which improves the experience when renaming folders, and navigating the Content Browser history. #jira UE-40038 Change 3413023 on 2017/04/27 by Max.Chen Sequencer: Fix filtering so that it includes parent nodes only and doesn't recurse through to add their children. Change 3413309 on 2017/04/28 by Jamie.Dale Fixed shadow warning Change 3413327 on 2017/04/28 by Jamie.Dale Added code to sanitize some known strings before passing them to ICU Change 3413486 on 2017/04/28 by Matt.Kuhlenschmidt Allow AssetRenameData to be exposed to blueprints/script Change 3413630 on 2017/04/28 by Jamie.Dale Moved FUnicodeBlockRange into Slate so that it can be used for C++ defined fonts as well as those defined in the font editor Change 3414164 on 2017/04/28 by Jamie.Dale Removing some type-unsafe placement new array additions Change 3414497 on 2017/04/28 by Yannick.Lange ViewportInteraction: - Add arcball sphere asset. - Add opacity parameter to translucent gizmo material. Change 3415021 on 2017/04/28 by Max.Chen Sequencer: Remove spacer nodes at the top and bottom of the node tree. This fixes the artifact of having spaces at the top and bottom which get selected when you click on the space and when you press Home and End to go to the top or bottom of the tree. #jira UE-28931 Change 3415786 on 2017/05/01 by Matt.Kuhlenschmidt #rn PR #3518: Allow PaintedVertices to be sized down (Contributed by jasoncalvert) Change 3415836 on 2017/05/01 by Alex.Delesky #jira UE-39203 - You can now summon the reference viewer from the content browser using the keyboard shortcut. Change 3415837 on 2017/05/01 by Alex.Delesky #jira UE-34947 - When the user attempts to download an IDE from within the editor (due to needing one to add a C++ class), the window that hosts the widget will now close if it's a modal window. Change 3415839 on 2017/05/01 by Alex.Delesky #jira UE-42049 PR #3266: Profiler: added Thread filter (Contributed by StefanoProsperi) Change 3415842 on 2017/05/01 by Michael.Dupuis #jira UE-44514 : Removed the warning as it's causing more issue than it fixes. Change 3416511 on 2017/05/01 by Matt.Kuhlenschmidt Make UHT generate WITH_EDITOR guards around UFunctions generated in a WITH_EDITOR C++ block. This prevents these functions from being generated in non-editor builds Change 3416520 on 2017/05/01 by Yannick.Lange Viewport Interaction: - Toggle ViewportWorldInteraction with command for desktop testing without having to use VREditor. - Add helper function to add a unique extension by subclass. Change 3416956 on 2017/05/01 by Matt.Kuhlenschmidt Exposed EditorLevelUtils to script. This allows creation of streaming levels, setting the current level and moving actors between levels Change 3416964 on 2017/05/01 by Matt.Kuhlenschmidt Prevent foliage from marking actors dirty as HISM components are added and removed from the scene. Change 3416988 on 2017/05/01 by Lauren.Ridge PR #3122: UE-40262: Color tabs according to asset type (Contributed by projectgheist) Changed the highlight style to be around the icon and match the content browser color and style. #jira UE-40437 Change 3418014 on 2017/05/02 by Yannick.Lange Viewport Interaction: Remove material members from base transform gizmo and use asset container to get materials. Change 3418087 on 2017/05/02 by Lauren.Ridge Adding minor tab icon surrounds Change 3418602 on 2017/05/02 by Jamie.Dale Fixed a crash that could occur due to bad data in the asset registry It was possible for FAssetRegistry::PrioritizeSearchPath to re-order the BackgroundAssetResults in response to callback from FAssetRegistry::AssetSearchDataGathered, which caused integrity issues with the array, and would lead to results being missed, or an existing result being processed twice (which due to certain assumptions would result in it being deleted, and bad data being left in the asset registry). These results lists now use a custom type that prevents the mutation of items that have already been processed but not yet trimmed. Change 3418702 on 2017/05/02 by Matt.Kuhlenschmidt Fix USD files that reference other USD files not finding the referenced files by relative path. Requires USD third party changes only Change 3419071 on 2017/05/02 by Arciel.Rekman UBT: optimize FixDeps step on Linux. - Removes the need to re-link unrelated engine libraries when recompiling a code project. - Makes builds faster on machines with multiple cores. - The module that has circularly referenced dependencies is considered cross-referenced itself. - Tested compilation on Linux (native & cross) and Mac (native). Change 3419240 on 2017/05/02 by Cody.Albert Bound widgets in animation tracks can no longer be swapped with widgets from a different widget blueprint, which would lead to a crash Change 3420011 on 2017/05/02 by Max.Chen Sequencer: Fix scrubber hit testing so that the time scrubber is really favored over the playback ranges. #jira UE-44569 Change 3420507 on 2017/05/03 by Lauren.Ridge Selecting a camera or other preview actor in VR Mode now creates a floating in-world viewport. Also deselect all Actors when moving into and out of VR Mode Change 3420643 on 2017/05/03 by andrew.porter QAGame - Adding test content to QA-Sequencer for using spawnables with override bindings Change 3420678 on 2017/05/03 by andrew.porter QAGame: Updating override binding sequence Change 3420961 on 2017/05/03 by Jamie.Dale Exposed some missing Internationalization functions to BPs Change 3422767 on 2017/05/04 by Yannick.Lange ViewportInteraction: Extensibility for dragging on gizmo handles Removed ETransformGizmoInteractionType completely and replaced it with UViewportDragOperation. Using the ETransformGizmoInteractionType enum made external extensibility impossible. Now every gizmo handle group has a component called UViewportDragOperationComponent which holds a UViewportDragOperation of a certain type. This UViewportDragOperation can be inherited to create a custom method to calculate a new transform for the objects when dragging the gizmo handle. Change 3422789 on 2017/05/04 by Yannick.Lange ViewportInteraction: Fix duplicate console variable. Change 3422817 on 2017/05/04 by Andrew.Rodham Sequencer: Changed level sequence object references to always use a package and object path based lookup - Newly created binding references now consist of a package name and an inner object path for actors, and just an inner object path for components. The package name is fixed up dynamically for PIE, which means it can work correctly for multiplayer PIE, and when levels are streamed in during PIE (functionality previously unavailable to lazy object ptrs) - Added a way of rebinding all possessable objects in the current sequence (Rebind Possessable References) - Level sequence binding references no longer use native serialization now that TMap serialization is fully supported. - Multiple bindings are now supported in the API layer of level sequence references, although this is not yet exposed to the sequencer UI. #jira UE-44490 Change 3422826 on 2017/05/04 by Andrew.Rodham Removed erroneous braces Change 3422874 on 2017/05/04 by James.Golding Adding MaterialEditingLibrary to allow manipulation of materials within the editor. - Refactored code out of MaterialEditor where possible Marked some material types as BP-accessible, to allow to editor-Blueprint access. Remove unused 'bSkipPrim' property from Set/CheckMaterialUsage Change 3422942 on 2017/05/04 by Lauren.Ridge Tab padding adjustment to allow tabs with icons to be the same height as tabs without Change 3423090 on 2017/05/04 by Jamie.Dale Added a way to get the source package path for a localized package path Added tests for the localized package path checks. Change 3423133 on 2017/05/04 by Jamie.Dale Fixed a bug where a trailing quote without a newline at the end of a CSV file would be added to the parsed text rather than converted to a terminator Change 3423301 on 2017/05/04 by Max.Chen Sequencer: Add JumpToPosition which updates to a position in a scrubbing state. Change 3423344 on 2017/05/04 by Jamie.Dale Updated localized asset group caching so that it works in non-cooked builds Change 3423486 on 2017/05/04 by Lauren.Ridge Fixing deselection code in VWI Change 3423502 on 2017/05/04 by Jamie.Dale Adding automated localization tests Change 3424219 on 2017/05/04 by Yannick.Lange - Hide FWidget when ViewportWorldInteraction starts. - Added option to EditorViewportClient to not render FWidget without using FWidget::SetDefaultVisibility. Change 3425116 on 2017/05/05 by Matt.Kuhlenschmidt PR #3527: Modified comments (Contributed by projectgheist) Change 3425239 on 2017/05/05 by Matt.Kuhlenschmidt Fix shutdown crash in projects that unregister asset tools in UObjects being destroyed at shutdown. Change 3425241 on 2017/05/05 by Max.Chen Sequencer: Components aren't deselected from the sequencer tree view when they get deselected in the viewport/outliner. #jira UE-44559 Change 3425286 on 2017/05/05 by Jamie.Dale Text duplicated as part of a widget archetype now maintains its existing key #jira UE-44715 Change 3425477 on 2017/05/05 by Andrew.Rodham Sequencer: Do not deprecate legacy object references since they still need to be serialized on save - Also re-add identical via equality operator so that serialization works again Change 3425681 on 2017/05/05 by Jamie.Dale Fixed fallback font height/baseline measuring Change 3426137 on 2017/05/05 by Jamie.Dale Removing PPF_Localized It's an old UE3-ism that's no longer tested anywhere Change 3427434 on 2017/05/07 by Yannick.Lange ViewportInteraction: Null check for viewport. Change 3427905 on 2017/05/08 by Matt.Kuhlenschmidt Removed the concept of a global selection annotation. This poses a major problem when more than one selection set is clearing it. If more than one selection set is in a transaction the last one to be serialized will clear and rebuild the annotation thus causing out of sync issues with component and actor selection sets. This change introduces the concept of a per-selection set annotation to avoid being out of sync. Actor and ActorComponent now override IsSelected (editor only) to make use of these selections. #jira UE-44655 Change 3428738 on 2017/05/08 by Matt.Kuhlenschmidt Fix other usage of USelection not having a selection annotation #jira UE-44786 Change 3429562 on 2017/05/08 by Matt.Kuhlenschmidt Fix crash on platforms without a cursor #jira UE-44815 Change 3429862 on 2017/05/08 by tim.gautier QAGame: Enable Include CrashReporter in Project Settings Change 3430385 on 2017/05/09 by Lauren.Ridge Resetting user focus to game viewport after movie finishes playback #jira UE-44785 Change 3430695 on 2017/05/09 by Lauren.Ridge Fix for crash on leaving in the middle of a loading movie #jira UE-44834 Change 3431234 on 2017/05/09 by Matt.Kuhlenschmidt Fixed movie player setting all users to focus which breaks VR controllers [CL 3432852 by Matt Kuhlenschmidt in Main branch]
2017-05-10 11:49:32 -04:00
if (UActorGroupingUtils::IsGroupingActive())
{
// Valid snaps: locked groups (not self or actors within locked groups), actors within unlocked groups (not the group itself), other actors
const AGroupActor* GroupActor = Cast<AGroupActor>( Actor ); // AGroupActor::GetRootForActor( Actor );
if ( GroupActor && ( !GroupActor->IsLocked() || GroupActor->HasSelectedActors() ) )
{
continue;
}
}
// Is this the nearest actor to the pivot?
const FVector Point = Actor->GetActorLocation();
const float SqrdDist = FVector::DistSquared( PivotLocation, Point );
if ( BestActor == NULL || SqrdDist < BestSqrdDist )
{
BestActor = Actor;
BestPoint = Point;
BestSqrdDist = SqrdDist;
}
}
}
// Did we find an actor?
const FString tmp = BestActor ? BestActor->GetActorLabel() : TEXT( "None" );
if ( BestActor )
{
// Are we within the threshold or exitting it?
const float Dist = GetActorSnapDistance();
if ( BestSqrdDist < FMath::Square( Dist ) )
{
bSnapped = true;
// Are we no already snapped, or is it different to our current location
if ( !Tools.SnappedActor || !Tools.CachedLocation.Equals( BestPoint ) )
{
// Calculate the delta between the snapped location and the current pivot and apply to all the selected actors
const FScopedTransaction Transaction( NSLOCTEXT("UnrealEd", "SnapActorsToActor", "Snap Actors To Actor") );
const FVector PivotDelta = ( BestPoint - PivotLocation );
ViewportClient->ApplyDeltaToActors( PivotDelta, FRotator::ZeroRotator, FVector::ZeroVector );
Tools.SetPivotLocation( BestPoint, false ); // Overwrite the location for next time we check
Drag = FVector::ZeroVector; // Reset the drag so the pivot doesn't jump
}
}
else if ( Tools.SnappedActor && !Tools.CachedLocation.Equals( PivotLocation ) )
{
const FVector PivotDelta = ( PivotLocation - BestPoint );
ViewportClient->ApplyDeltaToActors( PivotDelta, FRotator::ZeroRotator, FVector::ZeroVector );
//GUnrealEd->UpdatePivotLocationForSelection(); // Calling this ends up forcing the pivot back inside the threshold?!
Tools.SetPivotLocation( PivotLocation, false ); // Overwrite the location for next time we check
Drag = FVector::ZeroVector; // Reset the drag so the pivot doesn't jump
}
}
}
}
Tools.SnappedActor = bSnapped;
return bSnapped; // Whether or not the selection is snapped in place
}
void FEditorViewportSnapping::SnapPointToGrid(FVector& Point, const FVector& GridBase)
{
if( IsSnapToGridEnabled() )
{
Point = (Point - GridBase).GridSnap( GEditor->GetGridSize() ) + GridBase;
}
}
void FEditorViewportSnapping::SnapRotatorToGrid(FRotator& Rotation)
{
if( IsSnapRotationEnabled() )
{
if (GLevelEditorModeTools().SnapRotatorToGridOverride(Rotation))
{
return;
}
Rotation = Rotation.GridSnap( GEditor->GetRotGridSize() );
}
}
void FEditorViewportSnapping::SnapScale(FVector& Point, const FVector& GridBase)
{
if( IsSnapScaleEnabled() )
{
if( GEditor->UsePercentageBasedScaling() )
{
Point = (Point - GridBase).GridSnap( GEditor->GetGridSize() ) + GridBase;
}
else
{
if (GetDefault<ULevelEditorViewportSettings>()->PreserveNonUniformScale)
{
// when using 'auto-precision', we take the max component & snap its scale, then proportionally scale the other components
float MaxComponent = Point.GetAbsMax();
if(MaxComponent == 0.0f)
{
MaxComponent = 1.0f;
}
const float SnappedMaxComponent = FMath::GridSnap(MaxComponent, GEditor->GetScaleGridSize());
Point = Point * (SnappedMaxComponent / MaxComponent);
}
else
{
Point = Point.GridSnap( GEditor->GetScaleGridSize() );
}
}
}
}
bool FEditorViewportSnapping::SnapToBSPVertex(FVector& Location, FVector GridBase, FRotator& Rotation)
{
bool bSnapped = false;
SnapRotatorToGrid( Rotation );
if( IsSnapToVertexEnabled() )
{
FVector3f SrcPoint = (FVector3f)Location;
FVector3f DestPoint;
int32 Temp;
if( GWorld->GetModel()->FindNearestVertex(SrcPoint, DestPoint, GetDefault<ULevelEditorViewportSettings>()->SnapDistance, Temp ) >= 0.0)
{
Location = (FVector)DestPoint;
bSnapped = true;
}
}
if( !bSnapped )
{
SnapPointToGrid( Location, GridBase );
}
return bSnapped;
}
void FEditorViewportSnapping::ClearSnappingHelpers( bool bClearImmediately )
{
VertexSnappingImpl.ClearSnappingHelpers(bClearImmediately);
}
void FEditorViewportSnapping::DrawSnappingHelpers(const FSceneView* View, FPrimitiveDrawInterface* PDI)
{
VertexSnappingImpl.DrawSnappingHelpers( View, PDI );
}
bool FEditorViewportSnapping::SnapLocationToNearestVertex( FVector& Location, const FVector2D& MouseLocation, FLevelEditorViewportClient* ViewportClient, FVector& OutVertexNormal, bool bDrawVertHelpers )
{
bool bSnapped = false;
if( IsSnapToVertexEnabled() )
{
bSnapped = VertexSnappingImpl.SnapLocationToNearestVertex( Location, MouseLocation, ViewportClient, OutVertexNormal, bDrawVertHelpers );
}
else
{
OutVertexNormal = FVector(ForceInitToZero);
}
return bSnapped;
}
bool FEditorViewportSnapping::SnapDraggedActorsToNearestVertex( FVector& DragDelta, FLevelEditorViewportClient* ViewportClient )
{
bool bSnapped = false;
if( IsSnapToVertexEnabled() && !DragDelta.IsNearlyZero() )
{
bSnapped = VertexSnappingImpl.SnapDraggedActorsToNearestVertex( DragDelta, ViewportClient );
}
return bSnapped;
}
bool FEditorViewportSnapping::SnapDragLocationToNearestVertex( const FVector& BaseLocation, FVector& DragDelta, FLevelEditorViewportClient* ViewportClient, bool bIsPivot )
{
bool bSnapped = false;
if( IsSnapToVertexEnabled(bIsPivot) && !DragDelta.IsNearlyZero() )
{
bSnapped = VertexSnappingImpl.SnapDragLocationToNearestVertex( BaseLocation, DragDelta, ViewportClient );
}
return bSnapped;
}
//////////////////////////////////////////////////////////////////////////
// FSnappingUtils
TSharedPtr<FEditorViewportSnapping> FSnappingUtils::EditorViewportSnapper;
bool FSnappingUtils::IsSnapToGridEnabled()
{
Copying //UE4/Dev-Enterprise to //UE4/Dev-Main (Source: //UE4/Dev-Enterprise @ 4059031) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3974233 by Rex.Hill Optimized BuildStaticMeshVertexAndIndexBuffers and TEdgeBuilder Change 3974234 by Rex.Hill Reduced number of calls to SaveRawMesh and LoadRawMesh Change 3974235 by Rex.Hill Optimized SaveRawMesh by pre-allocating buffer Change 3981370 by Jamie.Dale Added support for deprecated (renamed) classes, structs, enums, functions, and properties in Python The glue code generation will now use the existing redirects system to build deprecated entries for old names. You can also specify deprecated names to the ScriptName and ScriptMethod meta-data values by adding extra semi-colon separated entries (the first entry is the current name). Accessing deprecated objects in Python leads to a deprecation warning when developer mode is enabled. Change 3983875 by Jamie.Dale Exposed some asset registry functions that may be useful in a commandlet environment Change 3983901 by Jamie.Dale Hoisted some AssetData helpers onto the struct in Python Change 3988367 by Jamie.Dale Python now honors EditInstanceOnly and EditDefaultsOnly when setting property values Change 3988369 by Jamie.Dale Exposed generic get_default_object function that takes a type and returns you the CDO This is needed for types that aren't natively exposed to Python (such as Blueprint generated types) Change 3989890 by Jamie.Dale Moved BlutilityActor to be Private in EditorScriptingUtils This can be removed once it's no longer needed. Change 3989900 by Jamie.Dale Updated EditorScriptingUtilities to use the Public/Private folder structure for source code Change 3990082 by Anousack.Kitisa Added plugin for Shotgun integration in Unreal. #jira UEENT-959 Change 3990783 by Anousack.Kitisa Changed ShotgunMenuItem to a struct. Change 3991139 by Jamie.Dale Minimized use of GUnrealEd (favoring GEditor) so that this code can be used by commandlets Removed redundant usages of GEditor/GUnrealEd from within UEditorEngine itself, and fixed cases where null data was being accessed. Testing that loading, saving, and creating a new blank map will now work in a commandlet without crashing. Change 3993189 by Jamie.Dale Fixed some mismatched return types Change 3993191 by Jamie.Dale Inital support for taking the GIL at key points where external C code calls into Python Change 3993683 by Patrick.Boutot [LTC] Add a CustomTimeStep that decode a LinearTimecode from the MediaSource. The MediaPlayer need to support buffering and should not run late since it's used to tick the engine time. Update DropTimecode to use the new Timecode structure in TimeManagement. Change 3994430 by Jamie.Dale Adjusted how inline structs work so that types known at compile time can inline allocate without being fully hand-wrapped in Python They must now be registered via FPyWrapperTypeRegistry::RegisterInlineStructFactory before we start generating wrapped types Change 3996083 by Jamie.Dale Added a distinct type for generated enum types so that you can query their available enum entries Change 3998253 by conan.reis Remove redundant Perforce error output from the log Change 4000307 by JeanMichel.Dignard Optimized FFbxImporter::ValidateAllMeshesAreReferenceByNodeAttribute() - Stored all scene nodes geometry ids in a set instead of looping on all scene nodes for every geometry. O(N) instead of O(N^2). - For 38685 scene nodes and 5417 geometry, the time went from 2 min 21.688 s to 0 min 0.098 s. Change 4000605 by Jamie.Dale Added support for constant "hoisting" This allows you to tag a helper function that returns a constant with ScriptConstant meta-data (providing a potentially overridden name) to "hoist" that helper function to be a constant of the type it operates on when wrapped for Python (ScriptConstantHost can be used to host the constant on a struct rather than its own object). Change 4001617 by Jamie.Dale Updated ScriptMethod and ScriptConstant to allow hoisting onto other classes as well as structs This allows you to have a runtime class be extended via methods in an editor-only module Change 4005287 by Jamie.Dale Added a GIL lock when Slate Tick events call back into Python Change 4005383 by Andrew.Rodham Sequencer: Initial scripting exposure and support First pass includes the following: - Find/add/interate master tracks - Find/add/interate bindings (both possessables and spawnables) - Find/add/interate tracks on bindings - Add/interate sections on tracks - Get/Set section ranges Change 4008609 by Jamie.Dale Added some missing native Python types to the documentation Native modules now build up a list of types and functions associated with them. This information is then passed through to the document generation to ensure that all exposed native types and functions are documented. In addition, any native Python module files are now assimilated into the unreal.py stub file and parsed so that they can be documented too. Change 4008654 by Jamie.Dale Allow math operators to use the base type versions unless overridden Change 4009740 by Patrick.Boutot Add BP function to convert a Timecode into a string. Change 4009763 by Patrick.Boutot Update AudioCapture to retreive the SampleRate. Used by the LinearTimecode. Change the requested format from int16 to float since we converted it into that format later on. Change 4009768 by Andrew.Rodham Removed explicit names from ScriptName methods, expanded sequencer scripting range functionality Change 4009830 by Jamie.Dale Added support for UPARAM(ref) on arguments exposed to Python For standard functions, this just produces an input and output for the same argument (we can't mutate the input due to potential coercion). For ScriptMethod functions that use it on the 'self' argument, this will mark the function as "inline" and have the function apply the result of the 'self' argument back onto the 'self' instance after calling the function. Change 4010034 by Jamie.Dale Added support for init_unreal.py start-up scripts These can be placed in any known sys.path in Python, including the Content/Python folders we automatically add, and the UnrealEngine/Python directory under the users home directory. Change 4010422 by Jamie.Dale Improved errror reporting during Python generation It will now ensure if a debugger is attached to draw programmer attention to an error. Change 4010498 by Patrick.Boutot Remove unnecessary loop Timecode.ToFrameNumber() Change 4011312 by Jamie.Dale Duplicate deprecated names will no longer assert during Python glue generation They will now log a warning and continue Change 4012068 by JeanMichel.Dignard Allow to render thumbnails for newly created packages. - To render a thumbnail, you either need a customer thumbnail renderer or a cached thumbnail. Querying cached thumbnails fails for newly created packages because it calls DoesPackageExist which check on disk. This call is unnecessary since we're relying on FindPackage which only works for packages that are loaded in memory. Change 4013781 by Jamie.Dale FFrame::KismetExecutionMessage (or LogRuntimeError or LogRuntimeWarning) will now produce Python exceptions You can use these to emit warnings or errors from UFunctions wrapped for scripting, and when called from Python they will produce a Python exception (for errors), or Python warning (for warnings). Change 4014337 by Jamie.Dale Struct coercion now errors if you provide a sequence with too many elements This also makes sure that PyConversion doesn't set an error state if ESetErrorState::No is passed (which could have previously happened from type casting calls). Change 4015290 by Andrew.Rodham Sequencer: Moved runtime functionality from ISequencerChannelInterface to IMovieSceneChannelInterface - Rename IBatchChannelInterface to IMovieSceneChannelInterface - Removed MovieScene::Dilate() - Added TMovieSceneChannelTraits::SupportsDefaults to automatically stub out functions relating to channel defaults Change 4015664 by Jamie.Dale Renamed ScriptMathOp meta-data to ScriptOperator Change 4016230 by Jamie.Dale Fixed incorrect make/break path in Importance Sampling Library (for Importance Texture) Change 4017326 by Jamie.Dale Added make and break support in Python Structs that have a native make function will now use this as their constructor. This also adds support for breaking a struct into a tuple, either via a native break function, or via generic property enumeration. Change 4017551 by Jamie.Dale Removed redundant outer parameter from find/load_asset/package Change 4018594 by Jamie.Dale Added ScriptMethodSelfReturn as an alternative to UPARAM(ref) These two function signatures produce the same behavior and have the same cost in Python, the only difference is how they appear to Blueprints (and Blueprints seem to favor non-reference functions). UFUNCTION(..., meta=(ScriptMethod)) static void DoThing(UPARAM(ref) FThingType&, int32); UFUNCTION(..., meta=(ScriptMethod, ScriptMethodSelfReturn)) static FThingType DoThing(FThingType, int32); Change 4020956 by Anousack.Kitisa Added Shotgun to the Level Editor/World Outliner and Content Browser context menus when there's a selected actor or asset. #jira UEENT-1219 Change 4021986 by Anousack.Kitisa Used the Python startup scripts mechanism to launch the Shotgun bootstrap script. Related to Jira UE-57896. Change 4022993 by Jamie.Dale Added support for extra operators on Python structs You can now expose bool conversion and comparison operators (==, !=, <, <=, >, >=) in addition to the previous set of math operators. As part of this there is now stricter signature validation when generating the Python binding. Change 4023226 by Jamie.Dale Added Make and Break function for FSoftClassPath Change 4023348 by Jamie.Dale Exposed some methods and operators for PrimaryAssetId and PrimaryAssetType Change 4027911 by Jamie.Dale Cross-outer redirects are no longer applied in Python #jira UETOOL-1382 Change 4029618 by JeanMichel.Dignard Unreal Studio UX - Made "Unreal Studio" the default tab in the new project wizard if we're using an installed enterprise build. - Create new projects as enterprise projects if we're using an insalled enterprise build. #jira UEENT-1231, UEENT-796 Change 4030217 by Jamie.Dale Exposed ScopedSlowTask to Python #jira UETOOL-1375 Change 4030784 by Matt.Hoffman Sequencer curve editor now shows vertical axis labels. #jira UE-58160 Change 4030858 by JeanLuc.Corenthin Expose LOD creation thru Python: - Create one struct to hold onto reduction settings per LOD - Create one struct to hold onto an array of reduction settings and a parameter to enable of disable automatic computation of screen size - Create new method to apply reduction settings to an array of StaticMeshActors #jira UEENT-1232 Change 4032239 by Jamie.Dale Cleanup pass over wrapped structs - Code dealing with reflected structs now uses UScriptStruct rather than UStruct. - The old PyConversion::NativizeStruct and PyConversion::PythonizeStruct have been renamed to PyConversion::NativizeStructInstance and PyConversion::PythonizeStructInstance. - New PyConversion::NativizeStruct and PyConversion::PythonizeStruct functions have been added to convert an object (or Python type) to a UScriptStruct (akin to what PyConversion::NativizeClass and PyConversion::PythonizeClass does for UClass). Change 4032247 by Jamie.Dale Cleaned up some Python slow task code Change 4032251 by Jamie.Dale Added functions to get the Python type associated with an Unreal class, struct, or enum Change 4032258 by Jamie.Dale Added Python iterators for Unreal objects, classes, and structs, as well as the Python types wrapped by Unreal classes or structs #jira UETOOL-1380 Change 4032320 by Jamie.Dale Fixed Python object iterators skipping their first item Change 4032321 by Jamie.Dale Added Python iterators for actors and selected actors #jira UETOOL-1380 Change 4033908 by Anousack.Kitisa Added Shotgun settings for metadata tags. #jira UEENT-1175 Change 4033909 by Anousack.Kitisa Added wrapper function to sync Content Browser to assets for scripting. #jira UEENT-1218 Change 4034951 by Matt.Hoffman Media Tracks now highlight when added to a Sequence/UMG animation. Change 4034966 by Jamie.Dale Added GIL locks around post_init code that can be called from C++ Change 4035019 by Matt.Hoffman UMG Render Transforms + Margins now support infinite sections. Change 4035470 by Andrew.Rodham Introduced a common base class for all movie scene channel data, FMovieSceneChannel. Removed IMovieSceneChannelInterface. Renamed FMovieSceneChannelEditorData to FMovieSceneChannelMetaData. Renamed FMovieSceneChannel and TMovieSceneChannel to FMovieSceneChannelData and TMovieSceneChannelData, to make way for common channel base class. Renamed instances of 'specialized' channel editor data to 'extended' channel editor data. Introduced non-templated FMovieSceneChannelHandle and a templated version. Changed internal implementation to use a lookup rather than a directly resolved weak ptr. Various pieces of documentation and cleanup. Change 4037112 by Max.Chen Sequencer: Added some missing RF_Transactional flags to newly created sections. Change 4037121 by Max.Chen Sequence Recorder: Timecode recording Introduced an FSourceTimecode which is saved as editor only data to the MovieSceneSection and MovieScene. FSourceTimecode consists of an FFrameNumber delta that correlates the section's initial start time to an FTimecode. The FFrameNumber is adjusted whenever the section is moved. One use case for this is through sequence recorder, which captures the timecode at the start of recording and saves an FSourceTimecode per movie scene section it creates. If the section is moved, it can always be returned to its source timecode by the section's right click menu, "Sync to Source Timecode". #jira UESEQ-406 Change 4038462 by Jamie.Dale Added support for using Python callables with delegates All the "x_function" methods on delegates and multicast delegates now have an "x_callable" equivalent that take a Python callable (we attempt basic validation of the signature, but that only allows us to check the input argument count is what we expect). Internally the callable is wrapped in a UObject, so certain GC restrictions are present (and is why coercion is disabled for callables). Delegates wrapped in Python (including as a direct property of an object or struct, or inside a container) will be kept alive via the Python reference collection, however once there are no Python references left the proxy object will be allowed to die unless something external has taken a reference to the proxy object. Change 4039123 by James.McNatton Remove dependency on SteamController in VirtualCamera #rb none Change 4039162 by Jamie.Dale Fixed linter warnings about unescaped backslashes in docstrings Change 4039170 by Jamie.Dale No longer expose deprecated functions or properties if they clash with another Python exposed item Change 4039429 by Max.Chen Sequence Recorder: Swap to editor actors on end PIE if the actors to record were set to the PIE actors Change 4039442 by Max.Chen Sequence Recorder: Find the existing object binding and record into it if it exists. When recording to an existing object binding, if the track exists, remove all animation data and reuse the track. Change 4039477 by Jamie.Dale Added warnings for conflicting Python type and field names Change 4039478 by Jamie.Dale Fixed warnings for conflicting Python type and field names Change 4039511 by Max.Chen Sequencer: Remove all animation data for spawn track Change 4040649 by James.McNatton Multiple Virtual Camera bug fixes - Removed QAGame mannequin from test map - Fixed errors being generated when trying to load preset - Presets now properly load and save axis settings - Deleted presets should no longer linger in menus - Presets now save and load favorite status Change 4041356 by Max.Chen Sequence Recorder: Takes system #jira UESP-544 Change 4041589 by Jamie.Dale Added C++ source information (plugin, module, and file) to the Python doc string Change 4041746 by Jamie.Dale Made ScriptOperator more relaxed about its signature validation as long as the additional input parameters are defaulted Change 4041757 by James.McNatton Virtual Camera Bug Fixes - The Input Source dropdown now accurately reflects user selection - Input source changed to EditDefaultsOnly - Focus should no longer be set when the settings menu is open Change 4041823 by Jamie.Dale Made ScriptOperator more relaxed about its signature validation for defaulted input parameters Existing Blueprint exposed operator functions may both default required arguments, and add additional default arguments. ScriptOperator will now accept both of these as long as there are enough arguments, but not too many non-defaulted arguments. Change 4042956 by James.McNatton VirtualCamera bug fixes related to focus plane visualization - Removed extra focus plane that was being displayed - Added logic to adjust for nonuniform scaling of objects when settings up tracking focus Change 4043400 by James.McNatton Multiple bug fixes related to saving various values - Now saves matte opacity and updates on load - Now saves filmback format name and updates on load - Now saves desired distance units and updates on load Change 4043481 by James.McNatton Fixed issue in Virtual Camera where joystick movement would not properly apply locks after rotating #rb none Change 4044358 by Jamie.Dale Fixed some cases where empty default values would be lost from UHT Eg, empty strings, null objects Change 4044362 by Jamie.Dale Fixed old-style enums being missed by the Python glue generation if they're only referenced by a property of function Change 4044371 by Jamie.Dale Fixed default value application for some struct types that use a custom default value format when exported by UHT Change 4044417 by Max.Chen Sequence Recorder: Better default group names with an underscore separator for letters Change 4045164 by Jamie.Dale Hardened usage of CopyScriptStruct to ensure that the source type is a child of the destination type, and that the destination type is used to copy (to still allow slicing of derived data) Change 4045195 by Jamie.Dale Updated FPropValueOnScope::GetValue to be able to return the value for a particular array index Change 4045589 by James.McNatton Fixed packaging error for VirtualCamera plugin - Plugin is now a runtime plugin rather than developer - Fixed up associated warnings with saving and loading in editor Change 4046208 by James.McNatton Virtual Camera bug fixes - Adjusted how mattes and filmback works together - Should now always respond properly to changing filmback settings in UI - Should now match the correct view size within the matte under all circumstances Change 4046372 by Max.Chen Sequencer: Fix subsequence binding ids. #jira UE-55337 Change 4046694 by Max.Chen Sequence Recorder: Compile the template before finding the camera sequence id since the precompiled template is not up to date. Change 4046801 by Jamie.Dale Improved default values and return types used in the unreal.py stub file - Object and Struct types generate an __init__ function with the correct signature. - Struct __init__ functions list the correct default values (including when using make/break functions). - Methods now list the correct default values. - Get/Set getters return a value of the correct type. - Get/Set setters are no longer exported for read-only properties. - Constants resolve to the correct type and value. #jira UETOOL-1377 Change 4047023 by Jamie.Dale Added missing hook-up for % and %= in Python Change 4047100 by Jamie.Dale Operators are now exposed to unreal.py and generate docs stating which overloads are available Change 4047105 by Jamie.Dale String is now "str" in doc strings to match the Python type Change 4047714 by Max.Chen Sequencer: Resolved merge conflicts with Dev-Sequencer Change 4048150 by Jamie.Dale Fixed single-culture PO import/export failing #jira UE-47079 Change 4048653 by Andrew.Rodham Sequencer: Automatic re-evaluation is now suppressed for external changes that modified only default values on channels - The issue is that moving an object that is partially-keyed in sequencer, with auto-key off, will set default values for the non-keyed channels. Doing so will dirty the sequence, which causes a re-evaluation, which re-evalutes the keyed channels, which effectively undoes the external change. - This is now fixed by suppressing the automatic re-evaluation for a specific signature of a specific sequence, if that is the only thing that has dirtied the sequence. Any subsequent changes to the sequence will cause a re-evaluation, and the suppression to be wiped. #jira UE-57519 #jira UE-58487 Change 4048814 by Jamie.Dale Fixed syntax error if an enum had an unknown value Change 4048819 by Jamie.Dale Fixed struct init functions having the wrong default values Change 4048856 by JeanLuc.Corenthin - Removed LOD & collision functions from UEditorLevelLibrary - Created a new class, UEditorMeshLibrary, to hold onto functionalities related to StaticMeshes - Added method to set LODs on a static mesh - Added method to remove LODs from a static mesh - Added method to get number of LODs on a static mesh - Added method to get number of simple collisions onto a static mesh - Added method to get number of convex collisions onto a static mesh - Added method to add convex collision onto a static mesh - Added method to remove all collisions onto a static mesh #jira UEENT-1232 #jira UEENT-1233 Change 4048961 by Jamie.Dale Improved formatting of output parameters in doc strings #jira UETOOL-1376 Change 4048988 by Jamie.Dale Fixed context leakage between the console and files, and import "unreal" by default now in the console #jira UETOOL-1379 Change 4049912 by Max.Chen Sequence Recorder: Minor recording group name improvements. - Initialize newly created actor group with existing actor group's base path. - When duplicating, use the current group's name as the base. - When typing in a name, if it fits the group format, the name should be allowable if it doesn't conflict with existing group names/assets. Change 4049934 by Andrew.Rodham Sequencer: Minor clean-up of sequencer interfaces and overloads - Replaced remaining instances of void* with FMovieSceneChannel* now that we mandate a common base class - Changed remaining explicit calls to SetDefault to SetChannelDefault overload so it works correctly with the SupportsDefaults trait - Exposed ability to manually implement an ISequencerChannelInterface rather than using the default templated one Change 4050608 by conan.reis Was getting link error about use of FFrameTime in ULevelSequencePlaybackController::PlayFromBeginning() in the VirtualCamera plugin so added TimeManagement to its dependant modules so it compiles again. Change 4050899 by Max.Chen Sequencer: Allow actor components for synchronization #jira UE-58468 Change 4050900 by Max.Chen Sequence Recorder: Don't create a spawn section if the object is a possessable #jira UE-58272 Change 4050904 by Max.Chen Curve Editor: Fix for evaluation a section of time when one key is non-weighted and the other is weighted. What we do is evaluate them both as being weighted, but we don't have the weight value for the non-weighted tangent. The weight of the non-weighted tangent is implicilty 1/3rd the distance between the two points, so we just calculate that if needed. #jira UE-58573 Change 4050905 by Max.Chen Curve Editor: When calculating vertical extents find feature points where slopes are zero and check them in addition to the keys if the curve is cubic. Curves now fit correclty vertically. Also changed fudge to 5% from 10% to match up old editor. Tighter fits seems better. #jira UE-58571 Change 4050972 by James.McNatton Added functions to ISequenceRecorder - Calling StartRecording with an empty array now triggers recording without clearning queued recordings - Added function to queue an actor to be recorded - Added function to check the next take number for a given actor when using groups Change 4050994 by James.McNatton Bug fixes for Virtual Camera - Preset menu now shows dates in the timestamp - Resetting offsets now alerts the system to update UI Change 4051431 by David.Hibbitts Added a component and blueprint library to access LiveLink data in blueprints which also works in editor. Deprecated LiveLink Driven component #jira UESP-577 Change 4051475 by Patrick.Boutot Rename EditorMeshLibrary Merge AssetScriptingUtilititesEditor with EditorScriptingUtilities. Add Redirects. Change 4051558 by Patrick.Boutot EngineCustomTimeStep returns true when we also want to perform the default engine code. Change 4052106 by Andrew.Rodham Sequencer: Adding an example that creates a sequence out of the current editor selection Change 4052205 by Anousack.Kitisa Fixed selected asset paths referenced by selected actors when using context Shotgun menu. Added function to retrieve the work area directory for Shotgun. #jira UEENT-1220 Change 4052951 by James.McNatton Virtual Camera Sequence Recorder updates to integrate new take system - Takes no longer display unless sequence recorder has a group selected - Adjusted fix to packaging error - FPS value will no longer appear if sequence recorder isn't available Change 4053130 by mason.seay Updated Game Mode Override Change 4053273 by James.McNatton Virtual Camera cleanup adjustments Change 4053627 by Max.Chen Sequencer: Disable bind sequencer to PIE/simulate while recording. Change 4053628 by Max.Chen Sequence Recorder: Fix target animation not persisting #jira UE-58508 Change 4053871 by Max.Chen Image Plate: Fix icon path Change 4054370 by Patrick.Boutot Remove LiveLink warning. Create base a class for FLiveLinkFrameRate as suggested in GenericPlatformCompilerPreSetup.h Change 4054447 by Darren.Pegg AJA low level device API Blackmagic low level API MediaIOCore changes to support AJA/Blackmagic changes AJA Module converted to use MediaIOCore Blackmagic Module changes for MediaIOCore Blackmagic/AJA Binary files Change 4054769 by Patrick.Boutot Packaging error issue introduce with CL 4054370. #jira UE-58749 Change 4055443 by Max.Chen Sequencer: Fix crash in adding filler shot #jira UE-58767 Change 4056577 by JeanMichel.Dignard Fixed crash with automation tests. We would bind the default UEditorEngine to Automation and on map load, it would call PIE on GEditor but with recent changes, PIE is called on this and the default UEditorEngine is not initialized so it would crash with a null GameViewportClass. Now we'll bind Automation on UEditorEngine InitializeObjectReferences so that we're in a good state and it's only called for GEditor. #jira UE-58792 Change 4057238 by Jamie.Dale Fixed crash when renaming Python generated classes or structs Change 4058435 by Jamie.Dale Fixed lingering exception state when converting a dict to a struct Change 4058486 by mason.seay Removed remote.host call from map [CL 4060164 by JeanMichel Dignard in Main branch]
2018-05-09 10:24:50 -04:00
return EditorViewportSnapper.IsValid() && EditorViewportSnapper->IsSnapToGridEnabled();
}
bool FSnappingUtils::IsRotationSnapEnabled()
{
Copying //UE4/Dev-Enterprise to //UE4/Dev-Main (Source: //UE4/Dev-Enterprise @ 4059031) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3974233 by Rex.Hill Optimized BuildStaticMeshVertexAndIndexBuffers and TEdgeBuilder Change 3974234 by Rex.Hill Reduced number of calls to SaveRawMesh and LoadRawMesh Change 3974235 by Rex.Hill Optimized SaveRawMesh by pre-allocating buffer Change 3981370 by Jamie.Dale Added support for deprecated (renamed) classes, structs, enums, functions, and properties in Python The glue code generation will now use the existing redirects system to build deprecated entries for old names. You can also specify deprecated names to the ScriptName and ScriptMethod meta-data values by adding extra semi-colon separated entries (the first entry is the current name). Accessing deprecated objects in Python leads to a deprecation warning when developer mode is enabled. Change 3983875 by Jamie.Dale Exposed some asset registry functions that may be useful in a commandlet environment Change 3983901 by Jamie.Dale Hoisted some AssetData helpers onto the struct in Python Change 3988367 by Jamie.Dale Python now honors EditInstanceOnly and EditDefaultsOnly when setting property values Change 3988369 by Jamie.Dale Exposed generic get_default_object function that takes a type and returns you the CDO This is needed for types that aren't natively exposed to Python (such as Blueprint generated types) Change 3989890 by Jamie.Dale Moved BlutilityActor to be Private in EditorScriptingUtils This can be removed once it's no longer needed. Change 3989900 by Jamie.Dale Updated EditorScriptingUtilities to use the Public/Private folder structure for source code Change 3990082 by Anousack.Kitisa Added plugin for Shotgun integration in Unreal. #jira UEENT-959 Change 3990783 by Anousack.Kitisa Changed ShotgunMenuItem to a struct. Change 3991139 by Jamie.Dale Minimized use of GUnrealEd (favoring GEditor) so that this code can be used by commandlets Removed redundant usages of GEditor/GUnrealEd from within UEditorEngine itself, and fixed cases where null data was being accessed. Testing that loading, saving, and creating a new blank map will now work in a commandlet without crashing. Change 3993189 by Jamie.Dale Fixed some mismatched return types Change 3993191 by Jamie.Dale Inital support for taking the GIL at key points where external C code calls into Python Change 3993683 by Patrick.Boutot [LTC] Add a CustomTimeStep that decode a LinearTimecode from the MediaSource. The MediaPlayer need to support buffering and should not run late since it's used to tick the engine time. Update DropTimecode to use the new Timecode structure in TimeManagement. Change 3994430 by Jamie.Dale Adjusted how inline structs work so that types known at compile time can inline allocate without being fully hand-wrapped in Python They must now be registered via FPyWrapperTypeRegistry::RegisterInlineStructFactory before we start generating wrapped types Change 3996083 by Jamie.Dale Added a distinct type for generated enum types so that you can query their available enum entries Change 3998253 by conan.reis Remove redundant Perforce error output from the log Change 4000307 by JeanMichel.Dignard Optimized FFbxImporter::ValidateAllMeshesAreReferenceByNodeAttribute() - Stored all scene nodes geometry ids in a set instead of looping on all scene nodes for every geometry. O(N) instead of O(N^2). - For 38685 scene nodes and 5417 geometry, the time went from 2 min 21.688 s to 0 min 0.098 s. Change 4000605 by Jamie.Dale Added support for constant "hoisting" This allows you to tag a helper function that returns a constant with ScriptConstant meta-data (providing a potentially overridden name) to "hoist" that helper function to be a constant of the type it operates on when wrapped for Python (ScriptConstantHost can be used to host the constant on a struct rather than its own object). Change 4001617 by Jamie.Dale Updated ScriptMethod and ScriptConstant to allow hoisting onto other classes as well as structs This allows you to have a runtime class be extended via methods in an editor-only module Change 4005287 by Jamie.Dale Added a GIL lock when Slate Tick events call back into Python Change 4005383 by Andrew.Rodham Sequencer: Initial scripting exposure and support First pass includes the following: - Find/add/interate master tracks - Find/add/interate bindings (both possessables and spawnables) - Find/add/interate tracks on bindings - Add/interate sections on tracks - Get/Set section ranges Change 4008609 by Jamie.Dale Added some missing native Python types to the documentation Native modules now build up a list of types and functions associated with them. This information is then passed through to the document generation to ensure that all exposed native types and functions are documented. In addition, any native Python module files are now assimilated into the unreal.py stub file and parsed so that they can be documented too. Change 4008654 by Jamie.Dale Allow math operators to use the base type versions unless overridden Change 4009740 by Patrick.Boutot Add BP function to convert a Timecode into a string. Change 4009763 by Patrick.Boutot Update AudioCapture to retreive the SampleRate. Used by the LinearTimecode. Change the requested format from int16 to float since we converted it into that format later on. Change 4009768 by Andrew.Rodham Removed explicit names from ScriptName methods, expanded sequencer scripting range functionality Change 4009830 by Jamie.Dale Added support for UPARAM(ref) on arguments exposed to Python For standard functions, this just produces an input and output for the same argument (we can't mutate the input due to potential coercion). For ScriptMethod functions that use it on the 'self' argument, this will mark the function as "inline" and have the function apply the result of the 'self' argument back onto the 'self' instance after calling the function. Change 4010034 by Jamie.Dale Added support for init_unreal.py start-up scripts These can be placed in any known sys.path in Python, including the Content/Python folders we automatically add, and the UnrealEngine/Python directory under the users home directory. Change 4010422 by Jamie.Dale Improved errror reporting during Python generation It will now ensure if a debugger is attached to draw programmer attention to an error. Change 4010498 by Patrick.Boutot Remove unnecessary loop Timecode.ToFrameNumber() Change 4011312 by Jamie.Dale Duplicate deprecated names will no longer assert during Python glue generation They will now log a warning and continue Change 4012068 by JeanMichel.Dignard Allow to render thumbnails for newly created packages. - To render a thumbnail, you either need a customer thumbnail renderer or a cached thumbnail. Querying cached thumbnails fails for newly created packages because it calls DoesPackageExist which check on disk. This call is unnecessary since we're relying on FindPackage which only works for packages that are loaded in memory. Change 4013781 by Jamie.Dale FFrame::KismetExecutionMessage (or LogRuntimeError or LogRuntimeWarning) will now produce Python exceptions You can use these to emit warnings or errors from UFunctions wrapped for scripting, and when called from Python they will produce a Python exception (for errors), or Python warning (for warnings). Change 4014337 by Jamie.Dale Struct coercion now errors if you provide a sequence with too many elements This also makes sure that PyConversion doesn't set an error state if ESetErrorState::No is passed (which could have previously happened from type casting calls). Change 4015290 by Andrew.Rodham Sequencer: Moved runtime functionality from ISequencerChannelInterface to IMovieSceneChannelInterface - Rename IBatchChannelInterface to IMovieSceneChannelInterface - Removed MovieScene::Dilate() - Added TMovieSceneChannelTraits::SupportsDefaults to automatically stub out functions relating to channel defaults Change 4015664 by Jamie.Dale Renamed ScriptMathOp meta-data to ScriptOperator Change 4016230 by Jamie.Dale Fixed incorrect make/break path in Importance Sampling Library (for Importance Texture) Change 4017326 by Jamie.Dale Added make and break support in Python Structs that have a native make function will now use this as their constructor. This also adds support for breaking a struct into a tuple, either via a native break function, or via generic property enumeration. Change 4017551 by Jamie.Dale Removed redundant outer parameter from find/load_asset/package Change 4018594 by Jamie.Dale Added ScriptMethodSelfReturn as an alternative to UPARAM(ref) These two function signatures produce the same behavior and have the same cost in Python, the only difference is how they appear to Blueprints (and Blueprints seem to favor non-reference functions). UFUNCTION(..., meta=(ScriptMethod)) static void DoThing(UPARAM(ref) FThingType&, int32); UFUNCTION(..., meta=(ScriptMethod, ScriptMethodSelfReturn)) static FThingType DoThing(FThingType, int32); Change 4020956 by Anousack.Kitisa Added Shotgun to the Level Editor/World Outliner and Content Browser context menus when there's a selected actor or asset. #jira UEENT-1219 Change 4021986 by Anousack.Kitisa Used the Python startup scripts mechanism to launch the Shotgun bootstrap script. Related to Jira UE-57896. Change 4022993 by Jamie.Dale Added support for extra operators on Python structs You can now expose bool conversion and comparison operators (==, !=, <, <=, >, >=) in addition to the previous set of math operators. As part of this there is now stricter signature validation when generating the Python binding. Change 4023226 by Jamie.Dale Added Make and Break function for FSoftClassPath Change 4023348 by Jamie.Dale Exposed some methods and operators for PrimaryAssetId and PrimaryAssetType Change 4027911 by Jamie.Dale Cross-outer redirects are no longer applied in Python #jira UETOOL-1382 Change 4029618 by JeanMichel.Dignard Unreal Studio UX - Made "Unreal Studio" the default tab in the new project wizard if we're using an installed enterprise build. - Create new projects as enterprise projects if we're using an insalled enterprise build. #jira UEENT-1231, UEENT-796 Change 4030217 by Jamie.Dale Exposed ScopedSlowTask to Python #jira UETOOL-1375 Change 4030784 by Matt.Hoffman Sequencer curve editor now shows vertical axis labels. #jira UE-58160 Change 4030858 by JeanLuc.Corenthin Expose LOD creation thru Python: - Create one struct to hold onto reduction settings per LOD - Create one struct to hold onto an array of reduction settings and a parameter to enable of disable automatic computation of screen size - Create new method to apply reduction settings to an array of StaticMeshActors #jira UEENT-1232 Change 4032239 by Jamie.Dale Cleanup pass over wrapped structs - Code dealing with reflected structs now uses UScriptStruct rather than UStruct. - The old PyConversion::NativizeStruct and PyConversion::PythonizeStruct have been renamed to PyConversion::NativizeStructInstance and PyConversion::PythonizeStructInstance. - New PyConversion::NativizeStruct and PyConversion::PythonizeStruct functions have been added to convert an object (or Python type) to a UScriptStruct (akin to what PyConversion::NativizeClass and PyConversion::PythonizeClass does for UClass). Change 4032247 by Jamie.Dale Cleaned up some Python slow task code Change 4032251 by Jamie.Dale Added functions to get the Python type associated with an Unreal class, struct, or enum Change 4032258 by Jamie.Dale Added Python iterators for Unreal objects, classes, and structs, as well as the Python types wrapped by Unreal classes or structs #jira UETOOL-1380 Change 4032320 by Jamie.Dale Fixed Python object iterators skipping their first item Change 4032321 by Jamie.Dale Added Python iterators for actors and selected actors #jira UETOOL-1380 Change 4033908 by Anousack.Kitisa Added Shotgun settings for metadata tags. #jira UEENT-1175 Change 4033909 by Anousack.Kitisa Added wrapper function to sync Content Browser to assets for scripting. #jira UEENT-1218 Change 4034951 by Matt.Hoffman Media Tracks now highlight when added to a Sequence/UMG animation. Change 4034966 by Jamie.Dale Added GIL locks around post_init code that can be called from C++ Change 4035019 by Matt.Hoffman UMG Render Transforms + Margins now support infinite sections. Change 4035470 by Andrew.Rodham Introduced a common base class for all movie scene channel data, FMovieSceneChannel. Removed IMovieSceneChannelInterface. Renamed FMovieSceneChannelEditorData to FMovieSceneChannelMetaData. Renamed FMovieSceneChannel and TMovieSceneChannel to FMovieSceneChannelData and TMovieSceneChannelData, to make way for common channel base class. Renamed instances of 'specialized' channel editor data to 'extended' channel editor data. Introduced non-templated FMovieSceneChannelHandle and a templated version. Changed internal implementation to use a lookup rather than a directly resolved weak ptr. Various pieces of documentation and cleanup. Change 4037112 by Max.Chen Sequencer: Added some missing RF_Transactional flags to newly created sections. Change 4037121 by Max.Chen Sequence Recorder: Timecode recording Introduced an FSourceTimecode which is saved as editor only data to the MovieSceneSection and MovieScene. FSourceTimecode consists of an FFrameNumber delta that correlates the section's initial start time to an FTimecode. The FFrameNumber is adjusted whenever the section is moved. One use case for this is through sequence recorder, which captures the timecode at the start of recording and saves an FSourceTimecode per movie scene section it creates. If the section is moved, it can always be returned to its source timecode by the section's right click menu, "Sync to Source Timecode". #jira UESEQ-406 Change 4038462 by Jamie.Dale Added support for using Python callables with delegates All the "x_function" methods on delegates and multicast delegates now have an "x_callable" equivalent that take a Python callable (we attempt basic validation of the signature, but that only allows us to check the input argument count is what we expect). Internally the callable is wrapped in a UObject, so certain GC restrictions are present (and is why coercion is disabled for callables). Delegates wrapped in Python (including as a direct property of an object or struct, or inside a container) will be kept alive via the Python reference collection, however once there are no Python references left the proxy object will be allowed to die unless something external has taken a reference to the proxy object. Change 4039123 by James.McNatton Remove dependency on SteamController in VirtualCamera #rb none Change 4039162 by Jamie.Dale Fixed linter warnings about unescaped backslashes in docstrings Change 4039170 by Jamie.Dale No longer expose deprecated functions or properties if they clash with another Python exposed item Change 4039429 by Max.Chen Sequence Recorder: Swap to editor actors on end PIE if the actors to record were set to the PIE actors Change 4039442 by Max.Chen Sequence Recorder: Find the existing object binding and record into it if it exists. When recording to an existing object binding, if the track exists, remove all animation data and reuse the track. Change 4039477 by Jamie.Dale Added warnings for conflicting Python type and field names Change 4039478 by Jamie.Dale Fixed warnings for conflicting Python type and field names Change 4039511 by Max.Chen Sequencer: Remove all animation data for spawn track Change 4040649 by James.McNatton Multiple Virtual Camera bug fixes - Removed QAGame mannequin from test map - Fixed errors being generated when trying to load preset - Presets now properly load and save axis settings - Deleted presets should no longer linger in menus - Presets now save and load favorite status Change 4041356 by Max.Chen Sequence Recorder: Takes system #jira UESP-544 Change 4041589 by Jamie.Dale Added C++ source information (plugin, module, and file) to the Python doc string Change 4041746 by Jamie.Dale Made ScriptOperator more relaxed about its signature validation as long as the additional input parameters are defaulted Change 4041757 by James.McNatton Virtual Camera Bug Fixes - The Input Source dropdown now accurately reflects user selection - Input source changed to EditDefaultsOnly - Focus should no longer be set when the settings menu is open Change 4041823 by Jamie.Dale Made ScriptOperator more relaxed about its signature validation for defaulted input parameters Existing Blueprint exposed operator functions may both default required arguments, and add additional default arguments. ScriptOperator will now accept both of these as long as there are enough arguments, but not too many non-defaulted arguments. Change 4042956 by James.McNatton VirtualCamera bug fixes related to focus plane visualization - Removed extra focus plane that was being displayed - Added logic to adjust for nonuniform scaling of objects when settings up tracking focus Change 4043400 by James.McNatton Multiple bug fixes related to saving various values - Now saves matte opacity and updates on load - Now saves filmback format name and updates on load - Now saves desired distance units and updates on load Change 4043481 by James.McNatton Fixed issue in Virtual Camera where joystick movement would not properly apply locks after rotating #rb none Change 4044358 by Jamie.Dale Fixed some cases where empty default values would be lost from UHT Eg, empty strings, null objects Change 4044362 by Jamie.Dale Fixed old-style enums being missed by the Python glue generation if they're only referenced by a property of function Change 4044371 by Jamie.Dale Fixed default value application for some struct types that use a custom default value format when exported by UHT Change 4044417 by Max.Chen Sequence Recorder: Better default group names with an underscore separator for letters Change 4045164 by Jamie.Dale Hardened usage of CopyScriptStruct to ensure that the source type is a child of the destination type, and that the destination type is used to copy (to still allow slicing of derived data) Change 4045195 by Jamie.Dale Updated FPropValueOnScope::GetValue to be able to return the value for a particular array index Change 4045589 by James.McNatton Fixed packaging error for VirtualCamera plugin - Plugin is now a runtime plugin rather than developer - Fixed up associated warnings with saving and loading in editor Change 4046208 by James.McNatton Virtual Camera bug fixes - Adjusted how mattes and filmback works together - Should now always respond properly to changing filmback settings in UI - Should now match the correct view size within the matte under all circumstances Change 4046372 by Max.Chen Sequencer: Fix subsequence binding ids. #jira UE-55337 Change 4046694 by Max.Chen Sequence Recorder: Compile the template before finding the camera sequence id since the precompiled template is not up to date. Change 4046801 by Jamie.Dale Improved default values and return types used in the unreal.py stub file - Object and Struct types generate an __init__ function with the correct signature. - Struct __init__ functions list the correct default values (including when using make/break functions). - Methods now list the correct default values. - Get/Set getters return a value of the correct type. - Get/Set setters are no longer exported for read-only properties. - Constants resolve to the correct type and value. #jira UETOOL-1377 Change 4047023 by Jamie.Dale Added missing hook-up for % and %= in Python Change 4047100 by Jamie.Dale Operators are now exposed to unreal.py and generate docs stating which overloads are available Change 4047105 by Jamie.Dale String is now "str" in doc strings to match the Python type Change 4047714 by Max.Chen Sequencer: Resolved merge conflicts with Dev-Sequencer Change 4048150 by Jamie.Dale Fixed single-culture PO import/export failing #jira UE-47079 Change 4048653 by Andrew.Rodham Sequencer: Automatic re-evaluation is now suppressed for external changes that modified only default values on channels - The issue is that moving an object that is partially-keyed in sequencer, with auto-key off, will set default values for the non-keyed channels. Doing so will dirty the sequence, which causes a re-evaluation, which re-evalutes the keyed channels, which effectively undoes the external change. - This is now fixed by suppressing the automatic re-evaluation for a specific signature of a specific sequence, if that is the only thing that has dirtied the sequence. Any subsequent changes to the sequence will cause a re-evaluation, and the suppression to be wiped. #jira UE-57519 #jira UE-58487 Change 4048814 by Jamie.Dale Fixed syntax error if an enum had an unknown value Change 4048819 by Jamie.Dale Fixed struct init functions having the wrong default values Change 4048856 by JeanLuc.Corenthin - Removed LOD & collision functions from UEditorLevelLibrary - Created a new class, UEditorMeshLibrary, to hold onto functionalities related to StaticMeshes - Added method to set LODs on a static mesh - Added method to remove LODs from a static mesh - Added method to get number of LODs on a static mesh - Added method to get number of simple collisions onto a static mesh - Added method to get number of convex collisions onto a static mesh - Added method to add convex collision onto a static mesh - Added method to remove all collisions onto a static mesh #jira UEENT-1232 #jira UEENT-1233 Change 4048961 by Jamie.Dale Improved formatting of output parameters in doc strings #jira UETOOL-1376 Change 4048988 by Jamie.Dale Fixed context leakage between the console and files, and import "unreal" by default now in the console #jira UETOOL-1379 Change 4049912 by Max.Chen Sequence Recorder: Minor recording group name improvements. - Initialize newly created actor group with existing actor group's base path. - When duplicating, use the current group's name as the base. - When typing in a name, if it fits the group format, the name should be allowable if it doesn't conflict with existing group names/assets. Change 4049934 by Andrew.Rodham Sequencer: Minor clean-up of sequencer interfaces and overloads - Replaced remaining instances of void* with FMovieSceneChannel* now that we mandate a common base class - Changed remaining explicit calls to SetDefault to SetChannelDefault overload so it works correctly with the SupportsDefaults trait - Exposed ability to manually implement an ISequencerChannelInterface rather than using the default templated one Change 4050608 by conan.reis Was getting link error about use of FFrameTime in ULevelSequencePlaybackController::PlayFromBeginning() in the VirtualCamera plugin so added TimeManagement to its dependant modules so it compiles again. Change 4050899 by Max.Chen Sequencer: Allow actor components for synchronization #jira UE-58468 Change 4050900 by Max.Chen Sequence Recorder: Don't create a spawn section if the object is a possessable #jira UE-58272 Change 4050904 by Max.Chen Curve Editor: Fix for evaluation a section of time when one key is non-weighted and the other is weighted. What we do is evaluate them both as being weighted, but we don't have the weight value for the non-weighted tangent. The weight of the non-weighted tangent is implicilty 1/3rd the distance between the two points, so we just calculate that if needed. #jira UE-58573 Change 4050905 by Max.Chen Curve Editor: When calculating vertical extents find feature points where slopes are zero and check them in addition to the keys if the curve is cubic. Curves now fit correclty vertically. Also changed fudge to 5% from 10% to match up old editor. Tighter fits seems better. #jira UE-58571 Change 4050972 by James.McNatton Added functions to ISequenceRecorder - Calling StartRecording with an empty array now triggers recording without clearning queued recordings - Added function to queue an actor to be recorded - Added function to check the next take number for a given actor when using groups Change 4050994 by James.McNatton Bug fixes for Virtual Camera - Preset menu now shows dates in the timestamp - Resetting offsets now alerts the system to update UI Change 4051431 by David.Hibbitts Added a component and blueprint library to access LiveLink data in blueprints which also works in editor. Deprecated LiveLink Driven component #jira UESP-577 Change 4051475 by Patrick.Boutot Rename EditorMeshLibrary Merge AssetScriptingUtilititesEditor with EditorScriptingUtilities. Add Redirects. Change 4051558 by Patrick.Boutot EngineCustomTimeStep returns true when we also want to perform the default engine code. Change 4052106 by Andrew.Rodham Sequencer: Adding an example that creates a sequence out of the current editor selection Change 4052205 by Anousack.Kitisa Fixed selected asset paths referenced by selected actors when using context Shotgun menu. Added function to retrieve the work area directory for Shotgun. #jira UEENT-1220 Change 4052951 by James.McNatton Virtual Camera Sequence Recorder updates to integrate new take system - Takes no longer display unless sequence recorder has a group selected - Adjusted fix to packaging error - FPS value will no longer appear if sequence recorder isn't available Change 4053130 by mason.seay Updated Game Mode Override Change 4053273 by James.McNatton Virtual Camera cleanup adjustments Change 4053627 by Max.Chen Sequencer: Disable bind sequencer to PIE/simulate while recording. Change 4053628 by Max.Chen Sequence Recorder: Fix target animation not persisting #jira UE-58508 Change 4053871 by Max.Chen Image Plate: Fix icon path Change 4054370 by Patrick.Boutot Remove LiveLink warning. Create base a class for FLiveLinkFrameRate as suggested in GenericPlatformCompilerPreSetup.h Change 4054447 by Darren.Pegg AJA low level device API Blackmagic low level API MediaIOCore changes to support AJA/Blackmagic changes AJA Module converted to use MediaIOCore Blackmagic Module changes for MediaIOCore Blackmagic/AJA Binary files Change 4054769 by Patrick.Boutot Packaging error issue introduce with CL 4054370. #jira UE-58749 Change 4055443 by Max.Chen Sequencer: Fix crash in adding filler shot #jira UE-58767 Change 4056577 by JeanMichel.Dignard Fixed crash with automation tests. We would bind the default UEditorEngine to Automation and on map load, it would call PIE on GEditor but with recent changes, PIE is called on this and the default UEditorEngine is not initialized so it would crash with a null GameViewportClass. Now we'll bind Automation on UEditorEngine InitializeObjectReferences so that we're in a good state and it's only called for GEditor. #jira UE-58792 Change 4057238 by Jamie.Dale Fixed crash when renaming Python generated classes or structs Change 4058435 by Jamie.Dale Fixed lingering exception state when converting a dict to a struct Change 4058486 by mason.seay Removed remote.host call from map [CL 4060164 by JeanMichel Dignard in Main branch]
2018-05-09 10:24:50 -04:00
return EditorViewportSnapper.IsValid() && EditorViewportSnapper->IsSnapRotationEnabled();
}
bool FSnappingUtils::IsScaleSnapEnabled()
{
Copying //UE4/Dev-Enterprise to //UE4/Dev-Main (Source: //UE4/Dev-Enterprise @ 4059031) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3974233 by Rex.Hill Optimized BuildStaticMeshVertexAndIndexBuffers and TEdgeBuilder Change 3974234 by Rex.Hill Reduced number of calls to SaveRawMesh and LoadRawMesh Change 3974235 by Rex.Hill Optimized SaveRawMesh by pre-allocating buffer Change 3981370 by Jamie.Dale Added support for deprecated (renamed) classes, structs, enums, functions, and properties in Python The glue code generation will now use the existing redirects system to build deprecated entries for old names. You can also specify deprecated names to the ScriptName and ScriptMethod meta-data values by adding extra semi-colon separated entries (the first entry is the current name). Accessing deprecated objects in Python leads to a deprecation warning when developer mode is enabled. Change 3983875 by Jamie.Dale Exposed some asset registry functions that may be useful in a commandlet environment Change 3983901 by Jamie.Dale Hoisted some AssetData helpers onto the struct in Python Change 3988367 by Jamie.Dale Python now honors EditInstanceOnly and EditDefaultsOnly when setting property values Change 3988369 by Jamie.Dale Exposed generic get_default_object function that takes a type and returns you the CDO This is needed for types that aren't natively exposed to Python (such as Blueprint generated types) Change 3989890 by Jamie.Dale Moved BlutilityActor to be Private in EditorScriptingUtils This can be removed once it's no longer needed. Change 3989900 by Jamie.Dale Updated EditorScriptingUtilities to use the Public/Private folder structure for source code Change 3990082 by Anousack.Kitisa Added plugin for Shotgun integration in Unreal. #jira UEENT-959 Change 3990783 by Anousack.Kitisa Changed ShotgunMenuItem to a struct. Change 3991139 by Jamie.Dale Minimized use of GUnrealEd (favoring GEditor) so that this code can be used by commandlets Removed redundant usages of GEditor/GUnrealEd from within UEditorEngine itself, and fixed cases where null data was being accessed. Testing that loading, saving, and creating a new blank map will now work in a commandlet without crashing. Change 3993189 by Jamie.Dale Fixed some mismatched return types Change 3993191 by Jamie.Dale Inital support for taking the GIL at key points where external C code calls into Python Change 3993683 by Patrick.Boutot [LTC] Add a CustomTimeStep that decode a LinearTimecode from the MediaSource. The MediaPlayer need to support buffering and should not run late since it's used to tick the engine time. Update DropTimecode to use the new Timecode structure in TimeManagement. Change 3994430 by Jamie.Dale Adjusted how inline structs work so that types known at compile time can inline allocate without being fully hand-wrapped in Python They must now be registered via FPyWrapperTypeRegistry::RegisterInlineStructFactory before we start generating wrapped types Change 3996083 by Jamie.Dale Added a distinct type for generated enum types so that you can query their available enum entries Change 3998253 by conan.reis Remove redundant Perforce error output from the log Change 4000307 by JeanMichel.Dignard Optimized FFbxImporter::ValidateAllMeshesAreReferenceByNodeAttribute() - Stored all scene nodes geometry ids in a set instead of looping on all scene nodes for every geometry. O(N) instead of O(N^2). - For 38685 scene nodes and 5417 geometry, the time went from 2 min 21.688 s to 0 min 0.098 s. Change 4000605 by Jamie.Dale Added support for constant "hoisting" This allows you to tag a helper function that returns a constant with ScriptConstant meta-data (providing a potentially overridden name) to "hoist" that helper function to be a constant of the type it operates on when wrapped for Python (ScriptConstantHost can be used to host the constant on a struct rather than its own object). Change 4001617 by Jamie.Dale Updated ScriptMethod and ScriptConstant to allow hoisting onto other classes as well as structs This allows you to have a runtime class be extended via methods in an editor-only module Change 4005287 by Jamie.Dale Added a GIL lock when Slate Tick events call back into Python Change 4005383 by Andrew.Rodham Sequencer: Initial scripting exposure and support First pass includes the following: - Find/add/interate master tracks - Find/add/interate bindings (both possessables and spawnables) - Find/add/interate tracks on bindings - Add/interate sections on tracks - Get/Set section ranges Change 4008609 by Jamie.Dale Added some missing native Python types to the documentation Native modules now build up a list of types and functions associated with them. This information is then passed through to the document generation to ensure that all exposed native types and functions are documented. In addition, any native Python module files are now assimilated into the unreal.py stub file and parsed so that they can be documented too. Change 4008654 by Jamie.Dale Allow math operators to use the base type versions unless overridden Change 4009740 by Patrick.Boutot Add BP function to convert a Timecode into a string. Change 4009763 by Patrick.Boutot Update AudioCapture to retreive the SampleRate. Used by the LinearTimecode. Change the requested format from int16 to float since we converted it into that format later on. Change 4009768 by Andrew.Rodham Removed explicit names from ScriptName methods, expanded sequencer scripting range functionality Change 4009830 by Jamie.Dale Added support for UPARAM(ref) on arguments exposed to Python For standard functions, this just produces an input and output for the same argument (we can't mutate the input due to potential coercion). For ScriptMethod functions that use it on the 'self' argument, this will mark the function as "inline" and have the function apply the result of the 'self' argument back onto the 'self' instance after calling the function. Change 4010034 by Jamie.Dale Added support for init_unreal.py start-up scripts These can be placed in any known sys.path in Python, including the Content/Python folders we automatically add, and the UnrealEngine/Python directory under the users home directory. Change 4010422 by Jamie.Dale Improved errror reporting during Python generation It will now ensure if a debugger is attached to draw programmer attention to an error. Change 4010498 by Patrick.Boutot Remove unnecessary loop Timecode.ToFrameNumber() Change 4011312 by Jamie.Dale Duplicate deprecated names will no longer assert during Python glue generation They will now log a warning and continue Change 4012068 by JeanMichel.Dignard Allow to render thumbnails for newly created packages. - To render a thumbnail, you either need a customer thumbnail renderer or a cached thumbnail. Querying cached thumbnails fails for newly created packages because it calls DoesPackageExist which check on disk. This call is unnecessary since we're relying on FindPackage which only works for packages that are loaded in memory. Change 4013781 by Jamie.Dale FFrame::KismetExecutionMessage (or LogRuntimeError or LogRuntimeWarning) will now produce Python exceptions You can use these to emit warnings or errors from UFunctions wrapped for scripting, and when called from Python they will produce a Python exception (for errors), or Python warning (for warnings). Change 4014337 by Jamie.Dale Struct coercion now errors if you provide a sequence with too many elements This also makes sure that PyConversion doesn't set an error state if ESetErrorState::No is passed (which could have previously happened from type casting calls). Change 4015290 by Andrew.Rodham Sequencer: Moved runtime functionality from ISequencerChannelInterface to IMovieSceneChannelInterface - Rename IBatchChannelInterface to IMovieSceneChannelInterface - Removed MovieScene::Dilate() - Added TMovieSceneChannelTraits::SupportsDefaults to automatically stub out functions relating to channel defaults Change 4015664 by Jamie.Dale Renamed ScriptMathOp meta-data to ScriptOperator Change 4016230 by Jamie.Dale Fixed incorrect make/break path in Importance Sampling Library (for Importance Texture) Change 4017326 by Jamie.Dale Added make and break support in Python Structs that have a native make function will now use this as their constructor. This also adds support for breaking a struct into a tuple, either via a native break function, or via generic property enumeration. Change 4017551 by Jamie.Dale Removed redundant outer parameter from find/load_asset/package Change 4018594 by Jamie.Dale Added ScriptMethodSelfReturn as an alternative to UPARAM(ref) These two function signatures produce the same behavior and have the same cost in Python, the only difference is how they appear to Blueprints (and Blueprints seem to favor non-reference functions). UFUNCTION(..., meta=(ScriptMethod)) static void DoThing(UPARAM(ref) FThingType&, int32); UFUNCTION(..., meta=(ScriptMethod, ScriptMethodSelfReturn)) static FThingType DoThing(FThingType, int32); Change 4020956 by Anousack.Kitisa Added Shotgun to the Level Editor/World Outliner and Content Browser context menus when there's a selected actor or asset. #jira UEENT-1219 Change 4021986 by Anousack.Kitisa Used the Python startup scripts mechanism to launch the Shotgun bootstrap script. Related to Jira UE-57896. Change 4022993 by Jamie.Dale Added support for extra operators on Python structs You can now expose bool conversion and comparison operators (==, !=, <, <=, >, >=) in addition to the previous set of math operators. As part of this there is now stricter signature validation when generating the Python binding. Change 4023226 by Jamie.Dale Added Make and Break function for FSoftClassPath Change 4023348 by Jamie.Dale Exposed some methods and operators for PrimaryAssetId and PrimaryAssetType Change 4027911 by Jamie.Dale Cross-outer redirects are no longer applied in Python #jira UETOOL-1382 Change 4029618 by JeanMichel.Dignard Unreal Studio UX - Made "Unreal Studio" the default tab in the new project wizard if we're using an installed enterprise build. - Create new projects as enterprise projects if we're using an insalled enterprise build. #jira UEENT-1231, UEENT-796 Change 4030217 by Jamie.Dale Exposed ScopedSlowTask to Python #jira UETOOL-1375 Change 4030784 by Matt.Hoffman Sequencer curve editor now shows vertical axis labels. #jira UE-58160 Change 4030858 by JeanLuc.Corenthin Expose LOD creation thru Python: - Create one struct to hold onto reduction settings per LOD - Create one struct to hold onto an array of reduction settings and a parameter to enable of disable automatic computation of screen size - Create new method to apply reduction settings to an array of StaticMeshActors #jira UEENT-1232 Change 4032239 by Jamie.Dale Cleanup pass over wrapped structs - Code dealing with reflected structs now uses UScriptStruct rather than UStruct. - The old PyConversion::NativizeStruct and PyConversion::PythonizeStruct have been renamed to PyConversion::NativizeStructInstance and PyConversion::PythonizeStructInstance. - New PyConversion::NativizeStruct and PyConversion::PythonizeStruct functions have been added to convert an object (or Python type) to a UScriptStruct (akin to what PyConversion::NativizeClass and PyConversion::PythonizeClass does for UClass). Change 4032247 by Jamie.Dale Cleaned up some Python slow task code Change 4032251 by Jamie.Dale Added functions to get the Python type associated with an Unreal class, struct, or enum Change 4032258 by Jamie.Dale Added Python iterators for Unreal objects, classes, and structs, as well as the Python types wrapped by Unreal classes or structs #jira UETOOL-1380 Change 4032320 by Jamie.Dale Fixed Python object iterators skipping their first item Change 4032321 by Jamie.Dale Added Python iterators for actors and selected actors #jira UETOOL-1380 Change 4033908 by Anousack.Kitisa Added Shotgun settings for metadata tags. #jira UEENT-1175 Change 4033909 by Anousack.Kitisa Added wrapper function to sync Content Browser to assets for scripting. #jira UEENT-1218 Change 4034951 by Matt.Hoffman Media Tracks now highlight when added to a Sequence/UMG animation. Change 4034966 by Jamie.Dale Added GIL locks around post_init code that can be called from C++ Change 4035019 by Matt.Hoffman UMG Render Transforms + Margins now support infinite sections. Change 4035470 by Andrew.Rodham Introduced a common base class for all movie scene channel data, FMovieSceneChannel. Removed IMovieSceneChannelInterface. Renamed FMovieSceneChannelEditorData to FMovieSceneChannelMetaData. Renamed FMovieSceneChannel and TMovieSceneChannel to FMovieSceneChannelData and TMovieSceneChannelData, to make way for common channel base class. Renamed instances of 'specialized' channel editor data to 'extended' channel editor data. Introduced non-templated FMovieSceneChannelHandle and a templated version. Changed internal implementation to use a lookup rather than a directly resolved weak ptr. Various pieces of documentation and cleanup. Change 4037112 by Max.Chen Sequencer: Added some missing RF_Transactional flags to newly created sections. Change 4037121 by Max.Chen Sequence Recorder: Timecode recording Introduced an FSourceTimecode which is saved as editor only data to the MovieSceneSection and MovieScene. FSourceTimecode consists of an FFrameNumber delta that correlates the section's initial start time to an FTimecode. The FFrameNumber is adjusted whenever the section is moved. One use case for this is through sequence recorder, which captures the timecode at the start of recording and saves an FSourceTimecode per movie scene section it creates. If the section is moved, it can always be returned to its source timecode by the section's right click menu, "Sync to Source Timecode". #jira UESEQ-406 Change 4038462 by Jamie.Dale Added support for using Python callables with delegates All the "x_function" methods on delegates and multicast delegates now have an "x_callable" equivalent that take a Python callable (we attempt basic validation of the signature, but that only allows us to check the input argument count is what we expect). Internally the callable is wrapped in a UObject, so certain GC restrictions are present (and is why coercion is disabled for callables). Delegates wrapped in Python (including as a direct property of an object or struct, or inside a container) will be kept alive via the Python reference collection, however once there are no Python references left the proxy object will be allowed to die unless something external has taken a reference to the proxy object. Change 4039123 by James.McNatton Remove dependency on SteamController in VirtualCamera #rb none Change 4039162 by Jamie.Dale Fixed linter warnings about unescaped backslashes in docstrings Change 4039170 by Jamie.Dale No longer expose deprecated functions or properties if they clash with another Python exposed item Change 4039429 by Max.Chen Sequence Recorder: Swap to editor actors on end PIE if the actors to record were set to the PIE actors Change 4039442 by Max.Chen Sequence Recorder: Find the existing object binding and record into it if it exists. When recording to an existing object binding, if the track exists, remove all animation data and reuse the track. Change 4039477 by Jamie.Dale Added warnings for conflicting Python type and field names Change 4039478 by Jamie.Dale Fixed warnings for conflicting Python type and field names Change 4039511 by Max.Chen Sequencer: Remove all animation data for spawn track Change 4040649 by James.McNatton Multiple Virtual Camera bug fixes - Removed QAGame mannequin from test map - Fixed errors being generated when trying to load preset - Presets now properly load and save axis settings - Deleted presets should no longer linger in menus - Presets now save and load favorite status Change 4041356 by Max.Chen Sequence Recorder: Takes system #jira UESP-544 Change 4041589 by Jamie.Dale Added C++ source information (plugin, module, and file) to the Python doc string Change 4041746 by Jamie.Dale Made ScriptOperator more relaxed about its signature validation as long as the additional input parameters are defaulted Change 4041757 by James.McNatton Virtual Camera Bug Fixes - The Input Source dropdown now accurately reflects user selection - Input source changed to EditDefaultsOnly - Focus should no longer be set when the settings menu is open Change 4041823 by Jamie.Dale Made ScriptOperator more relaxed about its signature validation for defaulted input parameters Existing Blueprint exposed operator functions may both default required arguments, and add additional default arguments. ScriptOperator will now accept both of these as long as there are enough arguments, but not too many non-defaulted arguments. Change 4042956 by James.McNatton VirtualCamera bug fixes related to focus plane visualization - Removed extra focus plane that was being displayed - Added logic to adjust for nonuniform scaling of objects when settings up tracking focus Change 4043400 by James.McNatton Multiple bug fixes related to saving various values - Now saves matte opacity and updates on load - Now saves filmback format name and updates on load - Now saves desired distance units and updates on load Change 4043481 by James.McNatton Fixed issue in Virtual Camera where joystick movement would not properly apply locks after rotating #rb none Change 4044358 by Jamie.Dale Fixed some cases where empty default values would be lost from UHT Eg, empty strings, null objects Change 4044362 by Jamie.Dale Fixed old-style enums being missed by the Python glue generation if they're only referenced by a property of function Change 4044371 by Jamie.Dale Fixed default value application for some struct types that use a custom default value format when exported by UHT Change 4044417 by Max.Chen Sequence Recorder: Better default group names with an underscore separator for letters Change 4045164 by Jamie.Dale Hardened usage of CopyScriptStruct to ensure that the source type is a child of the destination type, and that the destination type is used to copy (to still allow slicing of derived data) Change 4045195 by Jamie.Dale Updated FPropValueOnScope::GetValue to be able to return the value for a particular array index Change 4045589 by James.McNatton Fixed packaging error for VirtualCamera plugin - Plugin is now a runtime plugin rather than developer - Fixed up associated warnings with saving and loading in editor Change 4046208 by James.McNatton Virtual Camera bug fixes - Adjusted how mattes and filmback works together - Should now always respond properly to changing filmback settings in UI - Should now match the correct view size within the matte under all circumstances Change 4046372 by Max.Chen Sequencer: Fix subsequence binding ids. #jira UE-55337 Change 4046694 by Max.Chen Sequence Recorder: Compile the template before finding the camera sequence id since the precompiled template is not up to date. Change 4046801 by Jamie.Dale Improved default values and return types used in the unreal.py stub file - Object and Struct types generate an __init__ function with the correct signature. - Struct __init__ functions list the correct default values (including when using make/break functions). - Methods now list the correct default values. - Get/Set getters return a value of the correct type. - Get/Set setters are no longer exported for read-only properties. - Constants resolve to the correct type and value. #jira UETOOL-1377 Change 4047023 by Jamie.Dale Added missing hook-up for % and %= in Python Change 4047100 by Jamie.Dale Operators are now exposed to unreal.py and generate docs stating which overloads are available Change 4047105 by Jamie.Dale String is now "str" in doc strings to match the Python type Change 4047714 by Max.Chen Sequencer: Resolved merge conflicts with Dev-Sequencer Change 4048150 by Jamie.Dale Fixed single-culture PO import/export failing #jira UE-47079 Change 4048653 by Andrew.Rodham Sequencer: Automatic re-evaluation is now suppressed for external changes that modified only default values on channels - The issue is that moving an object that is partially-keyed in sequencer, with auto-key off, will set default values for the non-keyed channels. Doing so will dirty the sequence, which causes a re-evaluation, which re-evalutes the keyed channels, which effectively undoes the external change. - This is now fixed by suppressing the automatic re-evaluation for a specific signature of a specific sequence, if that is the only thing that has dirtied the sequence. Any subsequent changes to the sequence will cause a re-evaluation, and the suppression to be wiped. #jira UE-57519 #jira UE-58487 Change 4048814 by Jamie.Dale Fixed syntax error if an enum had an unknown value Change 4048819 by Jamie.Dale Fixed struct init functions having the wrong default values Change 4048856 by JeanLuc.Corenthin - Removed LOD & collision functions from UEditorLevelLibrary - Created a new class, UEditorMeshLibrary, to hold onto functionalities related to StaticMeshes - Added method to set LODs on a static mesh - Added method to remove LODs from a static mesh - Added method to get number of LODs on a static mesh - Added method to get number of simple collisions onto a static mesh - Added method to get number of convex collisions onto a static mesh - Added method to add convex collision onto a static mesh - Added method to remove all collisions onto a static mesh #jira UEENT-1232 #jira UEENT-1233 Change 4048961 by Jamie.Dale Improved formatting of output parameters in doc strings #jira UETOOL-1376 Change 4048988 by Jamie.Dale Fixed context leakage between the console and files, and import "unreal" by default now in the console #jira UETOOL-1379 Change 4049912 by Max.Chen Sequence Recorder: Minor recording group name improvements. - Initialize newly created actor group with existing actor group's base path. - When duplicating, use the current group's name as the base. - When typing in a name, if it fits the group format, the name should be allowable if it doesn't conflict with existing group names/assets. Change 4049934 by Andrew.Rodham Sequencer: Minor clean-up of sequencer interfaces and overloads - Replaced remaining instances of void* with FMovieSceneChannel* now that we mandate a common base class - Changed remaining explicit calls to SetDefault to SetChannelDefault overload so it works correctly with the SupportsDefaults trait - Exposed ability to manually implement an ISequencerChannelInterface rather than using the default templated one Change 4050608 by conan.reis Was getting link error about use of FFrameTime in ULevelSequencePlaybackController::PlayFromBeginning() in the VirtualCamera plugin so added TimeManagement to its dependant modules so it compiles again. Change 4050899 by Max.Chen Sequencer: Allow actor components for synchronization #jira UE-58468 Change 4050900 by Max.Chen Sequence Recorder: Don't create a spawn section if the object is a possessable #jira UE-58272 Change 4050904 by Max.Chen Curve Editor: Fix for evaluation a section of time when one key is non-weighted and the other is weighted. What we do is evaluate them both as being weighted, but we don't have the weight value for the non-weighted tangent. The weight of the non-weighted tangent is implicilty 1/3rd the distance between the two points, so we just calculate that if needed. #jira UE-58573 Change 4050905 by Max.Chen Curve Editor: When calculating vertical extents find feature points where slopes are zero and check them in addition to the keys if the curve is cubic. Curves now fit correclty vertically. Also changed fudge to 5% from 10% to match up old editor. Tighter fits seems better. #jira UE-58571 Change 4050972 by James.McNatton Added functions to ISequenceRecorder - Calling StartRecording with an empty array now triggers recording without clearning queued recordings - Added function to queue an actor to be recorded - Added function to check the next take number for a given actor when using groups Change 4050994 by James.McNatton Bug fixes for Virtual Camera - Preset menu now shows dates in the timestamp - Resetting offsets now alerts the system to update UI Change 4051431 by David.Hibbitts Added a component and blueprint library to access LiveLink data in blueprints which also works in editor. Deprecated LiveLink Driven component #jira UESP-577 Change 4051475 by Patrick.Boutot Rename EditorMeshLibrary Merge AssetScriptingUtilititesEditor with EditorScriptingUtilities. Add Redirects. Change 4051558 by Patrick.Boutot EngineCustomTimeStep returns true when we also want to perform the default engine code. Change 4052106 by Andrew.Rodham Sequencer: Adding an example that creates a sequence out of the current editor selection Change 4052205 by Anousack.Kitisa Fixed selected asset paths referenced by selected actors when using context Shotgun menu. Added function to retrieve the work area directory for Shotgun. #jira UEENT-1220 Change 4052951 by James.McNatton Virtual Camera Sequence Recorder updates to integrate new take system - Takes no longer display unless sequence recorder has a group selected - Adjusted fix to packaging error - FPS value will no longer appear if sequence recorder isn't available Change 4053130 by mason.seay Updated Game Mode Override Change 4053273 by James.McNatton Virtual Camera cleanup adjustments Change 4053627 by Max.Chen Sequencer: Disable bind sequencer to PIE/simulate while recording. Change 4053628 by Max.Chen Sequence Recorder: Fix target animation not persisting #jira UE-58508 Change 4053871 by Max.Chen Image Plate: Fix icon path Change 4054370 by Patrick.Boutot Remove LiveLink warning. Create base a class for FLiveLinkFrameRate as suggested in GenericPlatformCompilerPreSetup.h Change 4054447 by Darren.Pegg AJA low level device API Blackmagic low level API MediaIOCore changes to support AJA/Blackmagic changes AJA Module converted to use MediaIOCore Blackmagic Module changes for MediaIOCore Blackmagic/AJA Binary files Change 4054769 by Patrick.Boutot Packaging error issue introduce with CL 4054370. #jira UE-58749 Change 4055443 by Max.Chen Sequencer: Fix crash in adding filler shot #jira UE-58767 Change 4056577 by JeanMichel.Dignard Fixed crash with automation tests. We would bind the default UEditorEngine to Automation and on map load, it would call PIE on GEditor but with recent changes, PIE is called on this and the default UEditorEngine is not initialized so it would crash with a null GameViewportClass. Now we'll bind Automation on UEditorEngine InitializeObjectReferences so that we're in a good state and it's only called for GEditor. #jira UE-58792 Change 4057238 by Jamie.Dale Fixed crash when renaming Python generated classes or structs Change 4058435 by Jamie.Dale Fixed lingering exception state when converting a dict to a struct Change 4058486 by mason.seay Removed remote.host call from map [CL 4060164 by JeanMichel Dignard in Main branch]
2018-05-09 10:24:50 -04:00
return EditorViewportSnapper.IsValid() && EditorViewportSnapper->IsSnapScaleEnabled();
}
bool FSnappingUtils::IsSnapToActorEnabled()
{
Copying //UE4/Dev-Enterprise to //UE4/Dev-Main (Source: //UE4/Dev-Enterprise @ 4059031) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3974233 by Rex.Hill Optimized BuildStaticMeshVertexAndIndexBuffers and TEdgeBuilder Change 3974234 by Rex.Hill Reduced number of calls to SaveRawMesh and LoadRawMesh Change 3974235 by Rex.Hill Optimized SaveRawMesh by pre-allocating buffer Change 3981370 by Jamie.Dale Added support for deprecated (renamed) classes, structs, enums, functions, and properties in Python The glue code generation will now use the existing redirects system to build deprecated entries for old names. You can also specify deprecated names to the ScriptName and ScriptMethod meta-data values by adding extra semi-colon separated entries (the first entry is the current name). Accessing deprecated objects in Python leads to a deprecation warning when developer mode is enabled. Change 3983875 by Jamie.Dale Exposed some asset registry functions that may be useful in a commandlet environment Change 3983901 by Jamie.Dale Hoisted some AssetData helpers onto the struct in Python Change 3988367 by Jamie.Dale Python now honors EditInstanceOnly and EditDefaultsOnly when setting property values Change 3988369 by Jamie.Dale Exposed generic get_default_object function that takes a type and returns you the CDO This is needed for types that aren't natively exposed to Python (such as Blueprint generated types) Change 3989890 by Jamie.Dale Moved BlutilityActor to be Private in EditorScriptingUtils This can be removed once it's no longer needed. Change 3989900 by Jamie.Dale Updated EditorScriptingUtilities to use the Public/Private folder structure for source code Change 3990082 by Anousack.Kitisa Added plugin for Shotgun integration in Unreal. #jira UEENT-959 Change 3990783 by Anousack.Kitisa Changed ShotgunMenuItem to a struct. Change 3991139 by Jamie.Dale Minimized use of GUnrealEd (favoring GEditor) so that this code can be used by commandlets Removed redundant usages of GEditor/GUnrealEd from within UEditorEngine itself, and fixed cases where null data was being accessed. Testing that loading, saving, and creating a new blank map will now work in a commandlet without crashing. Change 3993189 by Jamie.Dale Fixed some mismatched return types Change 3993191 by Jamie.Dale Inital support for taking the GIL at key points where external C code calls into Python Change 3993683 by Patrick.Boutot [LTC] Add a CustomTimeStep that decode a LinearTimecode from the MediaSource. The MediaPlayer need to support buffering and should not run late since it's used to tick the engine time. Update DropTimecode to use the new Timecode structure in TimeManagement. Change 3994430 by Jamie.Dale Adjusted how inline structs work so that types known at compile time can inline allocate without being fully hand-wrapped in Python They must now be registered via FPyWrapperTypeRegistry::RegisterInlineStructFactory before we start generating wrapped types Change 3996083 by Jamie.Dale Added a distinct type for generated enum types so that you can query their available enum entries Change 3998253 by conan.reis Remove redundant Perforce error output from the log Change 4000307 by JeanMichel.Dignard Optimized FFbxImporter::ValidateAllMeshesAreReferenceByNodeAttribute() - Stored all scene nodes geometry ids in a set instead of looping on all scene nodes for every geometry. O(N) instead of O(N^2). - For 38685 scene nodes and 5417 geometry, the time went from 2 min 21.688 s to 0 min 0.098 s. Change 4000605 by Jamie.Dale Added support for constant "hoisting" This allows you to tag a helper function that returns a constant with ScriptConstant meta-data (providing a potentially overridden name) to "hoist" that helper function to be a constant of the type it operates on when wrapped for Python (ScriptConstantHost can be used to host the constant on a struct rather than its own object). Change 4001617 by Jamie.Dale Updated ScriptMethod and ScriptConstant to allow hoisting onto other classes as well as structs This allows you to have a runtime class be extended via methods in an editor-only module Change 4005287 by Jamie.Dale Added a GIL lock when Slate Tick events call back into Python Change 4005383 by Andrew.Rodham Sequencer: Initial scripting exposure and support First pass includes the following: - Find/add/interate master tracks - Find/add/interate bindings (both possessables and spawnables) - Find/add/interate tracks on bindings - Add/interate sections on tracks - Get/Set section ranges Change 4008609 by Jamie.Dale Added some missing native Python types to the documentation Native modules now build up a list of types and functions associated with them. This information is then passed through to the document generation to ensure that all exposed native types and functions are documented. In addition, any native Python module files are now assimilated into the unreal.py stub file and parsed so that they can be documented too. Change 4008654 by Jamie.Dale Allow math operators to use the base type versions unless overridden Change 4009740 by Patrick.Boutot Add BP function to convert a Timecode into a string. Change 4009763 by Patrick.Boutot Update AudioCapture to retreive the SampleRate. Used by the LinearTimecode. Change the requested format from int16 to float since we converted it into that format later on. Change 4009768 by Andrew.Rodham Removed explicit names from ScriptName methods, expanded sequencer scripting range functionality Change 4009830 by Jamie.Dale Added support for UPARAM(ref) on arguments exposed to Python For standard functions, this just produces an input and output for the same argument (we can't mutate the input due to potential coercion). For ScriptMethod functions that use it on the 'self' argument, this will mark the function as "inline" and have the function apply the result of the 'self' argument back onto the 'self' instance after calling the function. Change 4010034 by Jamie.Dale Added support for init_unreal.py start-up scripts These can be placed in any known sys.path in Python, including the Content/Python folders we automatically add, and the UnrealEngine/Python directory under the users home directory. Change 4010422 by Jamie.Dale Improved errror reporting during Python generation It will now ensure if a debugger is attached to draw programmer attention to an error. Change 4010498 by Patrick.Boutot Remove unnecessary loop Timecode.ToFrameNumber() Change 4011312 by Jamie.Dale Duplicate deprecated names will no longer assert during Python glue generation They will now log a warning and continue Change 4012068 by JeanMichel.Dignard Allow to render thumbnails for newly created packages. - To render a thumbnail, you either need a customer thumbnail renderer or a cached thumbnail. Querying cached thumbnails fails for newly created packages because it calls DoesPackageExist which check on disk. This call is unnecessary since we're relying on FindPackage which only works for packages that are loaded in memory. Change 4013781 by Jamie.Dale FFrame::KismetExecutionMessage (or LogRuntimeError or LogRuntimeWarning) will now produce Python exceptions You can use these to emit warnings or errors from UFunctions wrapped for scripting, and when called from Python they will produce a Python exception (for errors), or Python warning (for warnings). Change 4014337 by Jamie.Dale Struct coercion now errors if you provide a sequence with too many elements This also makes sure that PyConversion doesn't set an error state if ESetErrorState::No is passed (which could have previously happened from type casting calls). Change 4015290 by Andrew.Rodham Sequencer: Moved runtime functionality from ISequencerChannelInterface to IMovieSceneChannelInterface - Rename IBatchChannelInterface to IMovieSceneChannelInterface - Removed MovieScene::Dilate() - Added TMovieSceneChannelTraits::SupportsDefaults to automatically stub out functions relating to channel defaults Change 4015664 by Jamie.Dale Renamed ScriptMathOp meta-data to ScriptOperator Change 4016230 by Jamie.Dale Fixed incorrect make/break path in Importance Sampling Library (for Importance Texture) Change 4017326 by Jamie.Dale Added make and break support in Python Structs that have a native make function will now use this as their constructor. This also adds support for breaking a struct into a tuple, either via a native break function, or via generic property enumeration. Change 4017551 by Jamie.Dale Removed redundant outer parameter from find/load_asset/package Change 4018594 by Jamie.Dale Added ScriptMethodSelfReturn as an alternative to UPARAM(ref) These two function signatures produce the same behavior and have the same cost in Python, the only difference is how they appear to Blueprints (and Blueprints seem to favor non-reference functions). UFUNCTION(..., meta=(ScriptMethod)) static void DoThing(UPARAM(ref) FThingType&, int32); UFUNCTION(..., meta=(ScriptMethod, ScriptMethodSelfReturn)) static FThingType DoThing(FThingType, int32); Change 4020956 by Anousack.Kitisa Added Shotgun to the Level Editor/World Outliner and Content Browser context menus when there's a selected actor or asset. #jira UEENT-1219 Change 4021986 by Anousack.Kitisa Used the Python startup scripts mechanism to launch the Shotgun bootstrap script. Related to Jira UE-57896. Change 4022993 by Jamie.Dale Added support for extra operators on Python structs You can now expose bool conversion and comparison operators (==, !=, <, <=, >, >=) in addition to the previous set of math operators. As part of this there is now stricter signature validation when generating the Python binding. Change 4023226 by Jamie.Dale Added Make and Break function for FSoftClassPath Change 4023348 by Jamie.Dale Exposed some methods and operators for PrimaryAssetId and PrimaryAssetType Change 4027911 by Jamie.Dale Cross-outer redirects are no longer applied in Python #jira UETOOL-1382 Change 4029618 by JeanMichel.Dignard Unreal Studio UX - Made "Unreal Studio" the default tab in the new project wizard if we're using an installed enterprise build. - Create new projects as enterprise projects if we're using an insalled enterprise build. #jira UEENT-1231, UEENT-796 Change 4030217 by Jamie.Dale Exposed ScopedSlowTask to Python #jira UETOOL-1375 Change 4030784 by Matt.Hoffman Sequencer curve editor now shows vertical axis labels. #jira UE-58160 Change 4030858 by JeanLuc.Corenthin Expose LOD creation thru Python: - Create one struct to hold onto reduction settings per LOD - Create one struct to hold onto an array of reduction settings and a parameter to enable of disable automatic computation of screen size - Create new method to apply reduction settings to an array of StaticMeshActors #jira UEENT-1232 Change 4032239 by Jamie.Dale Cleanup pass over wrapped structs - Code dealing with reflected structs now uses UScriptStruct rather than UStruct. - The old PyConversion::NativizeStruct and PyConversion::PythonizeStruct have been renamed to PyConversion::NativizeStructInstance and PyConversion::PythonizeStructInstance. - New PyConversion::NativizeStruct and PyConversion::PythonizeStruct functions have been added to convert an object (or Python type) to a UScriptStruct (akin to what PyConversion::NativizeClass and PyConversion::PythonizeClass does for UClass). Change 4032247 by Jamie.Dale Cleaned up some Python slow task code Change 4032251 by Jamie.Dale Added functions to get the Python type associated with an Unreal class, struct, or enum Change 4032258 by Jamie.Dale Added Python iterators for Unreal objects, classes, and structs, as well as the Python types wrapped by Unreal classes or structs #jira UETOOL-1380 Change 4032320 by Jamie.Dale Fixed Python object iterators skipping their first item Change 4032321 by Jamie.Dale Added Python iterators for actors and selected actors #jira UETOOL-1380 Change 4033908 by Anousack.Kitisa Added Shotgun settings for metadata tags. #jira UEENT-1175 Change 4033909 by Anousack.Kitisa Added wrapper function to sync Content Browser to assets for scripting. #jira UEENT-1218 Change 4034951 by Matt.Hoffman Media Tracks now highlight when added to a Sequence/UMG animation. Change 4034966 by Jamie.Dale Added GIL locks around post_init code that can be called from C++ Change 4035019 by Matt.Hoffman UMG Render Transforms + Margins now support infinite sections. Change 4035470 by Andrew.Rodham Introduced a common base class for all movie scene channel data, FMovieSceneChannel. Removed IMovieSceneChannelInterface. Renamed FMovieSceneChannelEditorData to FMovieSceneChannelMetaData. Renamed FMovieSceneChannel and TMovieSceneChannel to FMovieSceneChannelData and TMovieSceneChannelData, to make way for common channel base class. Renamed instances of 'specialized' channel editor data to 'extended' channel editor data. Introduced non-templated FMovieSceneChannelHandle and a templated version. Changed internal implementation to use a lookup rather than a directly resolved weak ptr. Various pieces of documentation and cleanup. Change 4037112 by Max.Chen Sequencer: Added some missing RF_Transactional flags to newly created sections. Change 4037121 by Max.Chen Sequence Recorder: Timecode recording Introduced an FSourceTimecode which is saved as editor only data to the MovieSceneSection and MovieScene. FSourceTimecode consists of an FFrameNumber delta that correlates the section's initial start time to an FTimecode. The FFrameNumber is adjusted whenever the section is moved. One use case for this is through sequence recorder, which captures the timecode at the start of recording and saves an FSourceTimecode per movie scene section it creates. If the section is moved, it can always be returned to its source timecode by the section's right click menu, "Sync to Source Timecode". #jira UESEQ-406 Change 4038462 by Jamie.Dale Added support for using Python callables with delegates All the "x_function" methods on delegates and multicast delegates now have an "x_callable" equivalent that take a Python callable (we attempt basic validation of the signature, but that only allows us to check the input argument count is what we expect). Internally the callable is wrapped in a UObject, so certain GC restrictions are present (and is why coercion is disabled for callables). Delegates wrapped in Python (including as a direct property of an object or struct, or inside a container) will be kept alive via the Python reference collection, however once there are no Python references left the proxy object will be allowed to die unless something external has taken a reference to the proxy object. Change 4039123 by James.McNatton Remove dependency on SteamController in VirtualCamera #rb none Change 4039162 by Jamie.Dale Fixed linter warnings about unescaped backslashes in docstrings Change 4039170 by Jamie.Dale No longer expose deprecated functions or properties if they clash with another Python exposed item Change 4039429 by Max.Chen Sequence Recorder: Swap to editor actors on end PIE if the actors to record were set to the PIE actors Change 4039442 by Max.Chen Sequence Recorder: Find the existing object binding and record into it if it exists. When recording to an existing object binding, if the track exists, remove all animation data and reuse the track. Change 4039477 by Jamie.Dale Added warnings for conflicting Python type and field names Change 4039478 by Jamie.Dale Fixed warnings for conflicting Python type and field names Change 4039511 by Max.Chen Sequencer: Remove all animation data for spawn track Change 4040649 by James.McNatton Multiple Virtual Camera bug fixes - Removed QAGame mannequin from test map - Fixed errors being generated when trying to load preset - Presets now properly load and save axis settings - Deleted presets should no longer linger in menus - Presets now save and load favorite status Change 4041356 by Max.Chen Sequence Recorder: Takes system #jira UESP-544 Change 4041589 by Jamie.Dale Added C++ source information (plugin, module, and file) to the Python doc string Change 4041746 by Jamie.Dale Made ScriptOperator more relaxed about its signature validation as long as the additional input parameters are defaulted Change 4041757 by James.McNatton Virtual Camera Bug Fixes - The Input Source dropdown now accurately reflects user selection - Input source changed to EditDefaultsOnly - Focus should no longer be set when the settings menu is open Change 4041823 by Jamie.Dale Made ScriptOperator more relaxed about its signature validation for defaulted input parameters Existing Blueprint exposed operator functions may both default required arguments, and add additional default arguments. ScriptOperator will now accept both of these as long as there are enough arguments, but not too many non-defaulted arguments. Change 4042956 by James.McNatton VirtualCamera bug fixes related to focus plane visualization - Removed extra focus plane that was being displayed - Added logic to adjust for nonuniform scaling of objects when settings up tracking focus Change 4043400 by James.McNatton Multiple bug fixes related to saving various values - Now saves matte opacity and updates on load - Now saves filmback format name and updates on load - Now saves desired distance units and updates on load Change 4043481 by James.McNatton Fixed issue in Virtual Camera where joystick movement would not properly apply locks after rotating #rb none Change 4044358 by Jamie.Dale Fixed some cases where empty default values would be lost from UHT Eg, empty strings, null objects Change 4044362 by Jamie.Dale Fixed old-style enums being missed by the Python glue generation if they're only referenced by a property of function Change 4044371 by Jamie.Dale Fixed default value application for some struct types that use a custom default value format when exported by UHT Change 4044417 by Max.Chen Sequence Recorder: Better default group names with an underscore separator for letters Change 4045164 by Jamie.Dale Hardened usage of CopyScriptStruct to ensure that the source type is a child of the destination type, and that the destination type is used to copy (to still allow slicing of derived data) Change 4045195 by Jamie.Dale Updated FPropValueOnScope::GetValue to be able to return the value for a particular array index Change 4045589 by James.McNatton Fixed packaging error for VirtualCamera plugin - Plugin is now a runtime plugin rather than developer - Fixed up associated warnings with saving and loading in editor Change 4046208 by James.McNatton Virtual Camera bug fixes - Adjusted how mattes and filmback works together - Should now always respond properly to changing filmback settings in UI - Should now match the correct view size within the matte under all circumstances Change 4046372 by Max.Chen Sequencer: Fix subsequence binding ids. #jira UE-55337 Change 4046694 by Max.Chen Sequence Recorder: Compile the template before finding the camera sequence id since the precompiled template is not up to date. Change 4046801 by Jamie.Dale Improved default values and return types used in the unreal.py stub file - Object and Struct types generate an __init__ function with the correct signature. - Struct __init__ functions list the correct default values (including when using make/break functions). - Methods now list the correct default values. - Get/Set getters return a value of the correct type. - Get/Set setters are no longer exported for read-only properties. - Constants resolve to the correct type and value. #jira UETOOL-1377 Change 4047023 by Jamie.Dale Added missing hook-up for % and %= in Python Change 4047100 by Jamie.Dale Operators are now exposed to unreal.py and generate docs stating which overloads are available Change 4047105 by Jamie.Dale String is now "str" in doc strings to match the Python type Change 4047714 by Max.Chen Sequencer: Resolved merge conflicts with Dev-Sequencer Change 4048150 by Jamie.Dale Fixed single-culture PO import/export failing #jira UE-47079 Change 4048653 by Andrew.Rodham Sequencer: Automatic re-evaluation is now suppressed for external changes that modified only default values on channels - The issue is that moving an object that is partially-keyed in sequencer, with auto-key off, will set default values for the non-keyed channels. Doing so will dirty the sequence, which causes a re-evaluation, which re-evalutes the keyed channels, which effectively undoes the external change. - This is now fixed by suppressing the automatic re-evaluation for a specific signature of a specific sequence, if that is the only thing that has dirtied the sequence. Any subsequent changes to the sequence will cause a re-evaluation, and the suppression to be wiped. #jira UE-57519 #jira UE-58487 Change 4048814 by Jamie.Dale Fixed syntax error if an enum had an unknown value Change 4048819 by Jamie.Dale Fixed struct init functions having the wrong default values Change 4048856 by JeanLuc.Corenthin - Removed LOD & collision functions from UEditorLevelLibrary - Created a new class, UEditorMeshLibrary, to hold onto functionalities related to StaticMeshes - Added method to set LODs on a static mesh - Added method to remove LODs from a static mesh - Added method to get number of LODs on a static mesh - Added method to get number of simple collisions onto a static mesh - Added method to get number of convex collisions onto a static mesh - Added method to add convex collision onto a static mesh - Added method to remove all collisions onto a static mesh #jira UEENT-1232 #jira UEENT-1233 Change 4048961 by Jamie.Dale Improved formatting of output parameters in doc strings #jira UETOOL-1376 Change 4048988 by Jamie.Dale Fixed context leakage between the console and files, and import "unreal" by default now in the console #jira UETOOL-1379 Change 4049912 by Max.Chen Sequence Recorder: Minor recording group name improvements. - Initialize newly created actor group with existing actor group's base path. - When duplicating, use the current group's name as the base. - When typing in a name, if it fits the group format, the name should be allowable if it doesn't conflict with existing group names/assets. Change 4049934 by Andrew.Rodham Sequencer: Minor clean-up of sequencer interfaces and overloads - Replaced remaining instances of void* with FMovieSceneChannel* now that we mandate a common base class - Changed remaining explicit calls to SetDefault to SetChannelDefault overload so it works correctly with the SupportsDefaults trait - Exposed ability to manually implement an ISequencerChannelInterface rather than using the default templated one Change 4050608 by conan.reis Was getting link error about use of FFrameTime in ULevelSequencePlaybackController::PlayFromBeginning() in the VirtualCamera plugin so added TimeManagement to its dependant modules so it compiles again. Change 4050899 by Max.Chen Sequencer: Allow actor components for synchronization #jira UE-58468 Change 4050900 by Max.Chen Sequence Recorder: Don't create a spawn section if the object is a possessable #jira UE-58272 Change 4050904 by Max.Chen Curve Editor: Fix for evaluation a section of time when one key is non-weighted and the other is weighted. What we do is evaluate them both as being weighted, but we don't have the weight value for the non-weighted tangent. The weight of the non-weighted tangent is implicilty 1/3rd the distance between the two points, so we just calculate that if needed. #jira UE-58573 Change 4050905 by Max.Chen Curve Editor: When calculating vertical extents find feature points where slopes are zero and check them in addition to the keys if the curve is cubic. Curves now fit correclty vertically. Also changed fudge to 5% from 10% to match up old editor. Tighter fits seems better. #jira UE-58571 Change 4050972 by James.McNatton Added functions to ISequenceRecorder - Calling StartRecording with an empty array now triggers recording without clearning queued recordings - Added function to queue an actor to be recorded - Added function to check the next take number for a given actor when using groups Change 4050994 by James.McNatton Bug fixes for Virtual Camera - Preset menu now shows dates in the timestamp - Resetting offsets now alerts the system to update UI Change 4051431 by David.Hibbitts Added a component and blueprint library to access LiveLink data in blueprints which also works in editor. Deprecated LiveLink Driven component #jira UESP-577 Change 4051475 by Patrick.Boutot Rename EditorMeshLibrary Merge AssetScriptingUtilititesEditor with EditorScriptingUtilities. Add Redirects. Change 4051558 by Patrick.Boutot EngineCustomTimeStep returns true when we also want to perform the default engine code. Change 4052106 by Andrew.Rodham Sequencer: Adding an example that creates a sequence out of the current editor selection Change 4052205 by Anousack.Kitisa Fixed selected asset paths referenced by selected actors when using context Shotgun menu. Added function to retrieve the work area directory for Shotgun. #jira UEENT-1220 Change 4052951 by James.McNatton Virtual Camera Sequence Recorder updates to integrate new take system - Takes no longer display unless sequence recorder has a group selected - Adjusted fix to packaging error - FPS value will no longer appear if sequence recorder isn't available Change 4053130 by mason.seay Updated Game Mode Override Change 4053273 by James.McNatton Virtual Camera cleanup adjustments Change 4053627 by Max.Chen Sequencer: Disable bind sequencer to PIE/simulate while recording. Change 4053628 by Max.Chen Sequence Recorder: Fix target animation not persisting #jira UE-58508 Change 4053871 by Max.Chen Image Plate: Fix icon path Change 4054370 by Patrick.Boutot Remove LiveLink warning. Create base a class for FLiveLinkFrameRate as suggested in GenericPlatformCompilerPreSetup.h Change 4054447 by Darren.Pegg AJA low level device API Blackmagic low level API MediaIOCore changes to support AJA/Blackmagic changes AJA Module converted to use MediaIOCore Blackmagic Module changes for MediaIOCore Blackmagic/AJA Binary files Change 4054769 by Patrick.Boutot Packaging error issue introduce with CL 4054370. #jira UE-58749 Change 4055443 by Max.Chen Sequencer: Fix crash in adding filler shot #jira UE-58767 Change 4056577 by JeanMichel.Dignard Fixed crash with automation tests. We would bind the default UEditorEngine to Automation and on map load, it would call PIE on GEditor but with recent changes, PIE is called on this and the default UEditorEngine is not initialized so it would crash with a null GameViewportClass. Now we'll bind Automation on UEditorEngine InitializeObjectReferences so that we're in a good state and it's only called for GEditor. #jira UE-58792 Change 4057238 by Jamie.Dale Fixed crash when renaming Python generated classes or structs Change 4058435 by Jamie.Dale Fixed lingering exception state when converting a dict to a struct Change 4058486 by mason.seay Removed remote.host call from map [CL 4060164 by JeanMichel Dignard in Main branch]
2018-05-09 10:24:50 -04:00
return EditorViewportSnapper.IsValid() && EditorViewportSnapper->IsSnapToActorEnabled();
}
void FSnappingUtils::EnableActorSnap(bool bEnable)
{
Copying //UE4/Dev-Enterprise to //UE4/Dev-Main (Source: //UE4/Dev-Enterprise @ 4059031) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3974233 by Rex.Hill Optimized BuildStaticMeshVertexAndIndexBuffers and TEdgeBuilder Change 3974234 by Rex.Hill Reduced number of calls to SaveRawMesh and LoadRawMesh Change 3974235 by Rex.Hill Optimized SaveRawMesh by pre-allocating buffer Change 3981370 by Jamie.Dale Added support for deprecated (renamed) classes, structs, enums, functions, and properties in Python The glue code generation will now use the existing redirects system to build deprecated entries for old names. You can also specify deprecated names to the ScriptName and ScriptMethod meta-data values by adding extra semi-colon separated entries (the first entry is the current name). Accessing deprecated objects in Python leads to a deprecation warning when developer mode is enabled. Change 3983875 by Jamie.Dale Exposed some asset registry functions that may be useful in a commandlet environment Change 3983901 by Jamie.Dale Hoisted some AssetData helpers onto the struct in Python Change 3988367 by Jamie.Dale Python now honors EditInstanceOnly and EditDefaultsOnly when setting property values Change 3988369 by Jamie.Dale Exposed generic get_default_object function that takes a type and returns you the CDO This is needed for types that aren't natively exposed to Python (such as Blueprint generated types) Change 3989890 by Jamie.Dale Moved BlutilityActor to be Private in EditorScriptingUtils This can be removed once it's no longer needed. Change 3989900 by Jamie.Dale Updated EditorScriptingUtilities to use the Public/Private folder structure for source code Change 3990082 by Anousack.Kitisa Added plugin for Shotgun integration in Unreal. #jira UEENT-959 Change 3990783 by Anousack.Kitisa Changed ShotgunMenuItem to a struct. Change 3991139 by Jamie.Dale Minimized use of GUnrealEd (favoring GEditor) so that this code can be used by commandlets Removed redundant usages of GEditor/GUnrealEd from within UEditorEngine itself, and fixed cases where null data was being accessed. Testing that loading, saving, and creating a new blank map will now work in a commandlet without crashing. Change 3993189 by Jamie.Dale Fixed some mismatched return types Change 3993191 by Jamie.Dale Inital support for taking the GIL at key points where external C code calls into Python Change 3993683 by Patrick.Boutot [LTC] Add a CustomTimeStep that decode a LinearTimecode from the MediaSource. The MediaPlayer need to support buffering and should not run late since it's used to tick the engine time. Update DropTimecode to use the new Timecode structure in TimeManagement. Change 3994430 by Jamie.Dale Adjusted how inline structs work so that types known at compile time can inline allocate without being fully hand-wrapped in Python They must now be registered via FPyWrapperTypeRegistry::RegisterInlineStructFactory before we start generating wrapped types Change 3996083 by Jamie.Dale Added a distinct type for generated enum types so that you can query their available enum entries Change 3998253 by conan.reis Remove redundant Perforce error output from the log Change 4000307 by JeanMichel.Dignard Optimized FFbxImporter::ValidateAllMeshesAreReferenceByNodeAttribute() - Stored all scene nodes geometry ids in a set instead of looping on all scene nodes for every geometry. O(N) instead of O(N^2). - For 38685 scene nodes and 5417 geometry, the time went from 2 min 21.688 s to 0 min 0.098 s. Change 4000605 by Jamie.Dale Added support for constant "hoisting" This allows you to tag a helper function that returns a constant with ScriptConstant meta-data (providing a potentially overridden name) to "hoist" that helper function to be a constant of the type it operates on when wrapped for Python (ScriptConstantHost can be used to host the constant on a struct rather than its own object). Change 4001617 by Jamie.Dale Updated ScriptMethod and ScriptConstant to allow hoisting onto other classes as well as structs This allows you to have a runtime class be extended via methods in an editor-only module Change 4005287 by Jamie.Dale Added a GIL lock when Slate Tick events call back into Python Change 4005383 by Andrew.Rodham Sequencer: Initial scripting exposure and support First pass includes the following: - Find/add/interate master tracks - Find/add/interate bindings (both possessables and spawnables) - Find/add/interate tracks on bindings - Add/interate sections on tracks - Get/Set section ranges Change 4008609 by Jamie.Dale Added some missing native Python types to the documentation Native modules now build up a list of types and functions associated with them. This information is then passed through to the document generation to ensure that all exposed native types and functions are documented. In addition, any native Python module files are now assimilated into the unreal.py stub file and parsed so that they can be documented too. Change 4008654 by Jamie.Dale Allow math operators to use the base type versions unless overridden Change 4009740 by Patrick.Boutot Add BP function to convert a Timecode into a string. Change 4009763 by Patrick.Boutot Update AudioCapture to retreive the SampleRate. Used by the LinearTimecode. Change the requested format from int16 to float since we converted it into that format later on. Change 4009768 by Andrew.Rodham Removed explicit names from ScriptName methods, expanded sequencer scripting range functionality Change 4009830 by Jamie.Dale Added support for UPARAM(ref) on arguments exposed to Python For standard functions, this just produces an input and output for the same argument (we can't mutate the input due to potential coercion). For ScriptMethod functions that use it on the 'self' argument, this will mark the function as "inline" and have the function apply the result of the 'self' argument back onto the 'self' instance after calling the function. Change 4010034 by Jamie.Dale Added support for init_unreal.py start-up scripts These can be placed in any known sys.path in Python, including the Content/Python folders we automatically add, and the UnrealEngine/Python directory under the users home directory. Change 4010422 by Jamie.Dale Improved errror reporting during Python generation It will now ensure if a debugger is attached to draw programmer attention to an error. Change 4010498 by Patrick.Boutot Remove unnecessary loop Timecode.ToFrameNumber() Change 4011312 by Jamie.Dale Duplicate deprecated names will no longer assert during Python glue generation They will now log a warning and continue Change 4012068 by JeanMichel.Dignard Allow to render thumbnails for newly created packages. - To render a thumbnail, you either need a customer thumbnail renderer or a cached thumbnail. Querying cached thumbnails fails for newly created packages because it calls DoesPackageExist which check on disk. This call is unnecessary since we're relying on FindPackage which only works for packages that are loaded in memory. Change 4013781 by Jamie.Dale FFrame::KismetExecutionMessage (or LogRuntimeError or LogRuntimeWarning) will now produce Python exceptions You can use these to emit warnings or errors from UFunctions wrapped for scripting, and when called from Python they will produce a Python exception (for errors), or Python warning (for warnings). Change 4014337 by Jamie.Dale Struct coercion now errors if you provide a sequence with too many elements This also makes sure that PyConversion doesn't set an error state if ESetErrorState::No is passed (which could have previously happened from type casting calls). Change 4015290 by Andrew.Rodham Sequencer: Moved runtime functionality from ISequencerChannelInterface to IMovieSceneChannelInterface - Rename IBatchChannelInterface to IMovieSceneChannelInterface - Removed MovieScene::Dilate() - Added TMovieSceneChannelTraits::SupportsDefaults to automatically stub out functions relating to channel defaults Change 4015664 by Jamie.Dale Renamed ScriptMathOp meta-data to ScriptOperator Change 4016230 by Jamie.Dale Fixed incorrect make/break path in Importance Sampling Library (for Importance Texture) Change 4017326 by Jamie.Dale Added make and break support in Python Structs that have a native make function will now use this as their constructor. This also adds support for breaking a struct into a tuple, either via a native break function, or via generic property enumeration. Change 4017551 by Jamie.Dale Removed redundant outer parameter from find/load_asset/package Change 4018594 by Jamie.Dale Added ScriptMethodSelfReturn as an alternative to UPARAM(ref) These two function signatures produce the same behavior and have the same cost in Python, the only difference is how they appear to Blueprints (and Blueprints seem to favor non-reference functions). UFUNCTION(..., meta=(ScriptMethod)) static void DoThing(UPARAM(ref) FThingType&, int32); UFUNCTION(..., meta=(ScriptMethod, ScriptMethodSelfReturn)) static FThingType DoThing(FThingType, int32); Change 4020956 by Anousack.Kitisa Added Shotgun to the Level Editor/World Outliner and Content Browser context menus when there's a selected actor or asset. #jira UEENT-1219 Change 4021986 by Anousack.Kitisa Used the Python startup scripts mechanism to launch the Shotgun bootstrap script. Related to Jira UE-57896. Change 4022993 by Jamie.Dale Added support for extra operators on Python structs You can now expose bool conversion and comparison operators (==, !=, <, <=, >, >=) in addition to the previous set of math operators. As part of this there is now stricter signature validation when generating the Python binding. Change 4023226 by Jamie.Dale Added Make and Break function for FSoftClassPath Change 4023348 by Jamie.Dale Exposed some methods and operators for PrimaryAssetId and PrimaryAssetType Change 4027911 by Jamie.Dale Cross-outer redirects are no longer applied in Python #jira UETOOL-1382 Change 4029618 by JeanMichel.Dignard Unreal Studio UX - Made "Unreal Studio" the default tab in the new project wizard if we're using an installed enterprise build. - Create new projects as enterprise projects if we're using an insalled enterprise build. #jira UEENT-1231, UEENT-796 Change 4030217 by Jamie.Dale Exposed ScopedSlowTask to Python #jira UETOOL-1375 Change 4030784 by Matt.Hoffman Sequencer curve editor now shows vertical axis labels. #jira UE-58160 Change 4030858 by JeanLuc.Corenthin Expose LOD creation thru Python: - Create one struct to hold onto reduction settings per LOD - Create one struct to hold onto an array of reduction settings and a parameter to enable of disable automatic computation of screen size - Create new method to apply reduction settings to an array of StaticMeshActors #jira UEENT-1232 Change 4032239 by Jamie.Dale Cleanup pass over wrapped structs - Code dealing with reflected structs now uses UScriptStruct rather than UStruct. - The old PyConversion::NativizeStruct and PyConversion::PythonizeStruct have been renamed to PyConversion::NativizeStructInstance and PyConversion::PythonizeStructInstance. - New PyConversion::NativizeStruct and PyConversion::PythonizeStruct functions have been added to convert an object (or Python type) to a UScriptStruct (akin to what PyConversion::NativizeClass and PyConversion::PythonizeClass does for UClass). Change 4032247 by Jamie.Dale Cleaned up some Python slow task code Change 4032251 by Jamie.Dale Added functions to get the Python type associated with an Unreal class, struct, or enum Change 4032258 by Jamie.Dale Added Python iterators for Unreal objects, classes, and structs, as well as the Python types wrapped by Unreal classes or structs #jira UETOOL-1380 Change 4032320 by Jamie.Dale Fixed Python object iterators skipping their first item Change 4032321 by Jamie.Dale Added Python iterators for actors and selected actors #jira UETOOL-1380 Change 4033908 by Anousack.Kitisa Added Shotgun settings for metadata tags. #jira UEENT-1175 Change 4033909 by Anousack.Kitisa Added wrapper function to sync Content Browser to assets for scripting. #jira UEENT-1218 Change 4034951 by Matt.Hoffman Media Tracks now highlight when added to a Sequence/UMG animation. Change 4034966 by Jamie.Dale Added GIL locks around post_init code that can be called from C++ Change 4035019 by Matt.Hoffman UMG Render Transforms + Margins now support infinite sections. Change 4035470 by Andrew.Rodham Introduced a common base class for all movie scene channel data, FMovieSceneChannel. Removed IMovieSceneChannelInterface. Renamed FMovieSceneChannelEditorData to FMovieSceneChannelMetaData. Renamed FMovieSceneChannel and TMovieSceneChannel to FMovieSceneChannelData and TMovieSceneChannelData, to make way for common channel base class. Renamed instances of 'specialized' channel editor data to 'extended' channel editor data. Introduced non-templated FMovieSceneChannelHandle and a templated version. Changed internal implementation to use a lookup rather than a directly resolved weak ptr. Various pieces of documentation and cleanup. Change 4037112 by Max.Chen Sequencer: Added some missing RF_Transactional flags to newly created sections. Change 4037121 by Max.Chen Sequence Recorder: Timecode recording Introduced an FSourceTimecode which is saved as editor only data to the MovieSceneSection and MovieScene. FSourceTimecode consists of an FFrameNumber delta that correlates the section's initial start time to an FTimecode. The FFrameNumber is adjusted whenever the section is moved. One use case for this is through sequence recorder, which captures the timecode at the start of recording and saves an FSourceTimecode per movie scene section it creates. If the section is moved, it can always be returned to its source timecode by the section's right click menu, "Sync to Source Timecode". #jira UESEQ-406 Change 4038462 by Jamie.Dale Added support for using Python callables with delegates All the "x_function" methods on delegates and multicast delegates now have an "x_callable" equivalent that take a Python callable (we attempt basic validation of the signature, but that only allows us to check the input argument count is what we expect). Internally the callable is wrapped in a UObject, so certain GC restrictions are present (and is why coercion is disabled for callables). Delegates wrapped in Python (including as a direct property of an object or struct, or inside a container) will be kept alive via the Python reference collection, however once there are no Python references left the proxy object will be allowed to die unless something external has taken a reference to the proxy object. Change 4039123 by James.McNatton Remove dependency on SteamController in VirtualCamera #rb none Change 4039162 by Jamie.Dale Fixed linter warnings about unescaped backslashes in docstrings Change 4039170 by Jamie.Dale No longer expose deprecated functions or properties if they clash with another Python exposed item Change 4039429 by Max.Chen Sequence Recorder: Swap to editor actors on end PIE if the actors to record were set to the PIE actors Change 4039442 by Max.Chen Sequence Recorder: Find the existing object binding and record into it if it exists. When recording to an existing object binding, if the track exists, remove all animation data and reuse the track. Change 4039477 by Jamie.Dale Added warnings for conflicting Python type and field names Change 4039478 by Jamie.Dale Fixed warnings for conflicting Python type and field names Change 4039511 by Max.Chen Sequencer: Remove all animation data for spawn track Change 4040649 by James.McNatton Multiple Virtual Camera bug fixes - Removed QAGame mannequin from test map - Fixed errors being generated when trying to load preset - Presets now properly load and save axis settings - Deleted presets should no longer linger in menus - Presets now save and load favorite status Change 4041356 by Max.Chen Sequence Recorder: Takes system #jira UESP-544 Change 4041589 by Jamie.Dale Added C++ source information (plugin, module, and file) to the Python doc string Change 4041746 by Jamie.Dale Made ScriptOperator more relaxed about its signature validation as long as the additional input parameters are defaulted Change 4041757 by James.McNatton Virtual Camera Bug Fixes - The Input Source dropdown now accurately reflects user selection - Input source changed to EditDefaultsOnly - Focus should no longer be set when the settings menu is open Change 4041823 by Jamie.Dale Made ScriptOperator more relaxed about its signature validation for defaulted input parameters Existing Blueprint exposed operator functions may both default required arguments, and add additional default arguments. ScriptOperator will now accept both of these as long as there are enough arguments, but not too many non-defaulted arguments. Change 4042956 by James.McNatton VirtualCamera bug fixes related to focus plane visualization - Removed extra focus plane that was being displayed - Added logic to adjust for nonuniform scaling of objects when settings up tracking focus Change 4043400 by James.McNatton Multiple bug fixes related to saving various values - Now saves matte opacity and updates on load - Now saves filmback format name and updates on load - Now saves desired distance units and updates on load Change 4043481 by James.McNatton Fixed issue in Virtual Camera where joystick movement would not properly apply locks after rotating #rb none Change 4044358 by Jamie.Dale Fixed some cases where empty default values would be lost from UHT Eg, empty strings, null objects Change 4044362 by Jamie.Dale Fixed old-style enums being missed by the Python glue generation if they're only referenced by a property of function Change 4044371 by Jamie.Dale Fixed default value application for some struct types that use a custom default value format when exported by UHT Change 4044417 by Max.Chen Sequence Recorder: Better default group names with an underscore separator for letters Change 4045164 by Jamie.Dale Hardened usage of CopyScriptStruct to ensure that the source type is a child of the destination type, and that the destination type is used to copy (to still allow slicing of derived data) Change 4045195 by Jamie.Dale Updated FPropValueOnScope::GetValue to be able to return the value for a particular array index Change 4045589 by James.McNatton Fixed packaging error for VirtualCamera plugin - Plugin is now a runtime plugin rather than developer - Fixed up associated warnings with saving and loading in editor Change 4046208 by James.McNatton Virtual Camera bug fixes - Adjusted how mattes and filmback works together - Should now always respond properly to changing filmback settings in UI - Should now match the correct view size within the matte under all circumstances Change 4046372 by Max.Chen Sequencer: Fix subsequence binding ids. #jira UE-55337 Change 4046694 by Max.Chen Sequence Recorder: Compile the template before finding the camera sequence id since the precompiled template is not up to date. Change 4046801 by Jamie.Dale Improved default values and return types used in the unreal.py stub file - Object and Struct types generate an __init__ function with the correct signature. - Struct __init__ functions list the correct default values (including when using make/break functions). - Methods now list the correct default values. - Get/Set getters return a value of the correct type. - Get/Set setters are no longer exported for read-only properties. - Constants resolve to the correct type and value. #jira UETOOL-1377 Change 4047023 by Jamie.Dale Added missing hook-up for % and %= in Python Change 4047100 by Jamie.Dale Operators are now exposed to unreal.py and generate docs stating which overloads are available Change 4047105 by Jamie.Dale String is now "str" in doc strings to match the Python type Change 4047714 by Max.Chen Sequencer: Resolved merge conflicts with Dev-Sequencer Change 4048150 by Jamie.Dale Fixed single-culture PO import/export failing #jira UE-47079 Change 4048653 by Andrew.Rodham Sequencer: Automatic re-evaluation is now suppressed for external changes that modified only default values on channels - The issue is that moving an object that is partially-keyed in sequencer, with auto-key off, will set default values for the non-keyed channels. Doing so will dirty the sequence, which causes a re-evaluation, which re-evalutes the keyed channels, which effectively undoes the external change. - This is now fixed by suppressing the automatic re-evaluation for a specific signature of a specific sequence, if that is the only thing that has dirtied the sequence. Any subsequent changes to the sequence will cause a re-evaluation, and the suppression to be wiped. #jira UE-57519 #jira UE-58487 Change 4048814 by Jamie.Dale Fixed syntax error if an enum had an unknown value Change 4048819 by Jamie.Dale Fixed struct init functions having the wrong default values Change 4048856 by JeanLuc.Corenthin - Removed LOD & collision functions from UEditorLevelLibrary - Created a new class, UEditorMeshLibrary, to hold onto functionalities related to StaticMeshes - Added method to set LODs on a static mesh - Added method to remove LODs from a static mesh - Added method to get number of LODs on a static mesh - Added method to get number of simple collisions onto a static mesh - Added method to get number of convex collisions onto a static mesh - Added method to add convex collision onto a static mesh - Added method to remove all collisions onto a static mesh #jira UEENT-1232 #jira UEENT-1233 Change 4048961 by Jamie.Dale Improved formatting of output parameters in doc strings #jira UETOOL-1376 Change 4048988 by Jamie.Dale Fixed context leakage between the console and files, and import "unreal" by default now in the console #jira UETOOL-1379 Change 4049912 by Max.Chen Sequence Recorder: Minor recording group name improvements. - Initialize newly created actor group with existing actor group's base path. - When duplicating, use the current group's name as the base. - When typing in a name, if it fits the group format, the name should be allowable if it doesn't conflict with existing group names/assets. Change 4049934 by Andrew.Rodham Sequencer: Minor clean-up of sequencer interfaces and overloads - Replaced remaining instances of void* with FMovieSceneChannel* now that we mandate a common base class - Changed remaining explicit calls to SetDefault to SetChannelDefault overload so it works correctly with the SupportsDefaults trait - Exposed ability to manually implement an ISequencerChannelInterface rather than using the default templated one Change 4050608 by conan.reis Was getting link error about use of FFrameTime in ULevelSequencePlaybackController::PlayFromBeginning() in the VirtualCamera plugin so added TimeManagement to its dependant modules so it compiles again. Change 4050899 by Max.Chen Sequencer: Allow actor components for synchronization #jira UE-58468 Change 4050900 by Max.Chen Sequence Recorder: Don't create a spawn section if the object is a possessable #jira UE-58272 Change 4050904 by Max.Chen Curve Editor: Fix for evaluation a section of time when one key is non-weighted and the other is weighted. What we do is evaluate them both as being weighted, but we don't have the weight value for the non-weighted tangent. The weight of the non-weighted tangent is implicilty 1/3rd the distance between the two points, so we just calculate that if needed. #jira UE-58573 Change 4050905 by Max.Chen Curve Editor: When calculating vertical extents find feature points where slopes are zero and check them in addition to the keys if the curve is cubic. Curves now fit correclty vertically. Also changed fudge to 5% from 10% to match up old editor. Tighter fits seems better. #jira UE-58571 Change 4050972 by James.McNatton Added functions to ISequenceRecorder - Calling StartRecording with an empty array now triggers recording without clearning queued recordings - Added function to queue an actor to be recorded - Added function to check the next take number for a given actor when using groups Change 4050994 by James.McNatton Bug fixes for Virtual Camera - Preset menu now shows dates in the timestamp - Resetting offsets now alerts the system to update UI Change 4051431 by David.Hibbitts Added a component and blueprint library to access LiveLink data in blueprints which also works in editor. Deprecated LiveLink Driven component #jira UESP-577 Change 4051475 by Patrick.Boutot Rename EditorMeshLibrary Merge AssetScriptingUtilititesEditor with EditorScriptingUtilities. Add Redirects. Change 4051558 by Patrick.Boutot EngineCustomTimeStep returns true when we also want to perform the default engine code. Change 4052106 by Andrew.Rodham Sequencer: Adding an example that creates a sequence out of the current editor selection Change 4052205 by Anousack.Kitisa Fixed selected asset paths referenced by selected actors when using context Shotgun menu. Added function to retrieve the work area directory for Shotgun. #jira UEENT-1220 Change 4052951 by James.McNatton Virtual Camera Sequence Recorder updates to integrate new take system - Takes no longer display unless sequence recorder has a group selected - Adjusted fix to packaging error - FPS value will no longer appear if sequence recorder isn't available Change 4053130 by mason.seay Updated Game Mode Override Change 4053273 by James.McNatton Virtual Camera cleanup adjustments Change 4053627 by Max.Chen Sequencer: Disable bind sequencer to PIE/simulate while recording. Change 4053628 by Max.Chen Sequence Recorder: Fix target animation not persisting #jira UE-58508 Change 4053871 by Max.Chen Image Plate: Fix icon path Change 4054370 by Patrick.Boutot Remove LiveLink warning. Create base a class for FLiveLinkFrameRate as suggested in GenericPlatformCompilerPreSetup.h Change 4054447 by Darren.Pegg AJA low level device API Blackmagic low level API MediaIOCore changes to support AJA/Blackmagic changes AJA Module converted to use MediaIOCore Blackmagic Module changes for MediaIOCore Blackmagic/AJA Binary files Change 4054769 by Patrick.Boutot Packaging error issue introduce with CL 4054370. #jira UE-58749 Change 4055443 by Max.Chen Sequencer: Fix crash in adding filler shot #jira UE-58767 Change 4056577 by JeanMichel.Dignard Fixed crash with automation tests. We would bind the default UEditorEngine to Automation and on map load, it would call PIE on GEditor but with recent changes, PIE is called on this and the default UEditorEngine is not initialized so it would crash with a null GameViewportClass. Now we'll bind Automation on UEditorEngine InitializeObjectReferences so that we're in a good state and it's only called for GEditor. #jira UE-58792 Change 4057238 by Jamie.Dale Fixed crash when renaming Python generated classes or structs Change 4058435 by Jamie.Dale Fixed lingering exception state when converting a dict to a struct Change 4058486 by mason.seay Removed remote.host call from map [CL 4060164 by JeanMichel Dignard in Main branch]
2018-05-09 10:24:50 -04:00
if (EditorViewportSnapper.IsValid())
{
EditorViewportSnapper->EnableActorSnap(bEnable);
}
}
float FSnappingUtils::GetActorSnapDistance(bool bScalar)
{
Copying //UE4/Dev-Enterprise to //UE4/Dev-Main (Source: //UE4/Dev-Enterprise @ 4059031) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3974233 by Rex.Hill Optimized BuildStaticMeshVertexAndIndexBuffers and TEdgeBuilder Change 3974234 by Rex.Hill Reduced number of calls to SaveRawMesh and LoadRawMesh Change 3974235 by Rex.Hill Optimized SaveRawMesh by pre-allocating buffer Change 3981370 by Jamie.Dale Added support for deprecated (renamed) classes, structs, enums, functions, and properties in Python The glue code generation will now use the existing redirects system to build deprecated entries for old names. You can also specify deprecated names to the ScriptName and ScriptMethod meta-data values by adding extra semi-colon separated entries (the first entry is the current name). Accessing deprecated objects in Python leads to a deprecation warning when developer mode is enabled. Change 3983875 by Jamie.Dale Exposed some asset registry functions that may be useful in a commandlet environment Change 3983901 by Jamie.Dale Hoisted some AssetData helpers onto the struct in Python Change 3988367 by Jamie.Dale Python now honors EditInstanceOnly and EditDefaultsOnly when setting property values Change 3988369 by Jamie.Dale Exposed generic get_default_object function that takes a type and returns you the CDO This is needed for types that aren't natively exposed to Python (such as Blueprint generated types) Change 3989890 by Jamie.Dale Moved BlutilityActor to be Private in EditorScriptingUtils This can be removed once it's no longer needed. Change 3989900 by Jamie.Dale Updated EditorScriptingUtilities to use the Public/Private folder structure for source code Change 3990082 by Anousack.Kitisa Added plugin for Shotgun integration in Unreal. #jira UEENT-959 Change 3990783 by Anousack.Kitisa Changed ShotgunMenuItem to a struct. Change 3991139 by Jamie.Dale Minimized use of GUnrealEd (favoring GEditor) so that this code can be used by commandlets Removed redundant usages of GEditor/GUnrealEd from within UEditorEngine itself, and fixed cases where null data was being accessed. Testing that loading, saving, and creating a new blank map will now work in a commandlet without crashing. Change 3993189 by Jamie.Dale Fixed some mismatched return types Change 3993191 by Jamie.Dale Inital support for taking the GIL at key points where external C code calls into Python Change 3993683 by Patrick.Boutot [LTC] Add a CustomTimeStep that decode a LinearTimecode from the MediaSource. The MediaPlayer need to support buffering and should not run late since it's used to tick the engine time. Update DropTimecode to use the new Timecode structure in TimeManagement. Change 3994430 by Jamie.Dale Adjusted how inline structs work so that types known at compile time can inline allocate without being fully hand-wrapped in Python They must now be registered via FPyWrapperTypeRegistry::RegisterInlineStructFactory before we start generating wrapped types Change 3996083 by Jamie.Dale Added a distinct type for generated enum types so that you can query their available enum entries Change 3998253 by conan.reis Remove redundant Perforce error output from the log Change 4000307 by JeanMichel.Dignard Optimized FFbxImporter::ValidateAllMeshesAreReferenceByNodeAttribute() - Stored all scene nodes geometry ids in a set instead of looping on all scene nodes for every geometry. O(N) instead of O(N^2). - For 38685 scene nodes and 5417 geometry, the time went from 2 min 21.688 s to 0 min 0.098 s. Change 4000605 by Jamie.Dale Added support for constant "hoisting" This allows you to tag a helper function that returns a constant with ScriptConstant meta-data (providing a potentially overridden name) to "hoist" that helper function to be a constant of the type it operates on when wrapped for Python (ScriptConstantHost can be used to host the constant on a struct rather than its own object). Change 4001617 by Jamie.Dale Updated ScriptMethod and ScriptConstant to allow hoisting onto other classes as well as structs This allows you to have a runtime class be extended via methods in an editor-only module Change 4005287 by Jamie.Dale Added a GIL lock when Slate Tick events call back into Python Change 4005383 by Andrew.Rodham Sequencer: Initial scripting exposure and support First pass includes the following: - Find/add/interate master tracks - Find/add/interate bindings (both possessables and spawnables) - Find/add/interate tracks on bindings - Add/interate sections on tracks - Get/Set section ranges Change 4008609 by Jamie.Dale Added some missing native Python types to the documentation Native modules now build up a list of types and functions associated with them. This information is then passed through to the document generation to ensure that all exposed native types and functions are documented. In addition, any native Python module files are now assimilated into the unreal.py stub file and parsed so that they can be documented too. Change 4008654 by Jamie.Dale Allow math operators to use the base type versions unless overridden Change 4009740 by Patrick.Boutot Add BP function to convert a Timecode into a string. Change 4009763 by Patrick.Boutot Update AudioCapture to retreive the SampleRate. Used by the LinearTimecode. Change the requested format from int16 to float since we converted it into that format later on. Change 4009768 by Andrew.Rodham Removed explicit names from ScriptName methods, expanded sequencer scripting range functionality Change 4009830 by Jamie.Dale Added support for UPARAM(ref) on arguments exposed to Python For standard functions, this just produces an input and output for the same argument (we can't mutate the input due to potential coercion). For ScriptMethod functions that use it on the 'self' argument, this will mark the function as "inline" and have the function apply the result of the 'self' argument back onto the 'self' instance after calling the function. Change 4010034 by Jamie.Dale Added support for init_unreal.py start-up scripts These can be placed in any known sys.path in Python, including the Content/Python folders we automatically add, and the UnrealEngine/Python directory under the users home directory. Change 4010422 by Jamie.Dale Improved errror reporting during Python generation It will now ensure if a debugger is attached to draw programmer attention to an error. Change 4010498 by Patrick.Boutot Remove unnecessary loop Timecode.ToFrameNumber() Change 4011312 by Jamie.Dale Duplicate deprecated names will no longer assert during Python glue generation They will now log a warning and continue Change 4012068 by JeanMichel.Dignard Allow to render thumbnails for newly created packages. - To render a thumbnail, you either need a customer thumbnail renderer or a cached thumbnail. Querying cached thumbnails fails for newly created packages because it calls DoesPackageExist which check on disk. This call is unnecessary since we're relying on FindPackage which only works for packages that are loaded in memory. Change 4013781 by Jamie.Dale FFrame::KismetExecutionMessage (or LogRuntimeError or LogRuntimeWarning) will now produce Python exceptions You can use these to emit warnings or errors from UFunctions wrapped for scripting, and when called from Python they will produce a Python exception (for errors), or Python warning (for warnings). Change 4014337 by Jamie.Dale Struct coercion now errors if you provide a sequence with too many elements This also makes sure that PyConversion doesn't set an error state if ESetErrorState::No is passed (which could have previously happened from type casting calls). Change 4015290 by Andrew.Rodham Sequencer: Moved runtime functionality from ISequencerChannelInterface to IMovieSceneChannelInterface - Rename IBatchChannelInterface to IMovieSceneChannelInterface - Removed MovieScene::Dilate() - Added TMovieSceneChannelTraits::SupportsDefaults to automatically stub out functions relating to channel defaults Change 4015664 by Jamie.Dale Renamed ScriptMathOp meta-data to ScriptOperator Change 4016230 by Jamie.Dale Fixed incorrect make/break path in Importance Sampling Library (for Importance Texture) Change 4017326 by Jamie.Dale Added make and break support in Python Structs that have a native make function will now use this as their constructor. This also adds support for breaking a struct into a tuple, either via a native break function, or via generic property enumeration. Change 4017551 by Jamie.Dale Removed redundant outer parameter from find/load_asset/package Change 4018594 by Jamie.Dale Added ScriptMethodSelfReturn as an alternative to UPARAM(ref) These two function signatures produce the same behavior and have the same cost in Python, the only difference is how they appear to Blueprints (and Blueprints seem to favor non-reference functions). UFUNCTION(..., meta=(ScriptMethod)) static void DoThing(UPARAM(ref) FThingType&, int32); UFUNCTION(..., meta=(ScriptMethod, ScriptMethodSelfReturn)) static FThingType DoThing(FThingType, int32); Change 4020956 by Anousack.Kitisa Added Shotgun to the Level Editor/World Outliner and Content Browser context menus when there's a selected actor or asset. #jira UEENT-1219 Change 4021986 by Anousack.Kitisa Used the Python startup scripts mechanism to launch the Shotgun bootstrap script. Related to Jira UE-57896. Change 4022993 by Jamie.Dale Added support for extra operators on Python structs You can now expose bool conversion and comparison operators (==, !=, <, <=, >, >=) in addition to the previous set of math operators. As part of this there is now stricter signature validation when generating the Python binding. Change 4023226 by Jamie.Dale Added Make and Break function for FSoftClassPath Change 4023348 by Jamie.Dale Exposed some methods and operators for PrimaryAssetId and PrimaryAssetType Change 4027911 by Jamie.Dale Cross-outer redirects are no longer applied in Python #jira UETOOL-1382 Change 4029618 by JeanMichel.Dignard Unreal Studio UX - Made "Unreal Studio" the default tab in the new project wizard if we're using an installed enterprise build. - Create new projects as enterprise projects if we're using an insalled enterprise build. #jira UEENT-1231, UEENT-796 Change 4030217 by Jamie.Dale Exposed ScopedSlowTask to Python #jira UETOOL-1375 Change 4030784 by Matt.Hoffman Sequencer curve editor now shows vertical axis labels. #jira UE-58160 Change 4030858 by JeanLuc.Corenthin Expose LOD creation thru Python: - Create one struct to hold onto reduction settings per LOD - Create one struct to hold onto an array of reduction settings and a parameter to enable of disable automatic computation of screen size - Create new method to apply reduction settings to an array of StaticMeshActors #jira UEENT-1232 Change 4032239 by Jamie.Dale Cleanup pass over wrapped structs - Code dealing with reflected structs now uses UScriptStruct rather than UStruct. - The old PyConversion::NativizeStruct and PyConversion::PythonizeStruct have been renamed to PyConversion::NativizeStructInstance and PyConversion::PythonizeStructInstance. - New PyConversion::NativizeStruct and PyConversion::PythonizeStruct functions have been added to convert an object (or Python type) to a UScriptStruct (akin to what PyConversion::NativizeClass and PyConversion::PythonizeClass does for UClass). Change 4032247 by Jamie.Dale Cleaned up some Python slow task code Change 4032251 by Jamie.Dale Added functions to get the Python type associated with an Unreal class, struct, or enum Change 4032258 by Jamie.Dale Added Python iterators for Unreal objects, classes, and structs, as well as the Python types wrapped by Unreal classes or structs #jira UETOOL-1380 Change 4032320 by Jamie.Dale Fixed Python object iterators skipping their first item Change 4032321 by Jamie.Dale Added Python iterators for actors and selected actors #jira UETOOL-1380 Change 4033908 by Anousack.Kitisa Added Shotgun settings for metadata tags. #jira UEENT-1175 Change 4033909 by Anousack.Kitisa Added wrapper function to sync Content Browser to assets for scripting. #jira UEENT-1218 Change 4034951 by Matt.Hoffman Media Tracks now highlight when added to a Sequence/UMG animation. Change 4034966 by Jamie.Dale Added GIL locks around post_init code that can be called from C++ Change 4035019 by Matt.Hoffman UMG Render Transforms + Margins now support infinite sections. Change 4035470 by Andrew.Rodham Introduced a common base class for all movie scene channel data, FMovieSceneChannel. Removed IMovieSceneChannelInterface. Renamed FMovieSceneChannelEditorData to FMovieSceneChannelMetaData. Renamed FMovieSceneChannel and TMovieSceneChannel to FMovieSceneChannelData and TMovieSceneChannelData, to make way for common channel base class. Renamed instances of 'specialized' channel editor data to 'extended' channel editor data. Introduced non-templated FMovieSceneChannelHandle and a templated version. Changed internal implementation to use a lookup rather than a directly resolved weak ptr. Various pieces of documentation and cleanup. Change 4037112 by Max.Chen Sequencer: Added some missing RF_Transactional flags to newly created sections. Change 4037121 by Max.Chen Sequence Recorder: Timecode recording Introduced an FSourceTimecode which is saved as editor only data to the MovieSceneSection and MovieScene. FSourceTimecode consists of an FFrameNumber delta that correlates the section's initial start time to an FTimecode. The FFrameNumber is adjusted whenever the section is moved. One use case for this is through sequence recorder, which captures the timecode at the start of recording and saves an FSourceTimecode per movie scene section it creates. If the section is moved, it can always be returned to its source timecode by the section's right click menu, "Sync to Source Timecode". #jira UESEQ-406 Change 4038462 by Jamie.Dale Added support for using Python callables with delegates All the "x_function" methods on delegates and multicast delegates now have an "x_callable" equivalent that take a Python callable (we attempt basic validation of the signature, but that only allows us to check the input argument count is what we expect). Internally the callable is wrapped in a UObject, so certain GC restrictions are present (and is why coercion is disabled for callables). Delegates wrapped in Python (including as a direct property of an object or struct, or inside a container) will be kept alive via the Python reference collection, however once there are no Python references left the proxy object will be allowed to die unless something external has taken a reference to the proxy object. Change 4039123 by James.McNatton Remove dependency on SteamController in VirtualCamera #rb none Change 4039162 by Jamie.Dale Fixed linter warnings about unescaped backslashes in docstrings Change 4039170 by Jamie.Dale No longer expose deprecated functions or properties if they clash with another Python exposed item Change 4039429 by Max.Chen Sequence Recorder: Swap to editor actors on end PIE if the actors to record were set to the PIE actors Change 4039442 by Max.Chen Sequence Recorder: Find the existing object binding and record into it if it exists. When recording to an existing object binding, if the track exists, remove all animation data and reuse the track. Change 4039477 by Jamie.Dale Added warnings for conflicting Python type and field names Change 4039478 by Jamie.Dale Fixed warnings for conflicting Python type and field names Change 4039511 by Max.Chen Sequencer: Remove all animation data for spawn track Change 4040649 by James.McNatton Multiple Virtual Camera bug fixes - Removed QAGame mannequin from test map - Fixed errors being generated when trying to load preset - Presets now properly load and save axis settings - Deleted presets should no longer linger in menus - Presets now save and load favorite status Change 4041356 by Max.Chen Sequence Recorder: Takes system #jira UESP-544 Change 4041589 by Jamie.Dale Added C++ source information (plugin, module, and file) to the Python doc string Change 4041746 by Jamie.Dale Made ScriptOperator more relaxed about its signature validation as long as the additional input parameters are defaulted Change 4041757 by James.McNatton Virtual Camera Bug Fixes - The Input Source dropdown now accurately reflects user selection - Input source changed to EditDefaultsOnly - Focus should no longer be set when the settings menu is open Change 4041823 by Jamie.Dale Made ScriptOperator more relaxed about its signature validation for defaulted input parameters Existing Blueprint exposed operator functions may both default required arguments, and add additional default arguments. ScriptOperator will now accept both of these as long as there are enough arguments, but not too many non-defaulted arguments. Change 4042956 by James.McNatton VirtualCamera bug fixes related to focus plane visualization - Removed extra focus plane that was being displayed - Added logic to adjust for nonuniform scaling of objects when settings up tracking focus Change 4043400 by James.McNatton Multiple bug fixes related to saving various values - Now saves matte opacity and updates on load - Now saves filmback format name and updates on load - Now saves desired distance units and updates on load Change 4043481 by James.McNatton Fixed issue in Virtual Camera where joystick movement would not properly apply locks after rotating #rb none Change 4044358 by Jamie.Dale Fixed some cases where empty default values would be lost from UHT Eg, empty strings, null objects Change 4044362 by Jamie.Dale Fixed old-style enums being missed by the Python glue generation if they're only referenced by a property of function Change 4044371 by Jamie.Dale Fixed default value application for some struct types that use a custom default value format when exported by UHT Change 4044417 by Max.Chen Sequence Recorder: Better default group names with an underscore separator for letters Change 4045164 by Jamie.Dale Hardened usage of CopyScriptStruct to ensure that the source type is a child of the destination type, and that the destination type is used to copy (to still allow slicing of derived data) Change 4045195 by Jamie.Dale Updated FPropValueOnScope::GetValue to be able to return the value for a particular array index Change 4045589 by James.McNatton Fixed packaging error for VirtualCamera plugin - Plugin is now a runtime plugin rather than developer - Fixed up associated warnings with saving and loading in editor Change 4046208 by James.McNatton Virtual Camera bug fixes - Adjusted how mattes and filmback works together - Should now always respond properly to changing filmback settings in UI - Should now match the correct view size within the matte under all circumstances Change 4046372 by Max.Chen Sequencer: Fix subsequence binding ids. #jira UE-55337 Change 4046694 by Max.Chen Sequence Recorder: Compile the template before finding the camera sequence id since the precompiled template is not up to date. Change 4046801 by Jamie.Dale Improved default values and return types used in the unreal.py stub file - Object and Struct types generate an __init__ function with the correct signature. - Struct __init__ functions list the correct default values (including when using make/break functions). - Methods now list the correct default values. - Get/Set getters return a value of the correct type. - Get/Set setters are no longer exported for read-only properties. - Constants resolve to the correct type and value. #jira UETOOL-1377 Change 4047023 by Jamie.Dale Added missing hook-up for % and %= in Python Change 4047100 by Jamie.Dale Operators are now exposed to unreal.py and generate docs stating which overloads are available Change 4047105 by Jamie.Dale String is now "str" in doc strings to match the Python type Change 4047714 by Max.Chen Sequencer: Resolved merge conflicts with Dev-Sequencer Change 4048150 by Jamie.Dale Fixed single-culture PO import/export failing #jira UE-47079 Change 4048653 by Andrew.Rodham Sequencer: Automatic re-evaluation is now suppressed for external changes that modified only default values on channels - The issue is that moving an object that is partially-keyed in sequencer, with auto-key off, will set default values for the non-keyed channels. Doing so will dirty the sequence, which causes a re-evaluation, which re-evalutes the keyed channels, which effectively undoes the external change. - This is now fixed by suppressing the automatic re-evaluation for a specific signature of a specific sequence, if that is the only thing that has dirtied the sequence. Any subsequent changes to the sequence will cause a re-evaluation, and the suppression to be wiped. #jira UE-57519 #jira UE-58487 Change 4048814 by Jamie.Dale Fixed syntax error if an enum had an unknown value Change 4048819 by Jamie.Dale Fixed struct init functions having the wrong default values Change 4048856 by JeanLuc.Corenthin - Removed LOD & collision functions from UEditorLevelLibrary - Created a new class, UEditorMeshLibrary, to hold onto functionalities related to StaticMeshes - Added method to set LODs on a static mesh - Added method to remove LODs from a static mesh - Added method to get number of LODs on a static mesh - Added method to get number of simple collisions onto a static mesh - Added method to get number of convex collisions onto a static mesh - Added method to add convex collision onto a static mesh - Added method to remove all collisions onto a static mesh #jira UEENT-1232 #jira UEENT-1233 Change 4048961 by Jamie.Dale Improved formatting of output parameters in doc strings #jira UETOOL-1376 Change 4048988 by Jamie.Dale Fixed context leakage between the console and files, and import "unreal" by default now in the console #jira UETOOL-1379 Change 4049912 by Max.Chen Sequence Recorder: Minor recording group name improvements. - Initialize newly created actor group with existing actor group's base path. - When duplicating, use the current group's name as the base. - When typing in a name, if it fits the group format, the name should be allowable if it doesn't conflict with existing group names/assets. Change 4049934 by Andrew.Rodham Sequencer: Minor clean-up of sequencer interfaces and overloads - Replaced remaining instances of void* with FMovieSceneChannel* now that we mandate a common base class - Changed remaining explicit calls to SetDefault to SetChannelDefault overload so it works correctly with the SupportsDefaults trait - Exposed ability to manually implement an ISequencerChannelInterface rather than using the default templated one Change 4050608 by conan.reis Was getting link error about use of FFrameTime in ULevelSequencePlaybackController::PlayFromBeginning() in the VirtualCamera plugin so added TimeManagement to its dependant modules so it compiles again. Change 4050899 by Max.Chen Sequencer: Allow actor components for synchronization #jira UE-58468 Change 4050900 by Max.Chen Sequence Recorder: Don't create a spawn section if the object is a possessable #jira UE-58272 Change 4050904 by Max.Chen Curve Editor: Fix for evaluation a section of time when one key is non-weighted and the other is weighted. What we do is evaluate them both as being weighted, but we don't have the weight value for the non-weighted tangent. The weight of the non-weighted tangent is implicilty 1/3rd the distance between the two points, so we just calculate that if needed. #jira UE-58573 Change 4050905 by Max.Chen Curve Editor: When calculating vertical extents find feature points where slopes are zero and check them in addition to the keys if the curve is cubic. Curves now fit correclty vertically. Also changed fudge to 5% from 10% to match up old editor. Tighter fits seems better. #jira UE-58571 Change 4050972 by James.McNatton Added functions to ISequenceRecorder - Calling StartRecording with an empty array now triggers recording without clearning queued recordings - Added function to queue an actor to be recorded - Added function to check the next take number for a given actor when using groups Change 4050994 by James.McNatton Bug fixes for Virtual Camera - Preset menu now shows dates in the timestamp - Resetting offsets now alerts the system to update UI Change 4051431 by David.Hibbitts Added a component and blueprint library to access LiveLink data in blueprints which also works in editor. Deprecated LiveLink Driven component #jira UESP-577 Change 4051475 by Patrick.Boutot Rename EditorMeshLibrary Merge AssetScriptingUtilititesEditor with EditorScriptingUtilities. Add Redirects. Change 4051558 by Patrick.Boutot EngineCustomTimeStep returns true when we also want to perform the default engine code. Change 4052106 by Andrew.Rodham Sequencer: Adding an example that creates a sequence out of the current editor selection Change 4052205 by Anousack.Kitisa Fixed selected asset paths referenced by selected actors when using context Shotgun menu. Added function to retrieve the work area directory for Shotgun. #jira UEENT-1220 Change 4052951 by James.McNatton Virtual Camera Sequence Recorder updates to integrate new take system - Takes no longer display unless sequence recorder has a group selected - Adjusted fix to packaging error - FPS value will no longer appear if sequence recorder isn't available Change 4053130 by mason.seay Updated Game Mode Override Change 4053273 by James.McNatton Virtual Camera cleanup adjustments Change 4053627 by Max.Chen Sequencer: Disable bind sequencer to PIE/simulate while recording. Change 4053628 by Max.Chen Sequence Recorder: Fix target animation not persisting #jira UE-58508 Change 4053871 by Max.Chen Image Plate: Fix icon path Change 4054370 by Patrick.Boutot Remove LiveLink warning. Create base a class for FLiveLinkFrameRate as suggested in GenericPlatformCompilerPreSetup.h Change 4054447 by Darren.Pegg AJA low level device API Blackmagic low level API MediaIOCore changes to support AJA/Blackmagic changes AJA Module converted to use MediaIOCore Blackmagic Module changes for MediaIOCore Blackmagic/AJA Binary files Change 4054769 by Patrick.Boutot Packaging error issue introduce with CL 4054370. #jira UE-58749 Change 4055443 by Max.Chen Sequencer: Fix crash in adding filler shot #jira UE-58767 Change 4056577 by JeanMichel.Dignard Fixed crash with automation tests. We would bind the default UEditorEngine to Automation and on map load, it would call PIE on GEditor but with recent changes, PIE is called on this and the default UEditorEngine is not initialized so it would crash with a null GameViewportClass. Now we'll bind Automation on UEditorEngine InitializeObjectReferences so that we're in a good state and it's only called for GEditor. #jira UE-58792 Change 4057238 by Jamie.Dale Fixed crash when renaming Python generated classes or structs Change 4058435 by Jamie.Dale Fixed lingering exception state when converting a dict to a struct Change 4058486 by mason.seay Removed remote.host call from map [CL 4060164 by JeanMichel Dignard in Main branch]
2018-05-09 10:24:50 -04:00
return EditorViewportSnapper.IsValid() ? EditorViewportSnapper->GetActorSnapDistance(bScalar) : 0.0f;
}
void FSnappingUtils::SetActorSnapDistance(float Distance)
{
Copying //UE4/Dev-Enterprise to //UE4/Dev-Main (Source: //UE4/Dev-Enterprise @ 4059031) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3974233 by Rex.Hill Optimized BuildStaticMeshVertexAndIndexBuffers and TEdgeBuilder Change 3974234 by Rex.Hill Reduced number of calls to SaveRawMesh and LoadRawMesh Change 3974235 by Rex.Hill Optimized SaveRawMesh by pre-allocating buffer Change 3981370 by Jamie.Dale Added support for deprecated (renamed) classes, structs, enums, functions, and properties in Python The glue code generation will now use the existing redirects system to build deprecated entries for old names. You can also specify deprecated names to the ScriptName and ScriptMethod meta-data values by adding extra semi-colon separated entries (the first entry is the current name). Accessing deprecated objects in Python leads to a deprecation warning when developer mode is enabled. Change 3983875 by Jamie.Dale Exposed some asset registry functions that may be useful in a commandlet environment Change 3983901 by Jamie.Dale Hoisted some AssetData helpers onto the struct in Python Change 3988367 by Jamie.Dale Python now honors EditInstanceOnly and EditDefaultsOnly when setting property values Change 3988369 by Jamie.Dale Exposed generic get_default_object function that takes a type and returns you the CDO This is needed for types that aren't natively exposed to Python (such as Blueprint generated types) Change 3989890 by Jamie.Dale Moved BlutilityActor to be Private in EditorScriptingUtils This can be removed once it's no longer needed. Change 3989900 by Jamie.Dale Updated EditorScriptingUtilities to use the Public/Private folder structure for source code Change 3990082 by Anousack.Kitisa Added plugin for Shotgun integration in Unreal. #jira UEENT-959 Change 3990783 by Anousack.Kitisa Changed ShotgunMenuItem to a struct. Change 3991139 by Jamie.Dale Minimized use of GUnrealEd (favoring GEditor) so that this code can be used by commandlets Removed redundant usages of GEditor/GUnrealEd from within UEditorEngine itself, and fixed cases where null data was being accessed. Testing that loading, saving, and creating a new blank map will now work in a commandlet without crashing. Change 3993189 by Jamie.Dale Fixed some mismatched return types Change 3993191 by Jamie.Dale Inital support for taking the GIL at key points where external C code calls into Python Change 3993683 by Patrick.Boutot [LTC] Add a CustomTimeStep that decode a LinearTimecode from the MediaSource. The MediaPlayer need to support buffering and should not run late since it's used to tick the engine time. Update DropTimecode to use the new Timecode structure in TimeManagement. Change 3994430 by Jamie.Dale Adjusted how inline structs work so that types known at compile time can inline allocate without being fully hand-wrapped in Python They must now be registered via FPyWrapperTypeRegistry::RegisterInlineStructFactory before we start generating wrapped types Change 3996083 by Jamie.Dale Added a distinct type for generated enum types so that you can query their available enum entries Change 3998253 by conan.reis Remove redundant Perforce error output from the log Change 4000307 by JeanMichel.Dignard Optimized FFbxImporter::ValidateAllMeshesAreReferenceByNodeAttribute() - Stored all scene nodes geometry ids in a set instead of looping on all scene nodes for every geometry. O(N) instead of O(N^2). - For 38685 scene nodes and 5417 geometry, the time went from 2 min 21.688 s to 0 min 0.098 s. Change 4000605 by Jamie.Dale Added support for constant "hoisting" This allows you to tag a helper function that returns a constant with ScriptConstant meta-data (providing a potentially overridden name) to "hoist" that helper function to be a constant of the type it operates on when wrapped for Python (ScriptConstantHost can be used to host the constant on a struct rather than its own object). Change 4001617 by Jamie.Dale Updated ScriptMethod and ScriptConstant to allow hoisting onto other classes as well as structs This allows you to have a runtime class be extended via methods in an editor-only module Change 4005287 by Jamie.Dale Added a GIL lock when Slate Tick events call back into Python Change 4005383 by Andrew.Rodham Sequencer: Initial scripting exposure and support First pass includes the following: - Find/add/interate master tracks - Find/add/interate bindings (both possessables and spawnables) - Find/add/interate tracks on bindings - Add/interate sections on tracks - Get/Set section ranges Change 4008609 by Jamie.Dale Added some missing native Python types to the documentation Native modules now build up a list of types and functions associated with them. This information is then passed through to the document generation to ensure that all exposed native types and functions are documented. In addition, any native Python module files are now assimilated into the unreal.py stub file and parsed so that they can be documented too. Change 4008654 by Jamie.Dale Allow math operators to use the base type versions unless overridden Change 4009740 by Patrick.Boutot Add BP function to convert a Timecode into a string. Change 4009763 by Patrick.Boutot Update AudioCapture to retreive the SampleRate. Used by the LinearTimecode. Change the requested format from int16 to float since we converted it into that format later on. Change 4009768 by Andrew.Rodham Removed explicit names from ScriptName methods, expanded sequencer scripting range functionality Change 4009830 by Jamie.Dale Added support for UPARAM(ref) on arguments exposed to Python For standard functions, this just produces an input and output for the same argument (we can't mutate the input due to potential coercion). For ScriptMethod functions that use it on the 'self' argument, this will mark the function as "inline" and have the function apply the result of the 'self' argument back onto the 'self' instance after calling the function. Change 4010034 by Jamie.Dale Added support for init_unreal.py start-up scripts These can be placed in any known sys.path in Python, including the Content/Python folders we automatically add, and the UnrealEngine/Python directory under the users home directory. Change 4010422 by Jamie.Dale Improved errror reporting during Python generation It will now ensure if a debugger is attached to draw programmer attention to an error. Change 4010498 by Patrick.Boutot Remove unnecessary loop Timecode.ToFrameNumber() Change 4011312 by Jamie.Dale Duplicate deprecated names will no longer assert during Python glue generation They will now log a warning and continue Change 4012068 by JeanMichel.Dignard Allow to render thumbnails for newly created packages. - To render a thumbnail, you either need a customer thumbnail renderer or a cached thumbnail. Querying cached thumbnails fails for newly created packages because it calls DoesPackageExist which check on disk. This call is unnecessary since we're relying on FindPackage which only works for packages that are loaded in memory. Change 4013781 by Jamie.Dale FFrame::KismetExecutionMessage (or LogRuntimeError or LogRuntimeWarning) will now produce Python exceptions You can use these to emit warnings or errors from UFunctions wrapped for scripting, and when called from Python they will produce a Python exception (for errors), or Python warning (for warnings). Change 4014337 by Jamie.Dale Struct coercion now errors if you provide a sequence with too many elements This also makes sure that PyConversion doesn't set an error state if ESetErrorState::No is passed (which could have previously happened from type casting calls). Change 4015290 by Andrew.Rodham Sequencer: Moved runtime functionality from ISequencerChannelInterface to IMovieSceneChannelInterface - Rename IBatchChannelInterface to IMovieSceneChannelInterface - Removed MovieScene::Dilate() - Added TMovieSceneChannelTraits::SupportsDefaults to automatically stub out functions relating to channel defaults Change 4015664 by Jamie.Dale Renamed ScriptMathOp meta-data to ScriptOperator Change 4016230 by Jamie.Dale Fixed incorrect make/break path in Importance Sampling Library (for Importance Texture) Change 4017326 by Jamie.Dale Added make and break support in Python Structs that have a native make function will now use this as their constructor. This also adds support for breaking a struct into a tuple, either via a native break function, or via generic property enumeration. Change 4017551 by Jamie.Dale Removed redundant outer parameter from find/load_asset/package Change 4018594 by Jamie.Dale Added ScriptMethodSelfReturn as an alternative to UPARAM(ref) These two function signatures produce the same behavior and have the same cost in Python, the only difference is how they appear to Blueprints (and Blueprints seem to favor non-reference functions). UFUNCTION(..., meta=(ScriptMethod)) static void DoThing(UPARAM(ref) FThingType&, int32); UFUNCTION(..., meta=(ScriptMethod, ScriptMethodSelfReturn)) static FThingType DoThing(FThingType, int32); Change 4020956 by Anousack.Kitisa Added Shotgun to the Level Editor/World Outliner and Content Browser context menus when there's a selected actor or asset. #jira UEENT-1219 Change 4021986 by Anousack.Kitisa Used the Python startup scripts mechanism to launch the Shotgun bootstrap script. Related to Jira UE-57896. Change 4022993 by Jamie.Dale Added support for extra operators on Python structs You can now expose bool conversion and comparison operators (==, !=, <, <=, >, >=) in addition to the previous set of math operators. As part of this there is now stricter signature validation when generating the Python binding. Change 4023226 by Jamie.Dale Added Make and Break function for FSoftClassPath Change 4023348 by Jamie.Dale Exposed some methods and operators for PrimaryAssetId and PrimaryAssetType Change 4027911 by Jamie.Dale Cross-outer redirects are no longer applied in Python #jira UETOOL-1382 Change 4029618 by JeanMichel.Dignard Unreal Studio UX - Made "Unreal Studio" the default tab in the new project wizard if we're using an installed enterprise build. - Create new projects as enterprise projects if we're using an insalled enterprise build. #jira UEENT-1231, UEENT-796 Change 4030217 by Jamie.Dale Exposed ScopedSlowTask to Python #jira UETOOL-1375 Change 4030784 by Matt.Hoffman Sequencer curve editor now shows vertical axis labels. #jira UE-58160 Change 4030858 by JeanLuc.Corenthin Expose LOD creation thru Python: - Create one struct to hold onto reduction settings per LOD - Create one struct to hold onto an array of reduction settings and a parameter to enable of disable automatic computation of screen size - Create new method to apply reduction settings to an array of StaticMeshActors #jira UEENT-1232 Change 4032239 by Jamie.Dale Cleanup pass over wrapped structs - Code dealing with reflected structs now uses UScriptStruct rather than UStruct. - The old PyConversion::NativizeStruct and PyConversion::PythonizeStruct have been renamed to PyConversion::NativizeStructInstance and PyConversion::PythonizeStructInstance. - New PyConversion::NativizeStruct and PyConversion::PythonizeStruct functions have been added to convert an object (or Python type) to a UScriptStruct (akin to what PyConversion::NativizeClass and PyConversion::PythonizeClass does for UClass). Change 4032247 by Jamie.Dale Cleaned up some Python slow task code Change 4032251 by Jamie.Dale Added functions to get the Python type associated with an Unreal class, struct, or enum Change 4032258 by Jamie.Dale Added Python iterators for Unreal objects, classes, and structs, as well as the Python types wrapped by Unreal classes or structs #jira UETOOL-1380 Change 4032320 by Jamie.Dale Fixed Python object iterators skipping their first item Change 4032321 by Jamie.Dale Added Python iterators for actors and selected actors #jira UETOOL-1380 Change 4033908 by Anousack.Kitisa Added Shotgun settings for metadata tags. #jira UEENT-1175 Change 4033909 by Anousack.Kitisa Added wrapper function to sync Content Browser to assets for scripting. #jira UEENT-1218 Change 4034951 by Matt.Hoffman Media Tracks now highlight when added to a Sequence/UMG animation. Change 4034966 by Jamie.Dale Added GIL locks around post_init code that can be called from C++ Change 4035019 by Matt.Hoffman UMG Render Transforms + Margins now support infinite sections. Change 4035470 by Andrew.Rodham Introduced a common base class for all movie scene channel data, FMovieSceneChannel. Removed IMovieSceneChannelInterface. Renamed FMovieSceneChannelEditorData to FMovieSceneChannelMetaData. Renamed FMovieSceneChannel and TMovieSceneChannel to FMovieSceneChannelData and TMovieSceneChannelData, to make way for common channel base class. Renamed instances of 'specialized' channel editor data to 'extended' channel editor data. Introduced non-templated FMovieSceneChannelHandle and a templated version. Changed internal implementation to use a lookup rather than a directly resolved weak ptr. Various pieces of documentation and cleanup. Change 4037112 by Max.Chen Sequencer: Added some missing RF_Transactional flags to newly created sections. Change 4037121 by Max.Chen Sequence Recorder: Timecode recording Introduced an FSourceTimecode which is saved as editor only data to the MovieSceneSection and MovieScene. FSourceTimecode consists of an FFrameNumber delta that correlates the section's initial start time to an FTimecode. The FFrameNumber is adjusted whenever the section is moved. One use case for this is through sequence recorder, which captures the timecode at the start of recording and saves an FSourceTimecode per movie scene section it creates. If the section is moved, it can always be returned to its source timecode by the section's right click menu, "Sync to Source Timecode". #jira UESEQ-406 Change 4038462 by Jamie.Dale Added support for using Python callables with delegates All the "x_function" methods on delegates and multicast delegates now have an "x_callable" equivalent that take a Python callable (we attempt basic validation of the signature, but that only allows us to check the input argument count is what we expect). Internally the callable is wrapped in a UObject, so certain GC restrictions are present (and is why coercion is disabled for callables). Delegates wrapped in Python (including as a direct property of an object or struct, or inside a container) will be kept alive via the Python reference collection, however once there are no Python references left the proxy object will be allowed to die unless something external has taken a reference to the proxy object. Change 4039123 by James.McNatton Remove dependency on SteamController in VirtualCamera #rb none Change 4039162 by Jamie.Dale Fixed linter warnings about unescaped backslashes in docstrings Change 4039170 by Jamie.Dale No longer expose deprecated functions or properties if they clash with another Python exposed item Change 4039429 by Max.Chen Sequence Recorder: Swap to editor actors on end PIE if the actors to record were set to the PIE actors Change 4039442 by Max.Chen Sequence Recorder: Find the existing object binding and record into it if it exists. When recording to an existing object binding, if the track exists, remove all animation data and reuse the track. Change 4039477 by Jamie.Dale Added warnings for conflicting Python type and field names Change 4039478 by Jamie.Dale Fixed warnings for conflicting Python type and field names Change 4039511 by Max.Chen Sequencer: Remove all animation data for spawn track Change 4040649 by James.McNatton Multiple Virtual Camera bug fixes - Removed QAGame mannequin from test map - Fixed errors being generated when trying to load preset - Presets now properly load and save axis settings - Deleted presets should no longer linger in menus - Presets now save and load favorite status Change 4041356 by Max.Chen Sequence Recorder: Takes system #jira UESP-544 Change 4041589 by Jamie.Dale Added C++ source information (plugin, module, and file) to the Python doc string Change 4041746 by Jamie.Dale Made ScriptOperator more relaxed about its signature validation as long as the additional input parameters are defaulted Change 4041757 by James.McNatton Virtual Camera Bug Fixes - The Input Source dropdown now accurately reflects user selection - Input source changed to EditDefaultsOnly - Focus should no longer be set when the settings menu is open Change 4041823 by Jamie.Dale Made ScriptOperator more relaxed about its signature validation for defaulted input parameters Existing Blueprint exposed operator functions may both default required arguments, and add additional default arguments. ScriptOperator will now accept both of these as long as there are enough arguments, but not too many non-defaulted arguments. Change 4042956 by James.McNatton VirtualCamera bug fixes related to focus plane visualization - Removed extra focus plane that was being displayed - Added logic to adjust for nonuniform scaling of objects when settings up tracking focus Change 4043400 by James.McNatton Multiple bug fixes related to saving various values - Now saves matte opacity and updates on load - Now saves filmback format name and updates on load - Now saves desired distance units and updates on load Change 4043481 by James.McNatton Fixed issue in Virtual Camera where joystick movement would not properly apply locks after rotating #rb none Change 4044358 by Jamie.Dale Fixed some cases where empty default values would be lost from UHT Eg, empty strings, null objects Change 4044362 by Jamie.Dale Fixed old-style enums being missed by the Python glue generation if they're only referenced by a property of function Change 4044371 by Jamie.Dale Fixed default value application for some struct types that use a custom default value format when exported by UHT Change 4044417 by Max.Chen Sequence Recorder: Better default group names with an underscore separator for letters Change 4045164 by Jamie.Dale Hardened usage of CopyScriptStruct to ensure that the source type is a child of the destination type, and that the destination type is used to copy (to still allow slicing of derived data) Change 4045195 by Jamie.Dale Updated FPropValueOnScope::GetValue to be able to return the value for a particular array index Change 4045589 by James.McNatton Fixed packaging error for VirtualCamera plugin - Plugin is now a runtime plugin rather than developer - Fixed up associated warnings with saving and loading in editor Change 4046208 by James.McNatton Virtual Camera bug fixes - Adjusted how mattes and filmback works together - Should now always respond properly to changing filmback settings in UI - Should now match the correct view size within the matte under all circumstances Change 4046372 by Max.Chen Sequencer: Fix subsequence binding ids. #jira UE-55337 Change 4046694 by Max.Chen Sequence Recorder: Compile the template before finding the camera sequence id since the precompiled template is not up to date. Change 4046801 by Jamie.Dale Improved default values and return types used in the unreal.py stub file - Object and Struct types generate an __init__ function with the correct signature. - Struct __init__ functions list the correct default values (including when using make/break functions). - Methods now list the correct default values. - Get/Set getters return a value of the correct type. - Get/Set setters are no longer exported for read-only properties. - Constants resolve to the correct type and value. #jira UETOOL-1377 Change 4047023 by Jamie.Dale Added missing hook-up for % and %= in Python Change 4047100 by Jamie.Dale Operators are now exposed to unreal.py and generate docs stating which overloads are available Change 4047105 by Jamie.Dale String is now "str" in doc strings to match the Python type Change 4047714 by Max.Chen Sequencer: Resolved merge conflicts with Dev-Sequencer Change 4048150 by Jamie.Dale Fixed single-culture PO import/export failing #jira UE-47079 Change 4048653 by Andrew.Rodham Sequencer: Automatic re-evaluation is now suppressed for external changes that modified only default values on channels - The issue is that moving an object that is partially-keyed in sequencer, with auto-key off, will set default values for the non-keyed channels. Doing so will dirty the sequence, which causes a re-evaluation, which re-evalutes the keyed channels, which effectively undoes the external change. - This is now fixed by suppressing the automatic re-evaluation for a specific signature of a specific sequence, if that is the only thing that has dirtied the sequence. Any subsequent changes to the sequence will cause a re-evaluation, and the suppression to be wiped. #jira UE-57519 #jira UE-58487 Change 4048814 by Jamie.Dale Fixed syntax error if an enum had an unknown value Change 4048819 by Jamie.Dale Fixed struct init functions having the wrong default values Change 4048856 by JeanLuc.Corenthin - Removed LOD & collision functions from UEditorLevelLibrary - Created a new class, UEditorMeshLibrary, to hold onto functionalities related to StaticMeshes - Added method to set LODs on a static mesh - Added method to remove LODs from a static mesh - Added method to get number of LODs on a static mesh - Added method to get number of simple collisions onto a static mesh - Added method to get number of convex collisions onto a static mesh - Added method to add convex collision onto a static mesh - Added method to remove all collisions onto a static mesh #jira UEENT-1232 #jira UEENT-1233 Change 4048961 by Jamie.Dale Improved formatting of output parameters in doc strings #jira UETOOL-1376 Change 4048988 by Jamie.Dale Fixed context leakage between the console and files, and import "unreal" by default now in the console #jira UETOOL-1379 Change 4049912 by Max.Chen Sequence Recorder: Minor recording group name improvements. - Initialize newly created actor group with existing actor group's base path. - When duplicating, use the current group's name as the base. - When typing in a name, if it fits the group format, the name should be allowable if it doesn't conflict with existing group names/assets. Change 4049934 by Andrew.Rodham Sequencer: Minor clean-up of sequencer interfaces and overloads - Replaced remaining instances of void* with FMovieSceneChannel* now that we mandate a common base class - Changed remaining explicit calls to SetDefault to SetChannelDefault overload so it works correctly with the SupportsDefaults trait - Exposed ability to manually implement an ISequencerChannelInterface rather than using the default templated one Change 4050608 by conan.reis Was getting link error about use of FFrameTime in ULevelSequencePlaybackController::PlayFromBeginning() in the VirtualCamera plugin so added TimeManagement to its dependant modules so it compiles again. Change 4050899 by Max.Chen Sequencer: Allow actor components for synchronization #jira UE-58468 Change 4050900 by Max.Chen Sequence Recorder: Don't create a spawn section if the object is a possessable #jira UE-58272 Change 4050904 by Max.Chen Curve Editor: Fix for evaluation a section of time when one key is non-weighted and the other is weighted. What we do is evaluate them both as being weighted, but we don't have the weight value for the non-weighted tangent. The weight of the non-weighted tangent is implicilty 1/3rd the distance between the two points, so we just calculate that if needed. #jira UE-58573 Change 4050905 by Max.Chen Curve Editor: When calculating vertical extents find feature points where slopes are zero and check them in addition to the keys if the curve is cubic. Curves now fit correclty vertically. Also changed fudge to 5% from 10% to match up old editor. Tighter fits seems better. #jira UE-58571 Change 4050972 by James.McNatton Added functions to ISequenceRecorder - Calling StartRecording with an empty array now triggers recording without clearning queued recordings - Added function to queue an actor to be recorded - Added function to check the next take number for a given actor when using groups Change 4050994 by James.McNatton Bug fixes for Virtual Camera - Preset menu now shows dates in the timestamp - Resetting offsets now alerts the system to update UI Change 4051431 by David.Hibbitts Added a component and blueprint library to access LiveLink data in blueprints which also works in editor. Deprecated LiveLink Driven component #jira UESP-577 Change 4051475 by Patrick.Boutot Rename EditorMeshLibrary Merge AssetScriptingUtilititesEditor with EditorScriptingUtilities. Add Redirects. Change 4051558 by Patrick.Boutot EngineCustomTimeStep returns true when we also want to perform the default engine code. Change 4052106 by Andrew.Rodham Sequencer: Adding an example that creates a sequence out of the current editor selection Change 4052205 by Anousack.Kitisa Fixed selected asset paths referenced by selected actors when using context Shotgun menu. Added function to retrieve the work area directory for Shotgun. #jira UEENT-1220 Change 4052951 by James.McNatton Virtual Camera Sequence Recorder updates to integrate new take system - Takes no longer display unless sequence recorder has a group selected - Adjusted fix to packaging error - FPS value will no longer appear if sequence recorder isn't available Change 4053130 by mason.seay Updated Game Mode Override Change 4053273 by James.McNatton Virtual Camera cleanup adjustments Change 4053627 by Max.Chen Sequencer: Disable bind sequencer to PIE/simulate while recording. Change 4053628 by Max.Chen Sequence Recorder: Fix target animation not persisting #jira UE-58508 Change 4053871 by Max.Chen Image Plate: Fix icon path Change 4054370 by Patrick.Boutot Remove LiveLink warning. Create base a class for FLiveLinkFrameRate as suggested in GenericPlatformCompilerPreSetup.h Change 4054447 by Darren.Pegg AJA low level device API Blackmagic low level API MediaIOCore changes to support AJA/Blackmagic changes AJA Module converted to use MediaIOCore Blackmagic Module changes for MediaIOCore Blackmagic/AJA Binary files Change 4054769 by Patrick.Boutot Packaging error issue introduce with CL 4054370. #jira UE-58749 Change 4055443 by Max.Chen Sequencer: Fix crash in adding filler shot #jira UE-58767 Change 4056577 by JeanMichel.Dignard Fixed crash with automation tests. We would bind the default UEditorEngine to Automation and on map load, it would call PIE on GEditor but with recent changes, PIE is called on this and the default UEditorEngine is not initialized so it would crash with a null GameViewportClass. Now we'll bind Automation on UEditorEngine InitializeObjectReferences so that we're in a good state and it's only called for GEditor. #jira UE-58792 Change 4057238 by Jamie.Dale Fixed crash when renaming Python generated classes or structs Change 4058435 by Jamie.Dale Fixed lingering exception state when converting a dict to a struct Change 4058486 by mason.seay Removed remote.host call from map [CL 4060164 by JeanMichel Dignard in Main branch]
2018-05-09 10:24:50 -04:00
if (EditorViewportSnapper.IsValid())
{
EditorViewportSnapper->SetActorSnapDistance(Distance);
}
}
bool FSnappingUtils::SnapActorsToNearestActor(FVector& DragDelta, FLevelEditorViewportClient* ViewportClient)
{
Copying //UE4/Dev-Enterprise to //UE4/Dev-Main (Source: //UE4/Dev-Enterprise @ 4059031) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3974233 by Rex.Hill Optimized BuildStaticMeshVertexAndIndexBuffers and TEdgeBuilder Change 3974234 by Rex.Hill Reduced number of calls to SaveRawMesh and LoadRawMesh Change 3974235 by Rex.Hill Optimized SaveRawMesh by pre-allocating buffer Change 3981370 by Jamie.Dale Added support for deprecated (renamed) classes, structs, enums, functions, and properties in Python The glue code generation will now use the existing redirects system to build deprecated entries for old names. You can also specify deprecated names to the ScriptName and ScriptMethod meta-data values by adding extra semi-colon separated entries (the first entry is the current name). Accessing deprecated objects in Python leads to a deprecation warning when developer mode is enabled. Change 3983875 by Jamie.Dale Exposed some asset registry functions that may be useful in a commandlet environment Change 3983901 by Jamie.Dale Hoisted some AssetData helpers onto the struct in Python Change 3988367 by Jamie.Dale Python now honors EditInstanceOnly and EditDefaultsOnly when setting property values Change 3988369 by Jamie.Dale Exposed generic get_default_object function that takes a type and returns you the CDO This is needed for types that aren't natively exposed to Python (such as Blueprint generated types) Change 3989890 by Jamie.Dale Moved BlutilityActor to be Private in EditorScriptingUtils This can be removed once it's no longer needed. Change 3989900 by Jamie.Dale Updated EditorScriptingUtilities to use the Public/Private folder structure for source code Change 3990082 by Anousack.Kitisa Added plugin for Shotgun integration in Unreal. #jira UEENT-959 Change 3990783 by Anousack.Kitisa Changed ShotgunMenuItem to a struct. Change 3991139 by Jamie.Dale Minimized use of GUnrealEd (favoring GEditor) so that this code can be used by commandlets Removed redundant usages of GEditor/GUnrealEd from within UEditorEngine itself, and fixed cases where null data was being accessed. Testing that loading, saving, and creating a new blank map will now work in a commandlet without crashing. Change 3993189 by Jamie.Dale Fixed some mismatched return types Change 3993191 by Jamie.Dale Inital support for taking the GIL at key points where external C code calls into Python Change 3993683 by Patrick.Boutot [LTC] Add a CustomTimeStep that decode a LinearTimecode from the MediaSource. The MediaPlayer need to support buffering and should not run late since it's used to tick the engine time. Update DropTimecode to use the new Timecode structure in TimeManagement. Change 3994430 by Jamie.Dale Adjusted how inline structs work so that types known at compile time can inline allocate without being fully hand-wrapped in Python They must now be registered via FPyWrapperTypeRegistry::RegisterInlineStructFactory before we start generating wrapped types Change 3996083 by Jamie.Dale Added a distinct type for generated enum types so that you can query their available enum entries Change 3998253 by conan.reis Remove redundant Perforce error output from the log Change 4000307 by JeanMichel.Dignard Optimized FFbxImporter::ValidateAllMeshesAreReferenceByNodeAttribute() - Stored all scene nodes geometry ids in a set instead of looping on all scene nodes for every geometry. O(N) instead of O(N^2). - For 38685 scene nodes and 5417 geometry, the time went from 2 min 21.688 s to 0 min 0.098 s. Change 4000605 by Jamie.Dale Added support for constant "hoisting" This allows you to tag a helper function that returns a constant with ScriptConstant meta-data (providing a potentially overridden name) to "hoist" that helper function to be a constant of the type it operates on when wrapped for Python (ScriptConstantHost can be used to host the constant on a struct rather than its own object). Change 4001617 by Jamie.Dale Updated ScriptMethod and ScriptConstant to allow hoisting onto other classes as well as structs This allows you to have a runtime class be extended via methods in an editor-only module Change 4005287 by Jamie.Dale Added a GIL lock when Slate Tick events call back into Python Change 4005383 by Andrew.Rodham Sequencer: Initial scripting exposure and support First pass includes the following: - Find/add/interate master tracks - Find/add/interate bindings (both possessables and spawnables) - Find/add/interate tracks on bindings - Add/interate sections on tracks - Get/Set section ranges Change 4008609 by Jamie.Dale Added some missing native Python types to the documentation Native modules now build up a list of types and functions associated with them. This information is then passed through to the document generation to ensure that all exposed native types and functions are documented. In addition, any native Python module files are now assimilated into the unreal.py stub file and parsed so that they can be documented too. Change 4008654 by Jamie.Dale Allow math operators to use the base type versions unless overridden Change 4009740 by Patrick.Boutot Add BP function to convert a Timecode into a string. Change 4009763 by Patrick.Boutot Update AudioCapture to retreive the SampleRate. Used by the LinearTimecode. Change the requested format from int16 to float since we converted it into that format later on. Change 4009768 by Andrew.Rodham Removed explicit names from ScriptName methods, expanded sequencer scripting range functionality Change 4009830 by Jamie.Dale Added support for UPARAM(ref) on arguments exposed to Python For standard functions, this just produces an input and output for the same argument (we can't mutate the input due to potential coercion). For ScriptMethod functions that use it on the 'self' argument, this will mark the function as "inline" and have the function apply the result of the 'self' argument back onto the 'self' instance after calling the function. Change 4010034 by Jamie.Dale Added support for init_unreal.py start-up scripts These can be placed in any known sys.path in Python, including the Content/Python folders we automatically add, and the UnrealEngine/Python directory under the users home directory. Change 4010422 by Jamie.Dale Improved errror reporting during Python generation It will now ensure if a debugger is attached to draw programmer attention to an error. Change 4010498 by Patrick.Boutot Remove unnecessary loop Timecode.ToFrameNumber() Change 4011312 by Jamie.Dale Duplicate deprecated names will no longer assert during Python glue generation They will now log a warning and continue Change 4012068 by JeanMichel.Dignard Allow to render thumbnails for newly created packages. - To render a thumbnail, you either need a customer thumbnail renderer or a cached thumbnail. Querying cached thumbnails fails for newly created packages because it calls DoesPackageExist which check on disk. This call is unnecessary since we're relying on FindPackage which only works for packages that are loaded in memory. Change 4013781 by Jamie.Dale FFrame::KismetExecutionMessage (or LogRuntimeError or LogRuntimeWarning) will now produce Python exceptions You can use these to emit warnings or errors from UFunctions wrapped for scripting, and when called from Python they will produce a Python exception (for errors), or Python warning (for warnings). Change 4014337 by Jamie.Dale Struct coercion now errors if you provide a sequence with too many elements This also makes sure that PyConversion doesn't set an error state if ESetErrorState::No is passed (which could have previously happened from type casting calls). Change 4015290 by Andrew.Rodham Sequencer: Moved runtime functionality from ISequencerChannelInterface to IMovieSceneChannelInterface - Rename IBatchChannelInterface to IMovieSceneChannelInterface - Removed MovieScene::Dilate() - Added TMovieSceneChannelTraits::SupportsDefaults to automatically stub out functions relating to channel defaults Change 4015664 by Jamie.Dale Renamed ScriptMathOp meta-data to ScriptOperator Change 4016230 by Jamie.Dale Fixed incorrect make/break path in Importance Sampling Library (for Importance Texture) Change 4017326 by Jamie.Dale Added make and break support in Python Structs that have a native make function will now use this as their constructor. This also adds support for breaking a struct into a tuple, either via a native break function, or via generic property enumeration. Change 4017551 by Jamie.Dale Removed redundant outer parameter from find/load_asset/package Change 4018594 by Jamie.Dale Added ScriptMethodSelfReturn as an alternative to UPARAM(ref) These two function signatures produce the same behavior and have the same cost in Python, the only difference is how they appear to Blueprints (and Blueprints seem to favor non-reference functions). UFUNCTION(..., meta=(ScriptMethod)) static void DoThing(UPARAM(ref) FThingType&, int32); UFUNCTION(..., meta=(ScriptMethod, ScriptMethodSelfReturn)) static FThingType DoThing(FThingType, int32); Change 4020956 by Anousack.Kitisa Added Shotgun to the Level Editor/World Outliner and Content Browser context menus when there's a selected actor or asset. #jira UEENT-1219 Change 4021986 by Anousack.Kitisa Used the Python startup scripts mechanism to launch the Shotgun bootstrap script. Related to Jira UE-57896. Change 4022993 by Jamie.Dale Added support for extra operators on Python structs You can now expose bool conversion and comparison operators (==, !=, <, <=, >, >=) in addition to the previous set of math operators. As part of this there is now stricter signature validation when generating the Python binding. Change 4023226 by Jamie.Dale Added Make and Break function for FSoftClassPath Change 4023348 by Jamie.Dale Exposed some methods and operators for PrimaryAssetId and PrimaryAssetType Change 4027911 by Jamie.Dale Cross-outer redirects are no longer applied in Python #jira UETOOL-1382 Change 4029618 by JeanMichel.Dignard Unreal Studio UX - Made "Unreal Studio" the default tab in the new project wizard if we're using an installed enterprise build. - Create new projects as enterprise projects if we're using an insalled enterprise build. #jira UEENT-1231, UEENT-796 Change 4030217 by Jamie.Dale Exposed ScopedSlowTask to Python #jira UETOOL-1375 Change 4030784 by Matt.Hoffman Sequencer curve editor now shows vertical axis labels. #jira UE-58160 Change 4030858 by JeanLuc.Corenthin Expose LOD creation thru Python: - Create one struct to hold onto reduction settings per LOD - Create one struct to hold onto an array of reduction settings and a parameter to enable of disable automatic computation of screen size - Create new method to apply reduction settings to an array of StaticMeshActors #jira UEENT-1232 Change 4032239 by Jamie.Dale Cleanup pass over wrapped structs - Code dealing with reflected structs now uses UScriptStruct rather than UStruct. - The old PyConversion::NativizeStruct and PyConversion::PythonizeStruct have been renamed to PyConversion::NativizeStructInstance and PyConversion::PythonizeStructInstance. - New PyConversion::NativizeStruct and PyConversion::PythonizeStruct functions have been added to convert an object (or Python type) to a UScriptStruct (akin to what PyConversion::NativizeClass and PyConversion::PythonizeClass does for UClass). Change 4032247 by Jamie.Dale Cleaned up some Python slow task code Change 4032251 by Jamie.Dale Added functions to get the Python type associated with an Unreal class, struct, or enum Change 4032258 by Jamie.Dale Added Python iterators for Unreal objects, classes, and structs, as well as the Python types wrapped by Unreal classes or structs #jira UETOOL-1380 Change 4032320 by Jamie.Dale Fixed Python object iterators skipping their first item Change 4032321 by Jamie.Dale Added Python iterators for actors and selected actors #jira UETOOL-1380 Change 4033908 by Anousack.Kitisa Added Shotgun settings for metadata tags. #jira UEENT-1175 Change 4033909 by Anousack.Kitisa Added wrapper function to sync Content Browser to assets for scripting. #jira UEENT-1218 Change 4034951 by Matt.Hoffman Media Tracks now highlight when added to a Sequence/UMG animation. Change 4034966 by Jamie.Dale Added GIL locks around post_init code that can be called from C++ Change 4035019 by Matt.Hoffman UMG Render Transforms + Margins now support infinite sections. Change 4035470 by Andrew.Rodham Introduced a common base class for all movie scene channel data, FMovieSceneChannel. Removed IMovieSceneChannelInterface. Renamed FMovieSceneChannelEditorData to FMovieSceneChannelMetaData. Renamed FMovieSceneChannel and TMovieSceneChannel to FMovieSceneChannelData and TMovieSceneChannelData, to make way for common channel base class. Renamed instances of 'specialized' channel editor data to 'extended' channel editor data. Introduced non-templated FMovieSceneChannelHandle and a templated version. Changed internal implementation to use a lookup rather than a directly resolved weak ptr. Various pieces of documentation and cleanup. Change 4037112 by Max.Chen Sequencer: Added some missing RF_Transactional flags to newly created sections. Change 4037121 by Max.Chen Sequence Recorder: Timecode recording Introduced an FSourceTimecode which is saved as editor only data to the MovieSceneSection and MovieScene. FSourceTimecode consists of an FFrameNumber delta that correlates the section's initial start time to an FTimecode. The FFrameNumber is adjusted whenever the section is moved. One use case for this is through sequence recorder, which captures the timecode at the start of recording and saves an FSourceTimecode per movie scene section it creates. If the section is moved, it can always be returned to its source timecode by the section's right click menu, "Sync to Source Timecode". #jira UESEQ-406 Change 4038462 by Jamie.Dale Added support for using Python callables with delegates All the "x_function" methods on delegates and multicast delegates now have an "x_callable" equivalent that take a Python callable (we attempt basic validation of the signature, but that only allows us to check the input argument count is what we expect). Internally the callable is wrapped in a UObject, so certain GC restrictions are present (and is why coercion is disabled for callables). Delegates wrapped in Python (including as a direct property of an object or struct, or inside a container) will be kept alive via the Python reference collection, however once there are no Python references left the proxy object will be allowed to die unless something external has taken a reference to the proxy object. Change 4039123 by James.McNatton Remove dependency on SteamController in VirtualCamera #rb none Change 4039162 by Jamie.Dale Fixed linter warnings about unescaped backslashes in docstrings Change 4039170 by Jamie.Dale No longer expose deprecated functions or properties if they clash with another Python exposed item Change 4039429 by Max.Chen Sequence Recorder: Swap to editor actors on end PIE if the actors to record were set to the PIE actors Change 4039442 by Max.Chen Sequence Recorder: Find the existing object binding and record into it if it exists. When recording to an existing object binding, if the track exists, remove all animation data and reuse the track. Change 4039477 by Jamie.Dale Added warnings for conflicting Python type and field names Change 4039478 by Jamie.Dale Fixed warnings for conflicting Python type and field names Change 4039511 by Max.Chen Sequencer: Remove all animation data for spawn track Change 4040649 by James.McNatton Multiple Virtual Camera bug fixes - Removed QAGame mannequin from test map - Fixed errors being generated when trying to load preset - Presets now properly load and save axis settings - Deleted presets should no longer linger in menus - Presets now save and load favorite status Change 4041356 by Max.Chen Sequence Recorder: Takes system #jira UESP-544 Change 4041589 by Jamie.Dale Added C++ source information (plugin, module, and file) to the Python doc string Change 4041746 by Jamie.Dale Made ScriptOperator more relaxed about its signature validation as long as the additional input parameters are defaulted Change 4041757 by James.McNatton Virtual Camera Bug Fixes - The Input Source dropdown now accurately reflects user selection - Input source changed to EditDefaultsOnly - Focus should no longer be set when the settings menu is open Change 4041823 by Jamie.Dale Made ScriptOperator more relaxed about its signature validation for defaulted input parameters Existing Blueprint exposed operator functions may both default required arguments, and add additional default arguments. ScriptOperator will now accept both of these as long as there are enough arguments, but not too many non-defaulted arguments. Change 4042956 by James.McNatton VirtualCamera bug fixes related to focus plane visualization - Removed extra focus plane that was being displayed - Added logic to adjust for nonuniform scaling of objects when settings up tracking focus Change 4043400 by James.McNatton Multiple bug fixes related to saving various values - Now saves matte opacity and updates on load - Now saves filmback format name and updates on load - Now saves desired distance units and updates on load Change 4043481 by James.McNatton Fixed issue in Virtual Camera where joystick movement would not properly apply locks after rotating #rb none Change 4044358 by Jamie.Dale Fixed some cases where empty default values would be lost from UHT Eg, empty strings, null objects Change 4044362 by Jamie.Dale Fixed old-style enums being missed by the Python glue generation if they're only referenced by a property of function Change 4044371 by Jamie.Dale Fixed default value application for some struct types that use a custom default value format when exported by UHT Change 4044417 by Max.Chen Sequence Recorder: Better default group names with an underscore separator for letters Change 4045164 by Jamie.Dale Hardened usage of CopyScriptStruct to ensure that the source type is a child of the destination type, and that the destination type is used to copy (to still allow slicing of derived data) Change 4045195 by Jamie.Dale Updated FPropValueOnScope::GetValue to be able to return the value for a particular array index Change 4045589 by James.McNatton Fixed packaging error for VirtualCamera plugin - Plugin is now a runtime plugin rather than developer - Fixed up associated warnings with saving and loading in editor Change 4046208 by James.McNatton Virtual Camera bug fixes - Adjusted how mattes and filmback works together - Should now always respond properly to changing filmback settings in UI - Should now match the correct view size within the matte under all circumstances Change 4046372 by Max.Chen Sequencer: Fix subsequence binding ids. #jira UE-55337 Change 4046694 by Max.Chen Sequence Recorder: Compile the template before finding the camera sequence id since the precompiled template is not up to date. Change 4046801 by Jamie.Dale Improved default values and return types used in the unreal.py stub file - Object and Struct types generate an __init__ function with the correct signature. - Struct __init__ functions list the correct default values (including when using make/break functions). - Methods now list the correct default values. - Get/Set getters return a value of the correct type. - Get/Set setters are no longer exported for read-only properties. - Constants resolve to the correct type and value. #jira UETOOL-1377 Change 4047023 by Jamie.Dale Added missing hook-up for % and %= in Python Change 4047100 by Jamie.Dale Operators are now exposed to unreal.py and generate docs stating which overloads are available Change 4047105 by Jamie.Dale String is now "str" in doc strings to match the Python type Change 4047714 by Max.Chen Sequencer: Resolved merge conflicts with Dev-Sequencer Change 4048150 by Jamie.Dale Fixed single-culture PO import/export failing #jira UE-47079 Change 4048653 by Andrew.Rodham Sequencer: Automatic re-evaluation is now suppressed for external changes that modified only default values on channels - The issue is that moving an object that is partially-keyed in sequencer, with auto-key off, will set default values for the non-keyed channels. Doing so will dirty the sequence, which causes a re-evaluation, which re-evalutes the keyed channels, which effectively undoes the external change. - This is now fixed by suppressing the automatic re-evaluation for a specific signature of a specific sequence, if that is the only thing that has dirtied the sequence. Any subsequent changes to the sequence will cause a re-evaluation, and the suppression to be wiped. #jira UE-57519 #jira UE-58487 Change 4048814 by Jamie.Dale Fixed syntax error if an enum had an unknown value Change 4048819 by Jamie.Dale Fixed struct init functions having the wrong default values Change 4048856 by JeanLuc.Corenthin - Removed LOD & collision functions from UEditorLevelLibrary - Created a new class, UEditorMeshLibrary, to hold onto functionalities related to StaticMeshes - Added method to set LODs on a static mesh - Added method to remove LODs from a static mesh - Added method to get number of LODs on a static mesh - Added method to get number of simple collisions onto a static mesh - Added method to get number of convex collisions onto a static mesh - Added method to add convex collision onto a static mesh - Added method to remove all collisions onto a static mesh #jira UEENT-1232 #jira UEENT-1233 Change 4048961 by Jamie.Dale Improved formatting of output parameters in doc strings #jira UETOOL-1376 Change 4048988 by Jamie.Dale Fixed context leakage between the console and files, and import "unreal" by default now in the console #jira UETOOL-1379 Change 4049912 by Max.Chen Sequence Recorder: Minor recording group name improvements. - Initialize newly created actor group with existing actor group's base path. - When duplicating, use the current group's name as the base. - When typing in a name, if it fits the group format, the name should be allowable if it doesn't conflict with existing group names/assets. Change 4049934 by Andrew.Rodham Sequencer: Minor clean-up of sequencer interfaces and overloads - Replaced remaining instances of void* with FMovieSceneChannel* now that we mandate a common base class - Changed remaining explicit calls to SetDefault to SetChannelDefault overload so it works correctly with the SupportsDefaults trait - Exposed ability to manually implement an ISequencerChannelInterface rather than using the default templated one Change 4050608 by conan.reis Was getting link error about use of FFrameTime in ULevelSequencePlaybackController::PlayFromBeginning() in the VirtualCamera plugin so added TimeManagement to its dependant modules so it compiles again. Change 4050899 by Max.Chen Sequencer: Allow actor components for synchronization #jira UE-58468 Change 4050900 by Max.Chen Sequence Recorder: Don't create a spawn section if the object is a possessable #jira UE-58272 Change 4050904 by Max.Chen Curve Editor: Fix for evaluation a section of time when one key is non-weighted and the other is weighted. What we do is evaluate them both as being weighted, but we don't have the weight value for the non-weighted tangent. The weight of the non-weighted tangent is implicilty 1/3rd the distance between the two points, so we just calculate that if needed. #jira UE-58573 Change 4050905 by Max.Chen Curve Editor: When calculating vertical extents find feature points where slopes are zero and check them in addition to the keys if the curve is cubic. Curves now fit correclty vertically. Also changed fudge to 5% from 10% to match up old editor. Tighter fits seems better. #jira UE-58571 Change 4050972 by James.McNatton Added functions to ISequenceRecorder - Calling StartRecording with an empty array now triggers recording without clearning queued recordings - Added function to queue an actor to be recorded - Added function to check the next take number for a given actor when using groups Change 4050994 by James.McNatton Bug fixes for Virtual Camera - Preset menu now shows dates in the timestamp - Resetting offsets now alerts the system to update UI Change 4051431 by David.Hibbitts Added a component and blueprint library to access LiveLink data in blueprints which also works in editor. Deprecated LiveLink Driven component #jira UESP-577 Change 4051475 by Patrick.Boutot Rename EditorMeshLibrary Merge AssetScriptingUtilititesEditor with EditorScriptingUtilities. Add Redirects. Change 4051558 by Patrick.Boutot EngineCustomTimeStep returns true when we also want to perform the default engine code. Change 4052106 by Andrew.Rodham Sequencer: Adding an example that creates a sequence out of the current editor selection Change 4052205 by Anousack.Kitisa Fixed selected asset paths referenced by selected actors when using context Shotgun menu. Added function to retrieve the work area directory for Shotgun. #jira UEENT-1220 Change 4052951 by James.McNatton Virtual Camera Sequence Recorder updates to integrate new take system - Takes no longer display unless sequence recorder has a group selected - Adjusted fix to packaging error - FPS value will no longer appear if sequence recorder isn't available Change 4053130 by mason.seay Updated Game Mode Override Change 4053273 by James.McNatton Virtual Camera cleanup adjustments Change 4053627 by Max.Chen Sequencer: Disable bind sequencer to PIE/simulate while recording. Change 4053628 by Max.Chen Sequence Recorder: Fix target animation not persisting #jira UE-58508 Change 4053871 by Max.Chen Image Plate: Fix icon path Change 4054370 by Patrick.Boutot Remove LiveLink warning. Create base a class for FLiveLinkFrameRate as suggested in GenericPlatformCompilerPreSetup.h Change 4054447 by Darren.Pegg AJA low level device API Blackmagic low level API MediaIOCore changes to support AJA/Blackmagic changes AJA Module converted to use MediaIOCore Blackmagic Module changes for MediaIOCore Blackmagic/AJA Binary files Change 4054769 by Patrick.Boutot Packaging error issue introduce with CL 4054370. #jira UE-58749 Change 4055443 by Max.Chen Sequencer: Fix crash in adding filler shot #jira UE-58767 Change 4056577 by JeanMichel.Dignard Fixed crash with automation tests. We would bind the default UEditorEngine to Automation and on map load, it would call PIE on GEditor but with recent changes, PIE is called on this and the default UEditorEngine is not initialized so it would crash with a null GameViewportClass. Now we'll bind Automation on UEditorEngine InitializeObjectReferences so that we're in a good state and it's only called for GEditor. #jira UE-58792 Change 4057238 by Jamie.Dale Fixed crash when renaming Python generated classes or structs Change 4058435 by Jamie.Dale Fixed lingering exception state when converting a dict to a struct Change 4058486 by mason.seay Removed remote.host call from map [CL 4060164 by JeanMichel Dignard in Main branch]
2018-05-09 10:24:50 -04:00
return EditorViewportSnapper.IsValid() ? EditorViewportSnapper->SnapActorsToNearestActor(DragDelta, ViewportClient) : false;
}
bool FSnappingUtils::SnapDraggedActorsToNearestVertex(FVector& DragDelta, FLevelEditorViewportClient* ViewportClient)
{
Copying //UE4/Dev-Enterprise to //UE4/Dev-Main (Source: //UE4/Dev-Enterprise @ 4059031) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3974233 by Rex.Hill Optimized BuildStaticMeshVertexAndIndexBuffers and TEdgeBuilder Change 3974234 by Rex.Hill Reduced number of calls to SaveRawMesh and LoadRawMesh Change 3974235 by Rex.Hill Optimized SaveRawMesh by pre-allocating buffer Change 3981370 by Jamie.Dale Added support for deprecated (renamed) classes, structs, enums, functions, and properties in Python The glue code generation will now use the existing redirects system to build deprecated entries for old names. You can also specify deprecated names to the ScriptName and ScriptMethod meta-data values by adding extra semi-colon separated entries (the first entry is the current name). Accessing deprecated objects in Python leads to a deprecation warning when developer mode is enabled. Change 3983875 by Jamie.Dale Exposed some asset registry functions that may be useful in a commandlet environment Change 3983901 by Jamie.Dale Hoisted some AssetData helpers onto the struct in Python Change 3988367 by Jamie.Dale Python now honors EditInstanceOnly and EditDefaultsOnly when setting property values Change 3988369 by Jamie.Dale Exposed generic get_default_object function that takes a type and returns you the CDO This is needed for types that aren't natively exposed to Python (such as Blueprint generated types) Change 3989890 by Jamie.Dale Moved BlutilityActor to be Private in EditorScriptingUtils This can be removed once it's no longer needed. Change 3989900 by Jamie.Dale Updated EditorScriptingUtilities to use the Public/Private folder structure for source code Change 3990082 by Anousack.Kitisa Added plugin for Shotgun integration in Unreal. #jira UEENT-959 Change 3990783 by Anousack.Kitisa Changed ShotgunMenuItem to a struct. Change 3991139 by Jamie.Dale Minimized use of GUnrealEd (favoring GEditor) so that this code can be used by commandlets Removed redundant usages of GEditor/GUnrealEd from within UEditorEngine itself, and fixed cases where null data was being accessed. Testing that loading, saving, and creating a new blank map will now work in a commandlet without crashing. Change 3993189 by Jamie.Dale Fixed some mismatched return types Change 3993191 by Jamie.Dale Inital support for taking the GIL at key points where external C code calls into Python Change 3993683 by Patrick.Boutot [LTC] Add a CustomTimeStep that decode a LinearTimecode from the MediaSource. The MediaPlayer need to support buffering and should not run late since it's used to tick the engine time. Update DropTimecode to use the new Timecode structure in TimeManagement. Change 3994430 by Jamie.Dale Adjusted how inline structs work so that types known at compile time can inline allocate without being fully hand-wrapped in Python They must now be registered via FPyWrapperTypeRegistry::RegisterInlineStructFactory before we start generating wrapped types Change 3996083 by Jamie.Dale Added a distinct type for generated enum types so that you can query their available enum entries Change 3998253 by conan.reis Remove redundant Perforce error output from the log Change 4000307 by JeanMichel.Dignard Optimized FFbxImporter::ValidateAllMeshesAreReferenceByNodeAttribute() - Stored all scene nodes geometry ids in a set instead of looping on all scene nodes for every geometry. O(N) instead of O(N^2). - For 38685 scene nodes and 5417 geometry, the time went from 2 min 21.688 s to 0 min 0.098 s. Change 4000605 by Jamie.Dale Added support for constant "hoisting" This allows you to tag a helper function that returns a constant with ScriptConstant meta-data (providing a potentially overridden name) to "hoist" that helper function to be a constant of the type it operates on when wrapped for Python (ScriptConstantHost can be used to host the constant on a struct rather than its own object). Change 4001617 by Jamie.Dale Updated ScriptMethod and ScriptConstant to allow hoisting onto other classes as well as structs This allows you to have a runtime class be extended via methods in an editor-only module Change 4005287 by Jamie.Dale Added a GIL lock when Slate Tick events call back into Python Change 4005383 by Andrew.Rodham Sequencer: Initial scripting exposure and support First pass includes the following: - Find/add/interate master tracks - Find/add/interate bindings (both possessables and spawnables) - Find/add/interate tracks on bindings - Add/interate sections on tracks - Get/Set section ranges Change 4008609 by Jamie.Dale Added some missing native Python types to the documentation Native modules now build up a list of types and functions associated with them. This information is then passed through to the document generation to ensure that all exposed native types and functions are documented. In addition, any native Python module files are now assimilated into the unreal.py stub file and parsed so that they can be documented too. Change 4008654 by Jamie.Dale Allow math operators to use the base type versions unless overridden Change 4009740 by Patrick.Boutot Add BP function to convert a Timecode into a string. Change 4009763 by Patrick.Boutot Update AudioCapture to retreive the SampleRate. Used by the LinearTimecode. Change the requested format from int16 to float since we converted it into that format later on. Change 4009768 by Andrew.Rodham Removed explicit names from ScriptName methods, expanded sequencer scripting range functionality Change 4009830 by Jamie.Dale Added support for UPARAM(ref) on arguments exposed to Python For standard functions, this just produces an input and output for the same argument (we can't mutate the input due to potential coercion). For ScriptMethod functions that use it on the 'self' argument, this will mark the function as "inline" and have the function apply the result of the 'self' argument back onto the 'self' instance after calling the function. Change 4010034 by Jamie.Dale Added support for init_unreal.py start-up scripts These can be placed in any known sys.path in Python, including the Content/Python folders we automatically add, and the UnrealEngine/Python directory under the users home directory. Change 4010422 by Jamie.Dale Improved errror reporting during Python generation It will now ensure if a debugger is attached to draw programmer attention to an error. Change 4010498 by Patrick.Boutot Remove unnecessary loop Timecode.ToFrameNumber() Change 4011312 by Jamie.Dale Duplicate deprecated names will no longer assert during Python glue generation They will now log a warning and continue Change 4012068 by JeanMichel.Dignard Allow to render thumbnails for newly created packages. - To render a thumbnail, you either need a customer thumbnail renderer or a cached thumbnail. Querying cached thumbnails fails for newly created packages because it calls DoesPackageExist which check on disk. This call is unnecessary since we're relying on FindPackage which only works for packages that are loaded in memory. Change 4013781 by Jamie.Dale FFrame::KismetExecutionMessage (or LogRuntimeError or LogRuntimeWarning) will now produce Python exceptions You can use these to emit warnings or errors from UFunctions wrapped for scripting, and when called from Python they will produce a Python exception (for errors), or Python warning (for warnings). Change 4014337 by Jamie.Dale Struct coercion now errors if you provide a sequence with too many elements This also makes sure that PyConversion doesn't set an error state if ESetErrorState::No is passed (which could have previously happened from type casting calls). Change 4015290 by Andrew.Rodham Sequencer: Moved runtime functionality from ISequencerChannelInterface to IMovieSceneChannelInterface - Rename IBatchChannelInterface to IMovieSceneChannelInterface - Removed MovieScene::Dilate() - Added TMovieSceneChannelTraits::SupportsDefaults to automatically stub out functions relating to channel defaults Change 4015664 by Jamie.Dale Renamed ScriptMathOp meta-data to ScriptOperator Change 4016230 by Jamie.Dale Fixed incorrect make/break path in Importance Sampling Library (for Importance Texture) Change 4017326 by Jamie.Dale Added make and break support in Python Structs that have a native make function will now use this as their constructor. This also adds support for breaking a struct into a tuple, either via a native break function, or via generic property enumeration. Change 4017551 by Jamie.Dale Removed redundant outer parameter from find/load_asset/package Change 4018594 by Jamie.Dale Added ScriptMethodSelfReturn as an alternative to UPARAM(ref) These two function signatures produce the same behavior and have the same cost in Python, the only difference is how they appear to Blueprints (and Blueprints seem to favor non-reference functions). UFUNCTION(..., meta=(ScriptMethod)) static void DoThing(UPARAM(ref) FThingType&, int32); UFUNCTION(..., meta=(ScriptMethod, ScriptMethodSelfReturn)) static FThingType DoThing(FThingType, int32); Change 4020956 by Anousack.Kitisa Added Shotgun to the Level Editor/World Outliner and Content Browser context menus when there's a selected actor or asset. #jira UEENT-1219 Change 4021986 by Anousack.Kitisa Used the Python startup scripts mechanism to launch the Shotgun bootstrap script. Related to Jira UE-57896. Change 4022993 by Jamie.Dale Added support for extra operators on Python structs You can now expose bool conversion and comparison operators (==, !=, <, <=, >, >=) in addition to the previous set of math operators. As part of this there is now stricter signature validation when generating the Python binding. Change 4023226 by Jamie.Dale Added Make and Break function for FSoftClassPath Change 4023348 by Jamie.Dale Exposed some methods and operators for PrimaryAssetId and PrimaryAssetType Change 4027911 by Jamie.Dale Cross-outer redirects are no longer applied in Python #jira UETOOL-1382 Change 4029618 by JeanMichel.Dignard Unreal Studio UX - Made "Unreal Studio" the default tab in the new project wizard if we're using an installed enterprise build. - Create new projects as enterprise projects if we're using an insalled enterprise build. #jira UEENT-1231, UEENT-796 Change 4030217 by Jamie.Dale Exposed ScopedSlowTask to Python #jira UETOOL-1375 Change 4030784 by Matt.Hoffman Sequencer curve editor now shows vertical axis labels. #jira UE-58160 Change 4030858 by JeanLuc.Corenthin Expose LOD creation thru Python: - Create one struct to hold onto reduction settings per LOD - Create one struct to hold onto an array of reduction settings and a parameter to enable of disable automatic computation of screen size - Create new method to apply reduction settings to an array of StaticMeshActors #jira UEENT-1232 Change 4032239 by Jamie.Dale Cleanup pass over wrapped structs - Code dealing with reflected structs now uses UScriptStruct rather than UStruct. - The old PyConversion::NativizeStruct and PyConversion::PythonizeStruct have been renamed to PyConversion::NativizeStructInstance and PyConversion::PythonizeStructInstance. - New PyConversion::NativizeStruct and PyConversion::PythonizeStruct functions have been added to convert an object (or Python type) to a UScriptStruct (akin to what PyConversion::NativizeClass and PyConversion::PythonizeClass does for UClass). Change 4032247 by Jamie.Dale Cleaned up some Python slow task code Change 4032251 by Jamie.Dale Added functions to get the Python type associated with an Unreal class, struct, or enum Change 4032258 by Jamie.Dale Added Python iterators for Unreal objects, classes, and structs, as well as the Python types wrapped by Unreal classes or structs #jira UETOOL-1380 Change 4032320 by Jamie.Dale Fixed Python object iterators skipping their first item Change 4032321 by Jamie.Dale Added Python iterators for actors and selected actors #jira UETOOL-1380 Change 4033908 by Anousack.Kitisa Added Shotgun settings for metadata tags. #jira UEENT-1175 Change 4033909 by Anousack.Kitisa Added wrapper function to sync Content Browser to assets for scripting. #jira UEENT-1218 Change 4034951 by Matt.Hoffman Media Tracks now highlight when added to a Sequence/UMG animation. Change 4034966 by Jamie.Dale Added GIL locks around post_init code that can be called from C++ Change 4035019 by Matt.Hoffman UMG Render Transforms + Margins now support infinite sections. Change 4035470 by Andrew.Rodham Introduced a common base class for all movie scene channel data, FMovieSceneChannel. Removed IMovieSceneChannelInterface. Renamed FMovieSceneChannelEditorData to FMovieSceneChannelMetaData. Renamed FMovieSceneChannel and TMovieSceneChannel to FMovieSceneChannelData and TMovieSceneChannelData, to make way for common channel base class. Renamed instances of 'specialized' channel editor data to 'extended' channel editor data. Introduced non-templated FMovieSceneChannelHandle and a templated version. Changed internal implementation to use a lookup rather than a directly resolved weak ptr. Various pieces of documentation and cleanup. Change 4037112 by Max.Chen Sequencer: Added some missing RF_Transactional flags to newly created sections. Change 4037121 by Max.Chen Sequence Recorder: Timecode recording Introduced an FSourceTimecode which is saved as editor only data to the MovieSceneSection and MovieScene. FSourceTimecode consists of an FFrameNumber delta that correlates the section's initial start time to an FTimecode. The FFrameNumber is adjusted whenever the section is moved. One use case for this is through sequence recorder, which captures the timecode at the start of recording and saves an FSourceTimecode per movie scene section it creates. If the section is moved, it can always be returned to its source timecode by the section's right click menu, "Sync to Source Timecode". #jira UESEQ-406 Change 4038462 by Jamie.Dale Added support for using Python callables with delegates All the "x_function" methods on delegates and multicast delegates now have an "x_callable" equivalent that take a Python callable (we attempt basic validation of the signature, but that only allows us to check the input argument count is what we expect). Internally the callable is wrapped in a UObject, so certain GC restrictions are present (and is why coercion is disabled for callables). Delegates wrapped in Python (including as a direct property of an object or struct, or inside a container) will be kept alive via the Python reference collection, however once there are no Python references left the proxy object will be allowed to die unless something external has taken a reference to the proxy object. Change 4039123 by James.McNatton Remove dependency on SteamController in VirtualCamera #rb none Change 4039162 by Jamie.Dale Fixed linter warnings about unescaped backslashes in docstrings Change 4039170 by Jamie.Dale No longer expose deprecated functions or properties if they clash with another Python exposed item Change 4039429 by Max.Chen Sequence Recorder: Swap to editor actors on end PIE if the actors to record were set to the PIE actors Change 4039442 by Max.Chen Sequence Recorder: Find the existing object binding and record into it if it exists. When recording to an existing object binding, if the track exists, remove all animation data and reuse the track. Change 4039477 by Jamie.Dale Added warnings for conflicting Python type and field names Change 4039478 by Jamie.Dale Fixed warnings for conflicting Python type and field names Change 4039511 by Max.Chen Sequencer: Remove all animation data for spawn track Change 4040649 by James.McNatton Multiple Virtual Camera bug fixes - Removed QAGame mannequin from test map - Fixed errors being generated when trying to load preset - Presets now properly load and save axis settings - Deleted presets should no longer linger in menus - Presets now save and load favorite status Change 4041356 by Max.Chen Sequence Recorder: Takes system #jira UESP-544 Change 4041589 by Jamie.Dale Added C++ source information (plugin, module, and file) to the Python doc string Change 4041746 by Jamie.Dale Made ScriptOperator more relaxed about its signature validation as long as the additional input parameters are defaulted Change 4041757 by James.McNatton Virtual Camera Bug Fixes - The Input Source dropdown now accurately reflects user selection - Input source changed to EditDefaultsOnly - Focus should no longer be set when the settings menu is open Change 4041823 by Jamie.Dale Made ScriptOperator more relaxed about its signature validation for defaulted input parameters Existing Blueprint exposed operator functions may both default required arguments, and add additional default arguments. ScriptOperator will now accept both of these as long as there are enough arguments, but not too many non-defaulted arguments. Change 4042956 by James.McNatton VirtualCamera bug fixes related to focus plane visualization - Removed extra focus plane that was being displayed - Added logic to adjust for nonuniform scaling of objects when settings up tracking focus Change 4043400 by James.McNatton Multiple bug fixes related to saving various values - Now saves matte opacity and updates on load - Now saves filmback format name and updates on load - Now saves desired distance units and updates on load Change 4043481 by James.McNatton Fixed issue in Virtual Camera where joystick movement would not properly apply locks after rotating #rb none Change 4044358 by Jamie.Dale Fixed some cases where empty default values would be lost from UHT Eg, empty strings, null objects Change 4044362 by Jamie.Dale Fixed old-style enums being missed by the Python glue generation if they're only referenced by a property of function Change 4044371 by Jamie.Dale Fixed default value application for some struct types that use a custom default value format when exported by UHT Change 4044417 by Max.Chen Sequence Recorder: Better default group names with an underscore separator for letters Change 4045164 by Jamie.Dale Hardened usage of CopyScriptStruct to ensure that the source type is a child of the destination type, and that the destination type is used to copy (to still allow slicing of derived data) Change 4045195 by Jamie.Dale Updated FPropValueOnScope::GetValue to be able to return the value for a particular array index Change 4045589 by James.McNatton Fixed packaging error for VirtualCamera plugin - Plugin is now a runtime plugin rather than developer - Fixed up associated warnings with saving and loading in editor Change 4046208 by James.McNatton Virtual Camera bug fixes - Adjusted how mattes and filmback works together - Should now always respond properly to changing filmback settings in UI - Should now match the correct view size within the matte under all circumstances Change 4046372 by Max.Chen Sequencer: Fix subsequence binding ids. #jira UE-55337 Change 4046694 by Max.Chen Sequence Recorder: Compile the template before finding the camera sequence id since the precompiled template is not up to date. Change 4046801 by Jamie.Dale Improved default values and return types used in the unreal.py stub file - Object and Struct types generate an __init__ function with the correct signature. - Struct __init__ functions list the correct default values (including when using make/break functions). - Methods now list the correct default values. - Get/Set getters return a value of the correct type. - Get/Set setters are no longer exported for read-only properties. - Constants resolve to the correct type and value. #jira UETOOL-1377 Change 4047023 by Jamie.Dale Added missing hook-up for % and %= in Python Change 4047100 by Jamie.Dale Operators are now exposed to unreal.py and generate docs stating which overloads are available Change 4047105 by Jamie.Dale String is now "str" in doc strings to match the Python type Change 4047714 by Max.Chen Sequencer: Resolved merge conflicts with Dev-Sequencer Change 4048150 by Jamie.Dale Fixed single-culture PO import/export failing #jira UE-47079 Change 4048653 by Andrew.Rodham Sequencer: Automatic re-evaluation is now suppressed for external changes that modified only default values on channels - The issue is that moving an object that is partially-keyed in sequencer, with auto-key off, will set default values for the non-keyed channels. Doing so will dirty the sequence, which causes a re-evaluation, which re-evalutes the keyed channels, which effectively undoes the external change. - This is now fixed by suppressing the automatic re-evaluation for a specific signature of a specific sequence, if that is the only thing that has dirtied the sequence. Any subsequent changes to the sequence will cause a re-evaluation, and the suppression to be wiped. #jira UE-57519 #jira UE-58487 Change 4048814 by Jamie.Dale Fixed syntax error if an enum had an unknown value Change 4048819 by Jamie.Dale Fixed struct init functions having the wrong default values Change 4048856 by JeanLuc.Corenthin - Removed LOD & collision functions from UEditorLevelLibrary - Created a new class, UEditorMeshLibrary, to hold onto functionalities related to StaticMeshes - Added method to set LODs on a static mesh - Added method to remove LODs from a static mesh - Added method to get number of LODs on a static mesh - Added method to get number of simple collisions onto a static mesh - Added method to get number of convex collisions onto a static mesh - Added method to add convex collision onto a static mesh - Added method to remove all collisions onto a static mesh #jira UEENT-1232 #jira UEENT-1233 Change 4048961 by Jamie.Dale Improved formatting of output parameters in doc strings #jira UETOOL-1376 Change 4048988 by Jamie.Dale Fixed context leakage between the console and files, and import "unreal" by default now in the console #jira UETOOL-1379 Change 4049912 by Max.Chen Sequence Recorder: Minor recording group name improvements. - Initialize newly created actor group with existing actor group's base path. - When duplicating, use the current group's name as the base. - When typing in a name, if it fits the group format, the name should be allowable if it doesn't conflict with existing group names/assets. Change 4049934 by Andrew.Rodham Sequencer: Minor clean-up of sequencer interfaces and overloads - Replaced remaining instances of void* with FMovieSceneChannel* now that we mandate a common base class - Changed remaining explicit calls to SetDefault to SetChannelDefault overload so it works correctly with the SupportsDefaults trait - Exposed ability to manually implement an ISequencerChannelInterface rather than using the default templated one Change 4050608 by conan.reis Was getting link error about use of FFrameTime in ULevelSequencePlaybackController::PlayFromBeginning() in the VirtualCamera plugin so added TimeManagement to its dependant modules so it compiles again. Change 4050899 by Max.Chen Sequencer: Allow actor components for synchronization #jira UE-58468 Change 4050900 by Max.Chen Sequence Recorder: Don't create a spawn section if the object is a possessable #jira UE-58272 Change 4050904 by Max.Chen Curve Editor: Fix for evaluation a section of time when one key is non-weighted and the other is weighted. What we do is evaluate them both as being weighted, but we don't have the weight value for the non-weighted tangent. The weight of the non-weighted tangent is implicilty 1/3rd the distance between the two points, so we just calculate that if needed. #jira UE-58573 Change 4050905 by Max.Chen Curve Editor: When calculating vertical extents find feature points where slopes are zero and check them in addition to the keys if the curve is cubic. Curves now fit correclty vertically. Also changed fudge to 5% from 10% to match up old editor. Tighter fits seems better. #jira UE-58571 Change 4050972 by James.McNatton Added functions to ISequenceRecorder - Calling StartRecording with an empty array now triggers recording without clearning queued recordings - Added function to queue an actor to be recorded - Added function to check the next take number for a given actor when using groups Change 4050994 by James.McNatton Bug fixes for Virtual Camera - Preset menu now shows dates in the timestamp - Resetting offsets now alerts the system to update UI Change 4051431 by David.Hibbitts Added a component and blueprint library to access LiveLink data in blueprints which also works in editor. Deprecated LiveLink Driven component #jira UESP-577 Change 4051475 by Patrick.Boutot Rename EditorMeshLibrary Merge AssetScriptingUtilititesEditor with EditorScriptingUtilities. Add Redirects. Change 4051558 by Patrick.Boutot EngineCustomTimeStep returns true when we also want to perform the default engine code. Change 4052106 by Andrew.Rodham Sequencer: Adding an example that creates a sequence out of the current editor selection Change 4052205 by Anousack.Kitisa Fixed selected asset paths referenced by selected actors when using context Shotgun menu. Added function to retrieve the work area directory for Shotgun. #jira UEENT-1220 Change 4052951 by James.McNatton Virtual Camera Sequence Recorder updates to integrate new take system - Takes no longer display unless sequence recorder has a group selected - Adjusted fix to packaging error - FPS value will no longer appear if sequence recorder isn't available Change 4053130 by mason.seay Updated Game Mode Override Change 4053273 by James.McNatton Virtual Camera cleanup adjustments Change 4053627 by Max.Chen Sequencer: Disable bind sequencer to PIE/simulate while recording. Change 4053628 by Max.Chen Sequence Recorder: Fix target animation not persisting #jira UE-58508 Change 4053871 by Max.Chen Image Plate: Fix icon path Change 4054370 by Patrick.Boutot Remove LiveLink warning. Create base a class for FLiveLinkFrameRate as suggested in GenericPlatformCompilerPreSetup.h Change 4054447 by Darren.Pegg AJA low level device API Blackmagic low level API MediaIOCore changes to support AJA/Blackmagic changes AJA Module converted to use MediaIOCore Blackmagic Module changes for MediaIOCore Blackmagic/AJA Binary files Change 4054769 by Patrick.Boutot Packaging error issue introduce with CL 4054370. #jira UE-58749 Change 4055443 by Max.Chen Sequencer: Fix crash in adding filler shot #jira UE-58767 Change 4056577 by JeanMichel.Dignard Fixed crash with automation tests. We would bind the default UEditorEngine to Automation and on map load, it would call PIE on GEditor but with recent changes, PIE is called on this and the default UEditorEngine is not initialized so it would crash with a null GameViewportClass. Now we'll bind Automation on UEditorEngine InitializeObjectReferences so that we're in a good state and it's only called for GEditor. #jira UE-58792 Change 4057238 by Jamie.Dale Fixed crash when renaming Python generated classes or structs Change 4058435 by Jamie.Dale Fixed lingering exception state when converting a dict to a struct Change 4058486 by mason.seay Removed remote.host call from map [CL 4060164 by JeanMichel Dignard in Main branch]
2018-05-09 10:24:50 -04:00
return EditorViewportSnapper.IsValid() ? EditorViewportSnapper->SnapDraggedActorsToNearestVertex(DragDelta, ViewportClient) : false;
}
bool FSnappingUtils::SnapDragLocationToNearestVertex(const FVector& BaseLocation, FVector& DragDelta, FLevelEditorViewportClient* ViewportClient, bool bIsPivot)
{
return EditorViewportSnapper.IsValid() ? EditorViewportSnapper->SnapDragLocationToNearestVertex(BaseLocation, DragDelta, ViewportClient, bIsPivot) : false;
}
bool FSnappingUtils::SnapLocationToNearestVertex(FVector& Location, const FVector2D& MouseLocation, FLevelEditorViewportClient* ViewportClient, FVector& OutVertexNormal, bool bDrawVertHelpers )
{
Copying //UE4/Dev-Enterprise to //UE4/Dev-Main (Source: //UE4/Dev-Enterprise @ 4059031) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3974233 by Rex.Hill Optimized BuildStaticMeshVertexAndIndexBuffers and TEdgeBuilder Change 3974234 by Rex.Hill Reduced number of calls to SaveRawMesh and LoadRawMesh Change 3974235 by Rex.Hill Optimized SaveRawMesh by pre-allocating buffer Change 3981370 by Jamie.Dale Added support for deprecated (renamed) classes, structs, enums, functions, and properties in Python The glue code generation will now use the existing redirects system to build deprecated entries for old names. You can also specify deprecated names to the ScriptName and ScriptMethod meta-data values by adding extra semi-colon separated entries (the first entry is the current name). Accessing deprecated objects in Python leads to a deprecation warning when developer mode is enabled. Change 3983875 by Jamie.Dale Exposed some asset registry functions that may be useful in a commandlet environment Change 3983901 by Jamie.Dale Hoisted some AssetData helpers onto the struct in Python Change 3988367 by Jamie.Dale Python now honors EditInstanceOnly and EditDefaultsOnly when setting property values Change 3988369 by Jamie.Dale Exposed generic get_default_object function that takes a type and returns you the CDO This is needed for types that aren't natively exposed to Python (such as Blueprint generated types) Change 3989890 by Jamie.Dale Moved BlutilityActor to be Private in EditorScriptingUtils This can be removed once it's no longer needed. Change 3989900 by Jamie.Dale Updated EditorScriptingUtilities to use the Public/Private folder structure for source code Change 3990082 by Anousack.Kitisa Added plugin for Shotgun integration in Unreal. #jira UEENT-959 Change 3990783 by Anousack.Kitisa Changed ShotgunMenuItem to a struct. Change 3991139 by Jamie.Dale Minimized use of GUnrealEd (favoring GEditor) so that this code can be used by commandlets Removed redundant usages of GEditor/GUnrealEd from within UEditorEngine itself, and fixed cases where null data was being accessed. Testing that loading, saving, and creating a new blank map will now work in a commandlet without crashing. Change 3993189 by Jamie.Dale Fixed some mismatched return types Change 3993191 by Jamie.Dale Inital support for taking the GIL at key points where external C code calls into Python Change 3993683 by Patrick.Boutot [LTC] Add a CustomTimeStep that decode a LinearTimecode from the MediaSource. The MediaPlayer need to support buffering and should not run late since it's used to tick the engine time. Update DropTimecode to use the new Timecode structure in TimeManagement. Change 3994430 by Jamie.Dale Adjusted how inline structs work so that types known at compile time can inline allocate without being fully hand-wrapped in Python They must now be registered via FPyWrapperTypeRegistry::RegisterInlineStructFactory before we start generating wrapped types Change 3996083 by Jamie.Dale Added a distinct type for generated enum types so that you can query their available enum entries Change 3998253 by conan.reis Remove redundant Perforce error output from the log Change 4000307 by JeanMichel.Dignard Optimized FFbxImporter::ValidateAllMeshesAreReferenceByNodeAttribute() - Stored all scene nodes geometry ids in a set instead of looping on all scene nodes for every geometry. O(N) instead of O(N^2). - For 38685 scene nodes and 5417 geometry, the time went from 2 min 21.688 s to 0 min 0.098 s. Change 4000605 by Jamie.Dale Added support for constant "hoisting" This allows you to tag a helper function that returns a constant with ScriptConstant meta-data (providing a potentially overridden name) to "hoist" that helper function to be a constant of the type it operates on when wrapped for Python (ScriptConstantHost can be used to host the constant on a struct rather than its own object). Change 4001617 by Jamie.Dale Updated ScriptMethod and ScriptConstant to allow hoisting onto other classes as well as structs This allows you to have a runtime class be extended via methods in an editor-only module Change 4005287 by Jamie.Dale Added a GIL lock when Slate Tick events call back into Python Change 4005383 by Andrew.Rodham Sequencer: Initial scripting exposure and support First pass includes the following: - Find/add/interate master tracks - Find/add/interate bindings (both possessables and spawnables) - Find/add/interate tracks on bindings - Add/interate sections on tracks - Get/Set section ranges Change 4008609 by Jamie.Dale Added some missing native Python types to the documentation Native modules now build up a list of types and functions associated with them. This information is then passed through to the document generation to ensure that all exposed native types and functions are documented. In addition, any native Python module files are now assimilated into the unreal.py stub file and parsed so that they can be documented too. Change 4008654 by Jamie.Dale Allow math operators to use the base type versions unless overridden Change 4009740 by Patrick.Boutot Add BP function to convert a Timecode into a string. Change 4009763 by Patrick.Boutot Update AudioCapture to retreive the SampleRate. Used by the LinearTimecode. Change the requested format from int16 to float since we converted it into that format later on. Change 4009768 by Andrew.Rodham Removed explicit names from ScriptName methods, expanded sequencer scripting range functionality Change 4009830 by Jamie.Dale Added support for UPARAM(ref) on arguments exposed to Python For standard functions, this just produces an input and output for the same argument (we can't mutate the input due to potential coercion). For ScriptMethod functions that use it on the 'self' argument, this will mark the function as "inline" and have the function apply the result of the 'self' argument back onto the 'self' instance after calling the function. Change 4010034 by Jamie.Dale Added support for init_unreal.py start-up scripts These can be placed in any known sys.path in Python, including the Content/Python folders we automatically add, and the UnrealEngine/Python directory under the users home directory. Change 4010422 by Jamie.Dale Improved errror reporting during Python generation It will now ensure if a debugger is attached to draw programmer attention to an error. Change 4010498 by Patrick.Boutot Remove unnecessary loop Timecode.ToFrameNumber() Change 4011312 by Jamie.Dale Duplicate deprecated names will no longer assert during Python glue generation They will now log a warning and continue Change 4012068 by JeanMichel.Dignard Allow to render thumbnails for newly created packages. - To render a thumbnail, you either need a customer thumbnail renderer or a cached thumbnail. Querying cached thumbnails fails for newly created packages because it calls DoesPackageExist which check on disk. This call is unnecessary since we're relying on FindPackage which only works for packages that are loaded in memory. Change 4013781 by Jamie.Dale FFrame::KismetExecutionMessage (or LogRuntimeError or LogRuntimeWarning) will now produce Python exceptions You can use these to emit warnings or errors from UFunctions wrapped for scripting, and when called from Python they will produce a Python exception (for errors), or Python warning (for warnings). Change 4014337 by Jamie.Dale Struct coercion now errors if you provide a sequence with too many elements This also makes sure that PyConversion doesn't set an error state if ESetErrorState::No is passed (which could have previously happened from type casting calls). Change 4015290 by Andrew.Rodham Sequencer: Moved runtime functionality from ISequencerChannelInterface to IMovieSceneChannelInterface - Rename IBatchChannelInterface to IMovieSceneChannelInterface - Removed MovieScene::Dilate() - Added TMovieSceneChannelTraits::SupportsDefaults to automatically stub out functions relating to channel defaults Change 4015664 by Jamie.Dale Renamed ScriptMathOp meta-data to ScriptOperator Change 4016230 by Jamie.Dale Fixed incorrect make/break path in Importance Sampling Library (for Importance Texture) Change 4017326 by Jamie.Dale Added make and break support in Python Structs that have a native make function will now use this as their constructor. This also adds support for breaking a struct into a tuple, either via a native break function, or via generic property enumeration. Change 4017551 by Jamie.Dale Removed redundant outer parameter from find/load_asset/package Change 4018594 by Jamie.Dale Added ScriptMethodSelfReturn as an alternative to UPARAM(ref) These two function signatures produce the same behavior and have the same cost in Python, the only difference is how they appear to Blueprints (and Blueprints seem to favor non-reference functions). UFUNCTION(..., meta=(ScriptMethod)) static void DoThing(UPARAM(ref) FThingType&, int32); UFUNCTION(..., meta=(ScriptMethod, ScriptMethodSelfReturn)) static FThingType DoThing(FThingType, int32); Change 4020956 by Anousack.Kitisa Added Shotgun to the Level Editor/World Outliner and Content Browser context menus when there's a selected actor or asset. #jira UEENT-1219 Change 4021986 by Anousack.Kitisa Used the Python startup scripts mechanism to launch the Shotgun bootstrap script. Related to Jira UE-57896. Change 4022993 by Jamie.Dale Added support for extra operators on Python structs You can now expose bool conversion and comparison operators (==, !=, <, <=, >, >=) in addition to the previous set of math operators. As part of this there is now stricter signature validation when generating the Python binding. Change 4023226 by Jamie.Dale Added Make and Break function for FSoftClassPath Change 4023348 by Jamie.Dale Exposed some methods and operators for PrimaryAssetId and PrimaryAssetType Change 4027911 by Jamie.Dale Cross-outer redirects are no longer applied in Python #jira UETOOL-1382 Change 4029618 by JeanMichel.Dignard Unreal Studio UX - Made "Unreal Studio" the default tab in the new project wizard if we're using an installed enterprise build. - Create new projects as enterprise projects if we're using an insalled enterprise build. #jira UEENT-1231, UEENT-796 Change 4030217 by Jamie.Dale Exposed ScopedSlowTask to Python #jira UETOOL-1375 Change 4030784 by Matt.Hoffman Sequencer curve editor now shows vertical axis labels. #jira UE-58160 Change 4030858 by JeanLuc.Corenthin Expose LOD creation thru Python: - Create one struct to hold onto reduction settings per LOD - Create one struct to hold onto an array of reduction settings and a parameter to enable of disable automatic computation of screen size - Create new method to apply reduction settings to an array of StaticMeshActors #jira UEENT-1232 Change 4032239 by Jamie.Dale Cleanup pass over wrapped structs - Code dealing with reflected structs now uses UScriptStruct rather than UStruct. - The old PyConversion::NativizeStruct and PyConversion::PythonizeStruct have been renamed to PyConversion::NativizeStructInstance and PyConversion::PythonizeStructInstance. - New PyConversion::NativizeStruct and PyConversion::PythonizeStruct functions have been added to convert an object (or Python type) to a UScriptStruct (akin to what PyConversion::NativizeClass and PyConversion::PythonizeClass does for UClass). Change 4032247 by Jamie.Dale Cleaned up some Python slow task code Change 4032251 by Jamie.Dale Added functions to get the Python type associated with an Unreal class, struct, or enum Change 4032258 by Jamie.Dale Added Python iterators for Unreal objects, classes, and structs, as well as the Python types wrapped by Unreal classes or structs #jira UETOOL-1380 Change 4032320 by Jamie.Dale Fixed Python object iterators skipping their first item Change 4032321 by Jamie.Dale Added Python iterators for actors and selected actors #jira UETOOL-1380 Change 4033908 by Anousack.Kitisa Added Shotgun settings for metadata tags. #jira UEENT-1175 Change 4033909 by Anousack.Kitisa Added wrapper function to sync Content Browser to assets for scripting. #jira UEENT-1218 Change 4034951 by Matt.Hoffman Media Tracks now highlight when added to a Sequence/UMG animation. Change 4034966 by Jamie.Dale Added GIL locks around post_init code that can be called from C++ Change 4035019 by Matt.Hoffman UMG Render Transforms + Margins now support infinite sections. Change 4035470 by Andrew.Rodham Introduced a common base class for all movie scene channel data, FMovieSceneChannel. Removed IMovieSceneChannelInterface. Renamed FMovieSceneChannelEditorData to FMovieSceneChannelMetaData. Renamed FMovieSceneChannel and TMovieSceneChannel to FMovieSceneChannelData and TMovieSceneChannelData, to make way for common channel base class. Renamed instances of 'specialized' channel editor data to 'extended' channel editor data. Introduced non-templated FMovieSceneChannelHandle and a templated version. Changed internal implementation to use a lookup rather than a directly resolved weak ptr. Various pieces of documentation and cleanup. Change 4037112 by Max.Chen Sequencer: Added some missing RF_Transactional flags to newly created sections. Change 4037121 by Max.Chen Sequence Recorder: Timecode recording Introduced an FSourceTimecode which is saved as editor only data to the MovieSceneSection and MovieScene. FSourceTimecode consists of an FFrameNumber delta that correlates the section's initial start time to an FTimecode. The FFrameNumber is adjusted whenever the section is moved. One use case for this is through sequence recorder, which captures the timecode at the start of recording and saves an FSourceTimecode per movie scene section it creates. If the section is moved, it can always be returned to its source timecode by the section's right click menu, "Sync to Source Timecode". #jira UESEQ-406 Change 4038462 by Jamie.Dale Added support for using Python callables with delegates All the "x_function" methods on delegates and multicast delegates now have an "x_callable" equivalent that take a Python callable (we attempt basic validation of the signature, but that only allows us to check the input argument count is what we expect). Internally the callable is wrapped in a UObject, so certain GC restrictions are present (and is why coercion is disabled for callables). Delegates wrapped in Python (including as a direct property of an object or struct, or inside a container) will be kept alive via the Python reference collection, however once there are no Python references left the proxy object will be allowed to die unless something external has taken a reference to the proxy object. Change 4039123 by James.McNatton Remove dependency on SteamController in VirtualCamera #rb none Change 4039162 by Jamie.Dale Fixed linter warnings about unescaped backslashes in docstrings Change 4039170 by Jamie.Dale No longer expose deprecated functions or properties if they clash with another Python exposed item Change 4039429 by Max.Chen Sequence Recorder: Swap to editor actors on end PIE if the actors to record were set to the PIE actors Change 4039442 by Max.Chen Sequence Recorder: Find the existing object binding and record into it if it exists. When recording to an existing object binding, if the track exists, remove all animation data and reuse the track. Change 4039477 by Jamie.Dale Added warnings for conflicting Python type and field names Change 4039478 by Jamie.Dale Fixed warnings for conflicting Python type and field names Change 4039511 by Max.Chen Sequencer: Remove all animation data for spawn track Change 4040649 by James.McNatton Multiple Virtual Camera bug fixes - Removed QAGame mannequin from test map - Fixed errors being generated when trying to load preset - Presets now properly load and save axis settings - Deleted presets should no longer linger in menus - Presets now save and load favorite status Change 4041356 by Max.Chen Sequence Recorder: Takes system #jira UESP-544 Change 4041589 by Jamie.Dale Added C++ source information (plugin, module, and file) to the Python doc string Change 4041746 by Jamie.Dale Made ScriptOperator more relaxed about its signature validation as long as the additional input parameters are defaulted Change 4041757 by James.McNatton Virtual Camera Bug Fixes - The Input Source dropdown now accurately reflects user selection - Input source changed to EditDefaultsOnly - Focus should no longer be set when the settings menu is open Change 4041823 by Jamie.Dale Made ScriptOperator more relaxed about its signature validation for defaulted input parameters Existing Blueprint exposed operator functions may both default required arguments, and add additional default arguments. ScriptOperator will now accept both of these as long as there are enough arguments, but not too many non-defaulted arguments. Change 4042956 by James.McNatton VirtualCamera bug fixes related to focus plane visualization - Removed extra focus plane that was being displayed - Added logic to adjust for nonuniform scaling of objects when settings up tracking focus Change 4043400 by James.McNatton Multiple bug fixes related to saving various values - Now saves matte opacity and updates on load - Now saves filmback format name and updates on load - Now saves desired distance units and updates on load Change 4043481 by James.McNatton Fixed issue in Virtual Camera where joystick movement would not properly apply locks after rotating #rb none Change 4044358 by Jamie.Dale Fixed some cases where empty default values would be lost from UHT Eg, empty strings, null objects Change 4044362 by Jamie.Dale Fixed old-style enums being missed by the Python glue generation if they're only referenced by a property of function Change 4044371 by Jamie.Dale Fixed default value application for some struct types that use a custom default value format when exported by UHT Change 4044417 by Max.Chen Sequence Recorder: Better default group names with an underscore separator for letters Change 4045164 by Jamie.Dale Hardened usage of CopyScriptStruct to ensure that the source type is a child of the destination type, and that the destination type is used to copy (to still allow slicing of derived data) Change 4045195 by Jamie.Dale Updated FPropValueOnScope::GetValue to be able to return the value for a particular array index Change 4045589 by James.McNatton Fixed packaging error for VirtualCamera plugin - Plugin is now a runtime plugin rather than developer - Fixed up associated warnings with saving and loading in editor Change 4046208 by James.McNatton Virtual Camera bug fixes - Adjusted how mattes and filmback works together - Should now always respond properly to changing filmback settings in UI - Should now match the correct view size within the matte under all circumstances Change 4046372 by Max.Chen Sequencer: Fix subsequence binding ids. #jira UE-55337 Change 4046694 by Max.Chen Sequence Recorder: Compile the template before finding the camera sequence id since the precompiled template is not up to date. Change 4046801 by Jamie.Dale Improved default values and return types used in the unreal.py stub file - Object and Struct types generate an __init__ function with the correct signature. - Struct __init__ functions list the correct default values (including when using make/break functions). - Methods now list the correct default values. - Get/Set getters return a value of the correct type. - Get/Set setters are no longer exported for read-only properties. - Constants resolve to the correct type and value. #jira UETOOL-1377 Change 4047023 by Jamie.Dale Added missing hook-up for % and %= in Python Change 4047100 by Jamie.Dale Operators are now exposed to unreal.py and generate docs stating which overloads are available Change 4047105 by Jamie.Dale String is now "str" in doc strings to match the Python type Change 4047714 by Max.Chen Sequencer: Resolved merge conflicts with Dev-Sequencer Change 4048150 by Jamie.Dale Fixed single-culture PO import/export failing #jira UE-47079 Change 4048653 by Andrew.Rodham Sequencer: Automatic re-evaluation is now suppressed for external changes that modified only default values on channels - The issue is that moving an object that is partially-keyed in sequencer, with auto-key off, will set default values for the non-keyed channels. Doing so will dirty the sequence, which causes a re-evaluation, which re-evalutes the keyed channels, which effectively undoes the external change. - This is now fixed by suppressing the automatic re-evaluation for a specific signature of a specific sequence, if that is the only thing that has dirtied the sequence. Any subsequent changes to the sequence will cause a re-evaluation, and the suppression to be wiped. #jira UE-57519 #jira UE-58487 Change 4048814 by Jamie.Dale Fixed syntax error if an enum had an unknown value Change 4048819 by Jamie.Dale Fixed struct init functions having the wrong default values Change 4048856 by JeanLuc.Corenthin - Removed LOD & collision functions from UEditorLevelLibrary - Created a new class, UEditorMeshLibrary, to hold onto functionalities related to StaticMeshes - Added method to set LODs on a static mesh - Added method to remove LODs from a static mesh - Added method to get number of LODs on a static mesh - Added method to get number of simple collisions onto a static mesh - Added method to get number of convex collisions onto a static mesh - Added method to add convex collision onto a static mesh - Added method to remove all collisions onto a static mesh #jira UEENT-1232 #jira UEENT-1233 Change 4048961 by Jamie.Dale Improved formatting of output parameters in doc strings #jira UETOOL-1376 Change 4048988 by Jamie.Dale Fixed context leakage between the console and files, and import "unreal" by default now in the console #jira UETOOL-1379 Change 4049912 by Max.Chen Sequence Recorder: Minor recording group name improvements. - Initialize newly created actor group with existing actor group's base path. - When duplicating, use the current group's name as the base. - When typing in a name, if it fits the group format, the name should be allowable if it doesn't conflict with existing group names/assets. Change 4049934 by Andrew.Rodham Sequencer: Minor clean-up of sequencer interfaces and overloads - Replaced remaining instances of void* with FMovieSceneChannel* now that we mandate a common base class - Changed remaining explicit calls to SetDefault to SetChannelDefault overload so it works correctly with the SupportsDefaults trait - Exposed ability to manually implement an ISequencerChannelInterface rather than using the default templated one Change 4050608 by conan.reis Was getting link error about use of FFrameTime in ULevelSequencePlaybackController::PlayFromBeginning() in the VirtualCamera plugin so added TimeManagement to its dependant modules so it compiles again. Change 4050899 by Max.Chen Sequencer: Allow actor components for synchronization #jira UE-58468 Change 4050900 by Max.Chen Sequence Recorder: Don't create a spawn section if the object is a possessable #jira UE-58272 Change 4050904 by Max.Chen Curve Editor: Fix for evaluation a section of time when one key is non-weighted and the other is weighted. What we do is evaluate them both as being weighted, but we don't have the weight value for the non-weighted tangent. The weight of the non-weighted tangent is implicilty 1/3rd the distance between the two points, so we just calculate that if needed. #jira UE-58573 Change 4050905 by Max.Chen Curve Editor: When calculating vertical extents find feature points where slopes are zero and check them in addition to the keys if the curve is cubic. Curves now fit correclty vertically. Also changed fudge to 5% from 10% to match up old editor. Tighter fits seems better. #jira UE-58571 Change 4050972 by James.McNatton Added functions to ISequenceRecorder - Calling StartRecording with an empty array now triggers recording without clearning queued recordings - Added function to queue an actor to be recorded - Added function to check the next take number for a given actor when using groups Change 4050994 by James.McNatton Bug fixes for Virtual Camera - Preset menu now shows dates in the timestamp - Resetting offsets now alerts the system to update UI Change 4051431 by David.Hibbitts Added a component and blueprint library to access LiveLink data in blueprints which also works in editor. Deprecated LiveLink Driven component #jira UESP-577 Change 4051475 by Patrick.Boutot Rename EditorMeshLibrary Merge AssetScriptingUtilititesEditor with EditorScriptingUtilities. Add Redirects. Change 4051558 by Patrick.Boutot EngineCustomTimeStep returns true when we also want to perform the default engine code. Change 4052106 by Andrew.Rodham Sequencer: Adding an example that creates a sequence out of the current editor selection Change 4052205 by Anousack.Kitisa Fixed selected asset paths referenced by selected actors when using context Shotgun menu. Added function to retrieve the work area directory for Shotgun. #jira UEENT-1220 Change 4052951 by James.McNatton Virtual Camera Sequence Recorder updates to integrate new take system - Takes no longer display unless sequence recorder has a group selected - Adjusted fix to packaging error - FPS value will no longer appear if sequence recorder isn't available Change 4053130 by mason.seay Updated Game Mode Override Change 4053273 by James.McNatton Virtual Camera cleanup adjustments Change 4053627 by Max.Chen Sequencer: Disable bind sequencer to PIE/simulate while recording. Change 4053628 by Max.Chen Sequence Recorder: Fix target animation not persisting #jira UE-58508 Change 4053871 by Max.Chen Image Plate: Fix icon path Change 4054370 by Patrick.Boutot Remove LiveLink warning. Create base a class for FLiveLinkFrameRate as suggested in GenericPlatformCompilerPreSetup.h Change 4054447 by Darren.Pegg AJA low level device API Blackmagic low level API MediaIOCore changes to support AJA/Blackmagic changes AJA Module converted to use MediaIOCore Blackmagic Module changes for MediaIOCore Blackmagic/AJA Binary files Change 4054769 by Patrick.Boutot Packaging error issue introduce with CL 4054370. #jira UE-58749 Change 4055443 by Max.Chen Sequencer: Fix crash in adding filler shot #jira UE-58767 Change 4056577 by JeanMichel.Dignard Fixed crash with automation tests. We would bind the default UEditorEngine to Automation and on map load, it would call PIE on GEditor but with recent changes, PIE is called on this and the default UEditorEngine is not initialized so it would crash with a null GameViewportClass. Now we'll bind Automation on UEditorEngine InitializeObjectReferences so that we're in a good state and it's only called for GEditor. #jira UE-58792 Change 4057238 by Jamie.Dale Fixed crash when renaming Python generated classes or structs Change 4058435 by Jamie.Dale Fixed lingering exception state when converting a dict to a struct Change 4058486 by mason.seay Removed remote.host call from map [CL 4060164 by JeanMichel Dignard in Main branch]
2018-05-09 10:24:50 -04:00
return EditorViewportSnapper.IsValid() ? EditorViewportSnapper->SnapLocationToNearestVertex(Location, MouseLocation, ViewportClient, OutVertexNormal, bDrawVertHelpers ) : false;
}
void FSnappingUtils::SnapScale(FVector& Point, const FVector& GridBase)
{
IViewportSnappingModule::GetSnapManager()->SnapScale(Point, GridBase);
}
void FSnappingUtils::SnapPointToGrid(FVector& Point, const FVector& GridBase)
{
IViewportSnappingModule::GetSnapManager()->SnapPointToGrid(Point, GridBase);
}
void FSnappingUtils::SnapRotatorToGrid(FRotator& Rotation)
{
IViewportSnappingModule::GetSnapManager()->SnapRotatorToGrid(Rotation);
}
bool FSnappingUtils::SnapToBSPVertex(FVector& Location, FVector GridBase, FRotator& Rotation)
{
Copying //UE4/Dev-Enterprise to //UE4/Dev-Main (Source: //UE4/Dev-Enterprise @ 4059031) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3974233 by Rex.Hill Optimized BuildStaticMeshVertexAndIndexBuffers and TEdgeBuilder Change 3974234 by Rex.Hill Reduced number of calls to SaveRawMesh and LoadRawMesh Change 3974235 by Rex.Hill Optimized SaveRawMesh by pre-allocating buffer Change 3981370 by Jamie.Dale Added support for deprecated (renamed) classes, structs, enums, functions, and properties in Python The glue code generation will now use the existing redirects system to build deprecated entries for old names. You can also specify deprecated names to the ScriptName and ScriptMethod meta-data values by adding extra semi-colon separated entries (the first entry is the current name). Accessing deprecated objects in Python leads to a deprecation warning when developer mode is enabled. Change 3983875 by Jamie.Dale Exposed some asset registry functions that may be useful in a commandlet environment Change 3983901 by Jamie.Dale Hoisted some AssetData helpers onto the struct in Python Change 3988367 by Jamie.Dale Python now honors EditInstanceOnly and EditDefaultsOnly when setting property values Change 3988369 by Jamie.Dale Exposed generic get_default_object function that takes a type and returns you the CDO This is needed for types that aren't natively exposed to Python (such as Blueprint generated types) Change 3989890 by Jamie.Dale Moved BlutilityActor to be Private in EditorScriptingUtils This can be removed once it's no longer needed. Change 3989900 by Jamie.Dale Updated EditorScriptingUtilities to use the Public/Private folder structure for source code Change 3990082 by Anousack.Kitisa Added plugin for Shotgun integration in Unreal. #jira UEENT-959 Change 3990783 by Anousack.Kitisa Changed ShotgunMenuItem to a struct. Change 3991139 by Jamie.Dale Minimized use of GUnrealEd (favoring GEditor) so that this code can be used by commandlets Removed redundant usages of GEditor/GUnrealEd from within UEditorEngine itself, and fixed cases where null data was being accessed. Testing that loading, saving, and creating a new blank map will now work in a commandlet without crashing. Change 3993189 by Jamie.Dale Fixed some mismatched return types Change 3993191 by Jamie.Dale Inital support for taking the GIL at key points where external C code calls into Python Change 3993683 by Patrick.Boutot [LTC] Add a CustomTimeStep that decode a LinearTimecode from the MediaSource. The MediaPlayer need to support buffering and should not run late since it's used to tick the engine time. Update DropTimecode to use the new Timecode structure in TimeManagement. Change 3994430 by Jamie.Dale Adjusted how inline structs work so that types known at compile time can inline allocate without being fully hand-wrapped in Python They must now be registered via FPyWrapperTypeRegistry::RegisterInlineStructFactory before we start generating wrapped types Change 3996083 by Jamie.Dale Added a distinct type for generated enum types so that you can query their available enum entries Change 3998253 by conan.reis Remove redundant Perforce error output from the log Change 4000307 by JeanMichel.Dignard Optimized FFbxImporter::ValidateAllMeshesAreReferenceByNodeAttribute() - Stored all scene nodes geometry ids in a set instead of looping on all scene nodes for every geometry. O(N) instead of O(N^2). - For 38685 scene nodes and 5417 geometry, the time went from 2 min 21.688 s to 0 min 0.098 s. Change 4000605 by Jamie.Dale Added support for constant "hoisting" This allows you to tag a helper function that returns a constant with ScriptConstant meta-data (providing a potentially overridden name) to "hoist" that helper function to be a constant of the type it operates on when wrapped for Python (ScriptConstantHost can be used to host the constant on a struct rather than its own object). Change 4001617 by Jamie.Dale Updated ScriptMethod and ScriptConstant to allow hoisting onto other classes as well as structs This allows you to have a runtime class be extended via methods in an editor-only module Change 4005287 by Jamie.Dale Added a GIL lock when Slate Tick events call back into Python Change 4005383 by Andrew.Rodham Sequencer: Initial scripting exposure and support First pass includes the following: - Find/add/interate master tracks - Find/add/interate bindings (both possessables and spawnables) - Find/add/interate tracks on bindings - Add/interate sections on tracks - Get/Set section ranges Change 4008609 by Jamie.Dale Added some missing native Python types to the documentation Native modules now build up a list of types and functions associated with them. This information is then passed through to the document generation to ensure that all exposed native types and functions are documented. In addition, any native Python module files are now assimilated into the unreal.py stub file and parsed so that they can be documented too. Change 4008654 by Jamie.Dale Allow math operators to use the base type versions unless overridden Change 4009740 by Patrick.Boutot Add BP function to convert a Timecode into a string. Change 4009763 by Patrick.Boutot Update AudioCapture to retreive the SampleRate. Used by the LinearTimecode. Change the requested format from int16 to float since we converted it into that format later on. Change 4009768 by Andrew.Rodham Removed explicit names from ScriptName methods, expanded sequencer scripting range functionality Change 4009830 by Jamie.Dale Added support for UPARAM(ref) on arguments exposed to Python For standard functions, this just produces an input and output for the same argument (we can't mutate the input due to potential coercion). For ScriptMethod functions that use it on the 'self' argument, this will mark the function as "inline" and have the function apply the result of the 'self' argument back onto the 'self' instance after calling the function. Change 4010034 by Jamie.Dale Added support for init_unreal.py start-up scripts These can be placed in any known sys.path in Python, including the Content/Python folders we automatically add, and the UnrealEngine/Python directory under the users home directory. Change 4010422 by Jamie.Dale Improved errror reporting during Python generation It will now ensure if a debugger is attached to draw programmer attention to an error. Change 4010498 by Patrick.Boutot Remove unnecessary loop Timecode.ToFrameNumber() Change 4011312 by Jamie.Dale Duplicate deprecated names will no longer assert during Python glue generation They will now log a warning and continue Change 4012068 by JeanMichel.Dignard Allow to render thumbnails for newly created packages. - To render a thumbnail, you either need a customer thumbnail renderer or a cached thumbnail. Querying cached thumbnails fails for newly created packages because it calls DoesPackageExist which check on disk. This call is unnecessary since we're relying on FindPackage which only works for packages that are loaded in memory. Change 4013781 by Jamie.Dale FFrame::KismetExecutionMessage (or LogRuntimeError or LogRuntimeWarning) will now produce Python exceptions You can use these to emit warnings or errors from UFunctions wrapped for scripting, and when called from Python they will produce a Python exception (for errors), or Python warning (for warnings). Change 4014337 by Jamie.Dale Struct coercion now errors if you provide a sequence with too many elements This also makes sure that PyConversion doesn't set an error state if ESetErrorState::No is passed (which could have previously happened from type casting calls). Change 4015290 by Andrew.Rodham Sequencer: Moved runtime functionality from ISequencerChannelInterface to IMovieSceneChannelInterface - Rename IBatchChannelInterface to IMovieSceneChannelInterface - Removed MovieScene::Dilate() - Added TMovieSceneChannelTraits::SupportsDefaults to automatically stub out functions relating to channel defaults Change 4015664 by Jamie.Dale Renamed ScriptMathOp meta-data to ScriptOperator Change 4016230 by Jamie.Dale Fixed incorrect make/break path in Importance Sampling Library (for Importance Texture) Change 4017326 by Jamie.Dale Added make and break support in Python Structs that have a native make function will now use this as their constructor. This also adds support for breaking a struct into a tuple, either via a native break function, or via generic property enumeration. Change 4017551 by Jamie.Dale Removed redundant outer parameter from find/load_asset/package Change 4018594 by Jamie.Dale Added ScriptMethodSelfReturn as an alternative to UPARAM(ref) These two function signatures produce the same behavior and have the same cost in Python, the only difference is how they appear to Blueprints (and Blueprints seem to favor non-reference functions). UFUNCTION(..., meta=(ScriptMethod)) static void DoThing(UPARAM(ref) FThingType&, int32); UFUNCTION(..., meta=(ScriptMethod, ScriptMethodSelfReturn)) static FThingType DoThing(FThingType, int32); Change 4020956 by Anousack.Kitisa Added Shotgun to the Level Editor/World Outliner and Content Browser context menus when there's a selected actor or asset. #jira UEENT-1219 Change 4021986 by Anousack.Kitisa Used the Python startup scripts mechanism to launch the Shotgun bootstrap script. Related to Jira UE-57896. Change 4022993 by Jamie.Dale Added support for extra operators on Python structs You can now expose bool conversion and comparison operators (==, !=, <, <=, >, >=) in addition to the previous set of math operators. As part of this there is now stricter signature validation when generating the Python binding. Change 4023226 by Jamie.Dale Added Make and Break function for FSoftClassPath Change 4023348 by Jamie.Dale Exposed some methods and operators for PrimaryAssetId and PrimaryAssetType Change 4027911 by Jamie.Dale Cross-outer redirects are no longer applied in Python #jira UETOOL-1382 Change 4029618 by JeanMichel.Dignard Unreal Studio UX - Made "Unreal Studio" the default tab in the new project wizard if we're using an installed enterprise build. - Create new projects as enterprise projects if we're using an insalled enterprise build. #jira UEENT-1231, UEENT-796 Change 4030217 by Jamie.Dale Exposed ScopedSlowTask to Python #jira UETOOL-1375 Change 4030784 by Matt.Hoffman Sequencer curve editor now shows vertical axis labels. #jira UE-58160 Change 4030858 by JeanLuc.Corenthin Expose LOD creation thru Python: - Create one struct to hold onto reduction settings per LOD - Create one struct to hold onto an array of reduction settings and a parameter to enable of disable automatic computation of screen size - Create new method to apply reduction settings to an array of StaticMeshActors #jira UEENT-1232 Change 4032239 by Jamie.Dale Cleanup pass over wrapped structs - Code dealing with reflected structs now uses UScriptStruct rather than UStruct. - The old PyConversion::NativizeStruct and PyConversion::PythonizeStruct have been renamed to PyConversion::NativizeStructInstance and PyConversion::PythonizeStructInstance. - New PyConversion::NativizeStruct and PyConversion::PythonizeStruct functions have been added to convert an object (or Python type) to a UScriptStruct (akin to what PyConversion::NativizeClass and PyConversion::PythonizeClass does for UClass). Change 4032247 by Jamie.Dale Cleaned up some Python slow task code Change 4032251 by Jamie.Dale Added functions to get the Python type associated with an Unreal class, struct, or enum Change 4032258 by Jamie.Dale Added Python iterators for Unreal objects, classes, and structs, as well as the Python types wrapped by Unreal classes or structs #jira UETOOL-1380 Change 4032320 by Jamie.Dale Fixed Python object iterators skipping their first item Change 4032321 by Jamie.Dale Added Python iterators for actors and selected actors #jira UETOOL-1380 Change 4033908 by Anousack.Kitisa Added Shotgun settings for metadata tags. #jira UEENT-1175 Change 4033909 by Anousack.Kitisa Added wrapper function to sync Content Browser to assets for scripting. #jira UEENT-1218 Change 4034951 by Matt.Hoffman Media Tracks now highlight when added to a Sequence/UMG animation. Change 4034966 by Jamie.Dale Added GIL locks around post_init code that can be called from C++ Change 4035019 by Matt.Hoffman UMG Render Transforms + Margins now support infinite sections. Change 4035470 by Andrew.Rodham Introduced a common base class for all movie scene channel data, FMovieSceneChannel. Removed IMovieSceneChannelInterface. Renamed FMovieSceneChannelEditorData to FMovieSceneChannelMetaData. Renamed FMovieSceneChannel and TMovieSceneChannel to FMovieSceneChannelData and TMovieSceneChannelData, to make way for common channel base class. Renamed instances of 'specialized' channel editor data to 'extended' channel editor data. Introduced non-templated FMovieSceneChannelHandle and a templated version. Changed internal implementation to use a lookup rather than a directly resolved weak ptr. Various pieces of documentation and cleanup. Change 4037112 by Max.Chen Sequencer: Added some missing RF_Transactional flags to newly created sections. Change 4037121 by Max.Chen Sequence Recorder: Timecode recording Introduced an FSourceTimecode which is saved as editor only data to the MovieSceneSection and MovieScene. FSourceTimecode consists of an FFrameNumber delta that correlates the section's initial start time to an FTimecode. The FFrameNumber is adjusted whenever the section is moved. One use case for this is through sequence recorder, which captures the timecode at the start of recording and saves an FSourceTimecode per movie scene section it creates. If the section is moved, it can always be returned to its source timecode by the section's right click menu, "Sync to Source Timecode". #jira UESEQ-406 Change 4038462 by Jamie.Dale Added support for using Python callables with delegates All the "x_function" methods on delegates and multicast delegates now have an "x_callable" equivalent that take a Python callable (we attempt basic validation of the signature, but that only allows us to check the input argument count is what we expect). Internally the callable is wrapped in a UObject, so certain GC restrictions are present (and is why coercion is disabled for callables). Delegates wrapped in Python (including as a direct property of an object or struct, or inside a container) will be kept alive via the Python reference collection, however once there are no Python references left the proxy object will be allowed to die unless something external has taken a reference to the proxy object. Change 4039123 by James.McNatton Remove dependency on SteamController in VirtualCamera #rb none Change 4039162 by Jamie.Dale Fixed linter warnings about unescaped backslashes in docstrings Change 4039170 by Jamie.Dale No longer expose deprecated functions or properties if they clash with another Python exposed item Change 4039429 by Max.Chen Sequence Recorder: Swap to editor actors on end PIE if the actors to record were set to the PIE actors Change 4039442 by Max.Chen Sequence Recorder: Find the existing object binding and record into it if it exists. When recording to an existing object binding, if the track exists, remove all animation data and reuse the track. Change 4039477 by Jamie.Dale Added warnings for conflicting Python type and field names Change 4039478 by Jamie.Dale Fixed warnings for conflicting Python type and field names Change 4039511 by Max.Chen Sequencer: Remove all animation data for spawn track Change 4040649 by James.McNatton Multiple Virtual Camera bug fixes - Removed QAGame mannequin from test map - Fixed errors being generated when trying to load preset - Presets now properly load and save axis settings - Deleted presets should no longer linger in menus - Presets now save and load favorite status Change 4041356 by Max.Chen Sequence Recorder: Takes system #jira UESP-544 Change 4041589 by Jamie.Dale Added C++ source information (plugin, module, and file) to the Python doc string Change 4041746 by Jamie.Dale Made ScriptOperator more relaxed about its signature validation as long as the additional input parameters are defaulted Change 4041757 by James.McNatton Virtual Camera Bug Fixes - The Input Source dropdown now accurately reflects user selection - Input source changed to EditDefaultsOnly - Focus should no longer be set when the settings menu is open Change 4041823 by Jamie.Dale Made ScriptOperator more relaxed about its signature validation for defaulted input parameters Existing Blueprint exposed operator functions may both default required arguments, and add additional default arguments. ScriptOperator will now accept both of these as long as there are enough arguments, but not too many non-defaulted arguments. Change 4042956 by James.McNatton VirtualCamera bug fixes related to focus plane visualization - Removed extra focus plane that was being displayed - Added logic to adjust for nonuniform scaling of objects when settings up tracking focus Change 4043400 by James.McNatton Multiple bug fixes related to saving various values - Now saves matte opacity and updates on load - Now saves filmback format name and updates on load - Now saves desired distance units and updates on load Change 4043481 by James.McNatton Fixed issue in Virtual Camera where joystick movement would not properly apply locks after rotating #rb none Change 4044358 by Jamie.Dale Fixed some cases where empty default values would be lost from UHT Eg, empty strings, null objects Change 4044362 by Jamie.Dale Fixed old-style enums being missed by the Python glue generation if they're only referenced by a property of function Change 4044371 by Jamie.Dale Fixed default value application for some struct types that use a custom default value format when exported by UHT Change 4044417 by Max.Chen Sequence Recorder: Better default group names with an underscore separator for letters Change 4045164 by Jamie.Dale Hardened usage of CopyScriptStruct to ensure that the source type is a child of the destination type, and that the destination type is used to copy (to still allow slicing of derived data) Change 4045195 by Jamie.Dale Updated FPropValueOnScope::GetValue to be able to return the value for a particular array index Change 4045589 by James.McNatton Fixed packaging error for VirtualCamera plugin - Plugin is now a runtime plugin rather than developer - Fixed up associated warnings with saving and loading in editor Change 4046208 by James.McNatton Virtual Camera bug fixes - Adjusted how mattes and filmback works together - Should now always respond properly to changing filmback settings in UI - Should now match the correct view size within the matte under all circumstances Change 4046372 by Max.Chen Sequencer: Fix subsequence binding ids. #jira UE-55337 Change 4046694 by Max.Chen Sequence Recorder: Compile the template before finding the camera sequence id since the precompiled template is not up to date. Change 4046801 by Jamie.Dale Improved default values and return types used in the unreal.py stub file - Object and Struct types generate an __init__ function with the correct signature. - Struct __init__ functions list the correct default values (including when using make/break functions). - Methods now list the correct default values. - Get/Set getters return a value of the correct type. - Get/Set setters are no longer exported for read-only properties. - Constants resolve to the correct type and value. #jira UETOOL-1377 Change 4047023 by Jamie.Dale Added missing hook-up for % and %= in Python Change 4047100 by Jamie.Dale Operators are now exposed to unreal.py and generate docs stating which overloads are available Change 4047105 by Jamie.Dale String is now "str" in doc strings to match the Python type Change 4047714 by Max.Chen Sequencer: Resolved merge conflicts with Dev-Sequencer Change 4048150 by Jamie.Dale Fixed single-culture PO import/export failing #jira UE-47079 Change 4048653 by Andrew.Rodham Sequencer: Automatic re-evaluation is now suppressed for external changes that modified only default values on channels - The issue is that moving an object that is partially-keyed in sequencer, with auto-key off, will set default values for the non-keyed channels. Doing so will dirty the sequence, which causes a re-evaluation, which re-evalutes the keyed channels, which effectively undoes the external change. - This is now fixed by suppressing the automatic re-evaluation for a specific signature of a specific sequence, if that is the only thing that has dirtied the sequence. Any subsequent changes to the sequence will cause a re-evaluation, and the suppression to be wiped. #jira UE-57519 #jira UE-58487 Change 4048814 by Jamie.Dale Fixed syntax error if an enum had an unknown value Change 4048819 by Jamie.Dale Fixed struct init functions having the wrong default values Change 4048856 by JeanLuc.Corenthin - Removed LOD & collision functions from UEditorLevelLibrary - Created a new class, UEditorMeshLibrary, to hold onto functionalities related to StaticMeshes - Added method to set LODs on a static mesh - Added method to remove LODs from a static mesh - Added method to get number of LODs on a static mesh - Added method to get number of simple collisions onto a static mesh - Added method to get number of convex collisions onto a static mesh - Added method to add convex collision onto a static mesh - Added method to remove all collisions onto a static mesh #jira UEENT-1232 #jira UEENT-1233 Change 4048961 by Jamie.Dale Improved formatting of output parameters in doc strings #jira UETOOL-1376 Change 4048988 by Jamie.Dale Fixed context leakage between the console and files, and import "unreal" by default now in the console #jira UETOOL-1379 Change 4049912 by Max.Chen Sequence Recorder: Minor recording group name improvements. - Initialize newly created actor group with existing actor group's base path. - When duplicating, use the current group's name as the base. - When typing in a name, if it fits the group format, the name should be allowable if it doesn't conflict with existing group names/assets. Change 4049934 by Andrew.Rodham Sequencer: Minor clean-up of sequencer interfaces and overloads - Replaced remaining instances of void* with FMovieSceneChannel* now that we mandate a common base class - Changed remaining explicit calls to SetDefault to SetChannelDefault overload so it works correctly with the SupportsDefaults trait - Exposed ability to manually implement an ISequencerChannelInterface rather than using the default templated one Change 4050608 by conan.reis Was getting link error about use of FFrameTime in ULevelSequencePlaybackController::PlayFromBeginning() in the VirtualCamera plugin so added TimeManagement to its dependant modules so it compiles again. Change 4050899 by Max.Chen Sequencer: Allow actor components for synchronization #jira UE-58468 Change 4050900 by Max.Chen Sequence Recorder: Don't create a spawn section if the object is a possessable #jira UE-58272 Change 4050904 by Max.Chen Curve Editor: Fix for evaluation a section of time when one key is non-weighted and the other is weighted. What we do is evaluate them both as being weighted, but we don't have the weight value for the non-weighted tangent. The weight of the non-weighted tangent is implicilty 1/3rd the distance between the two points, so we just calculate that if needed. #jira UE-58573 Change 4050905 by Max.Chen Curve Editor: When calculating vertical extents find feature points where slopes are zero and check them in addition to the keys if the curve is cubic. Curves now fit correclty vertically. Also changed fudge to 5% from 10% to match up old editor. Tighter fits seems better. #jira UE-58571 Change 4050972 by James.McNatton Added functions to ISequenceRecorder - Calling StartRecording with an empty array now triggers recording without clearning queued recordings - Added function to queue an actor to be recorded - Added function to check the next take number for a given actor when using groups Change 4050994 by James.McNatton Bug fixes for Virtual Camera - Preset menu now shows dates in the timestamp - Resetting offsets now alerts the system to update UI Change 4051431 by David.Hibbitts Added a component and blueprint library to access LiveLink data in blueprints which also works in editor. Deprecated LiveLink Driven component #jira UESP-577 Change 4051475 by Patrick.Boutot Rename EditorMeshLibrary Merge AssetScriptingUtilititesEditor with EditorScriptingUtilities. Add Redirects. Change 4051558 by Patrick.Boutot EngineCustomTimeStep returns true when we also want to perform the default engine code. Change 4052106 by Andrew.Rodham Sequencer: Adding an example that creates a sequence out of the current editor selection Change 4052205 by Anousack.Kitisa Fixed selected asset paths referenced by selected actors when using context Shotgun menu. Added function to retrieve the work area directory for Shotgun. #jira UEENT-1220 Change 4052951 by James.McNatton Virtual Camera Sequence Recorder updates to integrate new take system - Takes no longer display unless sequence recorder has a group selected - Adjusted fix to packaging error - FPS value will no longer appear if sequence recorder isn't available Change 4053130 by mason.seay Updated Game Mode Override Change 4053273 by James.McNatton Virtual Camera cleanup adjustments Change 4053627 by Max.Chen Sequencer: Disable bind sequencer to PIE/simulate while recording. Change 4053628 by Max.Chen Sequence Recorder: Fix target animation not persisting #jira UE-58508 Change 4053871 by Max.Chen Image Plate: Fix icon path Change 4054370 by Patrick.Boutot Remove LiveLink warning. Create base a class for FLiveLinkFrameRate as suggested in GenericPlatformCompilerPreSetup.h Change 4054447 by Darren.Pegg AJA low level device API Blackmagic low level API MediaIOCore changes to support AJA/Blackmagic changes AJA Module converted to use MediaIOCore Blackmagic Module changes for MediaIOCore Blackmagic/AJA Binary files Change 4054769 by Patrick.Boutot Packaging error issue introduce with CL 4054370. #jira UE-58749 Change 4055443 by Max.Chen Sequencer: Fix crash in adding filler shot #jira UE-58767 Change 4056577 by JeanMichel.Dignard Fixed crash with automation tests. We would bind the default UEditorEngine to Automation and on map load, it would call PIE on GEditor but with recent changes, PIE is called on this and the default UEditorEngine is not initialized so it would crash with a null GameViewportClass. Now we'll bind Automation on UEditorEngine InitializeObjectReferences so that we're in a good state and it's only called for GEditor. #jira UE-58792 Change 4057238 by Jamie.Dale Fixed crash when renaming Python generated classes or structs Change 4058435 by Jamie.Dale Fixed lingering exception state when converting a dict to a struct Change 4058486 by mason.seay Removed remote.host call from map [CL 4060164 by JeanMichel Dignard in Main branch]
2018-05-09 10:24:50 -04:00
return EditorViewportSnapper.IsValid() ? EditorViewportSnapper->SnapToBSPVertex(Location, GridBase, Rotation) : false;
}
void FSnappingUtils::ClearSnappingHelpers(bool bClearImmediately)
{
IViewportSnappingModule::GetSnapManager()->ClearSnappingHelpers(bClearImmediately);
}
void FSnappingUtils::DrawSnappingHelpers(const FSceneView* View, FPrimitiveDrawInterface* PDI)
{
IViewportSnappingModule::GetSnapManager()->DrawSnappingHelpers(View, PDI);
}
void FSnappingUtils::InitEditorSnappingTools()
{
EditorViewportSnapper = MakeShareable(new FEditorViewportSnapping);
IViewportSnappingModule& Module = FModuleManager::LoadModuleChecked<IViewportSnappingModule>("ViewportSnapping");
Module.RegisterSnappingPolicy(EditorViewportSnapper);
}