You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Copying //UE4/Dev-Enterprise to //UE4/Dev-Main (Source: //UE4/Dev-Enterprise @ 4071915)
#lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 4060527 by Anousack.Kitisa Added support for importing FBX user properties as metadata on StaticMesh when importing FBX. Added support for exporting StaticMesh metadata as FBX user properties when exporting StaticMesh to FBX. #jira UESP-567 Change 4060835 by Jamie.Dale Added assign method to Python exposed structs This lets you assign the value of one struct instance onto another instance (rather than copy the pointer in Python). It also accepts anything that casts to the destination struct. Change 4060838 by Jamie.Dale Include unary operator function tooltips in doc string Change 4060843 by Jamie.Dale Fixed PythonizeValue including deprecated properties in the init function for a struct Change 4060908 by Jamie.Dale Fixed some name conflicts in generated Python glue Change 4061065 by Jamie.Dale Stubbed struct return values are now default constructed Change 4061205 by David.Hibbitts Added blueprint functions to create a message bus source, for use in projects where the Editor UI is not available or is impractical. Added a blueprint function to get available subject names for the LiveLink Client Added a RemoveSource method to ILiveLinkClient Added a GetSubjectNames method to ILiveLinkClient Fixed a crash when RequestShutdown was called on a MessageBusSource after the HeartbeatManager had already been shut down. Change 4061421 by Patrick.Boutot [AJA] Warn the user if he requested the key and the backbuffer is not setup properly. #jira UE-58614 Change 4061620 by Jamie.Dale Made the Sphinx config a template so we can inject the current engine version into it Change 4062578 by Jamie.Dale Optimized Python stub and doc gen file writes - Files are now only written when they've changed. - We now only remove files that are stale. - No requests to generate stub and doc files are queued before the first Tick. Change 4062634 by Jamie.Dale No longer export FDateTime defaults to struct __init__ as they can be non-deterministic Change 4064275 by Jamie.Dale Added callbacks for when Python is initialized and shutdown so that external modules can hook-in appropriately Change 4064613 by James.McNatton Change to initialization for FVirtualCameraWaypoint and FVirtualCameraSettingsPreset to remove non-deterministic constructors and a few resulting cleanup items Change 4064878 by Patrick.Boutot Add timecode provider plugin to capture from the Audio jack. Change 4064910 by Patrick.Boutot [AJA] Add AjaTimecodeProvider that provider the timecode from a SDI input source. Change 4067451 by Jamie.Dale Added command line options to enable all plugins, optionally excluding certain plugins Change 4067489 by Simon.Tourangeau Support for DX12 quad buffer stereo rendering Change 4068640 by Patrick.Boutot Add a state to CustomTimeStep. Show the state of the CustomTimeStep in "stat fps". Change 4069147 by Patrick.Boutot Move Mediasmith console to Engine. Renamed to TimecodeSynchronizer. Change 4071727 by Matt.Hoffman Initial pass at exposing Sequencer's Render to Movie functionality to Python. All settings that can be adjusted via the UI can be set from Python and renders can be invoked for both in-editor capture as well as new process capture. A basic API is provided which enables querying if a render in progress and canceling an in progress one. #jira UESP-541 [CL 4071957 by JeanMichel Dignard in Main branch]
This commit is contained in:
@@ -60,7 +60,7 @@
|
||||
<File Name="Engine/Binaries/Mac/UnrealSync.app/Contents/MacOS/UnrealSync" Hash="6bbb80f881edfedf850b4ad5d34100076b3e5c6f" IsExecutable="true" />
|
||||
<File Name="Engine/Binaries/Mac/UnrealSync.app/Contents/MacOS/UnrealSync.dsym" Hash="f150e7355efb6f72df571b59d465d1ec98c745b4" />
|
||||
<File Name="Engine/Binaries/Mac/UnrealSync.app/Contents/PkgInfo" Hash="9f9eea0cfe2d65f2c3d6b092e375b40782d08f31" IsExecutable="true" />
|
||||
<File Name="Engine/Binaries/ThirdParty/AJA/Win64/AJA.dll" Hash="df6827b14a3654d380e4d6be2540829a404197af" />
|
||||
<File Name="Engine/Binaries/ThirdParty/AJA/Win64/AJA.dll" Hash="e70230d27989e42b09c8d02305cd8d8623b8b47a" />
|
||||
<File Name="Engine/Binaries/ThirdParty/ANGLE/libEGL.dll" Hash="a9d19b9df61ba0fc6d7f985c96cc1eed8958d94b" />
|
||||
<File Name="Engine/Binaries/ThirdParty/ANGLE/libGLESv2.dll" Hash="663c0c47a7fa2d73f4bc17b443a31859679b636a" />
|
||||
<File Name="Engine/Binaries/ThirdParty/AppLocalDependencies/Win32/DirectX/X3DAudio1_7.dll" Hash="ec48da45888ccea388da1425d5322f5ee9285282" />
|
||||
@@ -26610,7 +26610,7 @@
|
||||
<File Name="Engine/Plugins/Experimental/VirtualCamera/Content/VirtualCameraGameMode.uasset" Hash="c6b7c47f6cfcef405c937477adf64274c0298098" />
|
||||
<File Name="Engine/Plugins/Experimental/VirtualCamera/Content/VirtualCameraPawn.uasset" Hash="c0da7675f5b2ac9433e5f8f3fb1e2c06263fe1b8" />
|
||||
<File Name="Engine/Plugins/Experimental/VirtualCamera/Content/VirtualCameraPlayerController.uasset" Hash="005c8b0e6533723ea5cb569ef99d9184e0b1c3b3" />
|
||||
<File Name="Engine/Plugins/Experimental/VirtualCamera/Content/VirtualCameraUI.uasset" Hash="1825debee7bd32be67c9986ddc483e54e14bd987" />
|
||||
<File Name="Engine/Plugins/Experimental/VirtualCamera/Content/VirtualCameraUI.uasset" Hash="fe9f897083368e3ec2db695ff590ee71a60c8358" />
|
||||
<File Name="Engine/Plugins/Experimental/VirtualCamera/Content/Widgets/BottomFrame/BottomFrame.uasset" Hash="cdcb3d0aa28faa4b69934bf327f5a6102365eaef" />
|
||||
<File Name="Engine/Plugins/Experimental/VirtualCamera/Content/Widgets/BottomFrame/BottomFrameWidget.uasset" Hash="6c664dae93225f1782c0299c9a08292dacb57382" />
|
||||
<File Name="Engine/Plugins/Experimental/VirtualCamera/Content/Widgets/BottomFrame/DockingBar.uasset" Hash="871fc17488f65a2098256a026e34d5472a7f93a0" />
|
||||
@@ -26857,6 +26857,12 @@
|
||||
<File Name="Engine/Plugins/Media/MediaPlayerEditor/Content/tab_playlist_16x.png" Hash="ebbef43c56317732d9244597e62c5b8d89d5ce34" />
|
||||
<File Name="Engine/Plugins/Media/MediaPlayerEditor/Content/tab_stats_16x.png" Hash="99ab5f3000f5785b18a3ee4b213672364f78d839" />
|
||||
<File Name="Engine/Plugins/Media/MfMedia/Resources/Icon128.png" Hash="40b43cd796a144fb805d7a176b52beb74992c2a4" />
|
||||
<File Name="Engine/Plugins/Media/TimecodeSynchronizer/Content/Editor/Icons/Icon_Play_40x.png" Hash="69e5d252ea036fc19aa4b294124b93607561f277" />
|
||||
<File Name="Engine/Plugins/Media/TimecodeSynchronizer/Content/Editor/Icons/Icon_TimecodeSynchronizer_20x.png" Hash="5636ecb11b7b39edf8b1ced0eed0771bc008f9a8" />
|
||||
<File Name="Engine/Plugins/Media/TimecodeSynchronizer/Content/Editor/Icons/Icon_TimecodeSynchronizer_40x.png" Hash="693f06462d87c286469e7482e3888a14eed46bde" />
|
||||
<File Name="Engine/Plugins/Media/TimecodeSynchronizer/Content/Editor/Icons/TimecodeSynchronizer_20x.png" Hash="6701004577e0327f6166c6db4bcb38ce699e3bd7" />
|
||||
<File Name="Engine/Plugins/Media/TimecodeSynchronizer/Content/Editor/Icons/TimecodeSynchronizer_64x.png" Hash="979d74ef3b61f45c60eea1436ec5baddfd60ca66" />
|
||||
<File Name="Engine/Plugins/Media/TimecodeSynchronizer/Resources/Icon128.png" Hash="5c45ba549fb85ee5a1051a072931af1b0cdb9fee" />
|
||||
<File Name="Engine/Plugins/Media/WmfMedia/Resources/Icon128.png" Hash="40b43cd796a144fb805d7a176b52beb74992c2a4" />
|
||||
<File Name="Engine/Plugins/Messaging/MessagingDebugger/Content/BreakpointBorder.png" Hash="53181029fbea06aed2e663392654737696f5b4cb" />
|
||||
<File Name="Engine/Plugins/Messaging/MessagingDebugger/Content/GroupBorder.png" Hash="8cee767e4e593036a33348b2766013b7cad750c8" />
|
||||
@@ -26917,7 +26923,7 @@
|
||||
<File Name="Engine/Plugins/MovieScene/LevelSequenceEditor/Content/ViewportLayout_OnePaneCinematic.png" Hash="b0df7ad51ddf5dd50cc9c3e9f78419f64541fbb4" />
|
||||
<File Name="Engine/Plugins/MovieScene/LevelSequenceEditor/Content/ViewportLayout_TwoPaneCinematic.png" Hash="a34e3c31d0604973889d8e32ae751721818f2d58" />
|
||||
<File Name="Engine/Plugins/MovieScene/LevelSequenceEditor/Resources/Icon128.png" Hash="a60993660da7ee9eec9640e5b362a4969aaff2ee" />
|
||||
<File Name="Engine/Plugins/MovieScene/SequencerScripting/Content/Python/sequencer.py" Hash="445cd494abcd88a88942792e1a9fb52f0dd02339" />
|
||||
<File Name="Engine/Plugins/MovieScene/SequencerScripting/Content/Python/sequencer_examples.py" Hash="4a1e179d5a57978682e82716cb5dc24719a4a02b" />
|
||||
<File Name="Engine/Plugins/MovieScene/SequencerScripting/Resources/Icon128.png" Hash="999db2543e227fcfa6ece50ec9b4a96f54476b95" />
|
||||
<File Name="Engine/Plugins/NetcodeUnitTest/NetcodeUnitTest.docx" Hash="c097f0004df42864d0eb21cb481fdd1155af8f40" />
|
||||
<File Name="Engine/Plugins/NetcodeUnitTest/test.dat" Hash="0513ceb3c94f666ff21f6edbc66857a876075cc8" />
|
||||
@@ -27995,7 +28001,7 @@
|
||||
<File Name="Engine/Source/Runtime/Navmesh/RecastDemo/Bin/SDL.dll" Hash="2f49dc36198c2db24293ec5b677340a159962438" />
|
||||
<File Name="Engine/Source/Runtime/Navmesh/RecastDemo/Bin/test.chf" Hash="ddcb6768ae00c12ce9d9420cc9c24295a94fbf47" />
|
||||
<File Name="Engine/Source/Runtime/Navmesh/RecastDemo/Source.zip" Hash="8dc18f56bbec960f68469c18597fbb9aaaf05881" />
|
||||
<File Name="Engine/Source/ThirdParty/AJA/Build/lib/Win64/AJA.lib" Hash="d0536c567dd090d7eb673c47e962e05fdd2cf71e" />
|
||||
<File Name="Engine/Source/ThirdParty/AJA/Build/lib/Win64/AJA.lib" Hash="14403a5a38a97856de7663dd8f4074e095517c76" />
|
||||
<File Name="Engine/Source/ThirdParty/AMD/AMD_AGS/doc/amd_ags.chm" Hash="e3b6c70425738a8eaadd68dfecc18f242fb230a5" />
|
||||
<File Name="Engine/Source/ThirdParty/AMD/AMD_AGS/lib/VS2015/amd_ags_x64_2015_MD.lib" Hash="a6f75b70684355689917c6a7264a83d0ec1f0bfa" />
|
||||
<File Name="Engine/Source/ThirdParty/AMD/AMD_AGS/lib/VS2015/amd_ags_x86_2015_MD.lib" Hash="78185e61d4cfc45f2ed939230217e32aef9bf65e" />
|
||||
@@ -40355,6 +40361,7 @@
|
||||
<Blob Hash="1438da73e515abd424907a5288a67817e1951897" Size="20891" PackHash="9ecde5d682a1fb9ca9bd5c995228d226cdb13860" PackOffset="2005890" />
|
||||
<Blob Hash="143984ff5bd93a743180ea03f552f2af720d7ad6" Size="28160" PackHash="e70061ffc85b6027a648cac0b1c8c6ef7d4e3106" PackOffset="1940498" />
|
||||
<Blob Hash="1439a29df5c5c1612a365521f7e6d1e5a8279869" Size="58" PackHash="0aea457d3fb14174a1cd037c649288b253c1cbe7" PackOffset="2097057" />
|
||||
<Blob Hash="14403a5a38a97856de7663dd8f4074e095517c76" Size="31334" PackHash="fa48ff18c8bfe5de58cfd0b9f5fc9ff52ec1b1da" PackOffset="56512" />
|
||||
<Blob Hash="144254613d42663b547226b48d2941421a242aad" Size="123" PackHash="1a3a21e3a685f120e196700aaf9d7755a5ff8dee" PackOffset="1178949" />
|
||||
<Blob Hash="1445f0550c201a00fb1a350317fa07119a104e1a" Size="25600" PackHash="2fb0ce94e7960b83e88bc4d2687ba07c94e9d96f" PackOffset="1952264" />
|
||||
<Blob Hash="1446798289ef4371443fec4604a1a7d7bb5487fd" Size="894" PackHash="10917aeabcd8089492835f6fdf0cc16d5545cb80" PackOffset="2093634" />
|
||||
@@ -40755,7 +40762,6 @@
|
||||
<Blob Hash="182164292e382455f00349625dd5fd1e41dcc0c8" Size="196096" PackHash="4cd4bfc27173885f1aee3affc692eed9b041d197" PackOffset="522033" />
|
||||
<Blob Hash="1821e8f7c97653ec7cb8f23daab42f5212a511f8" Size="4462" PackHash="59c4bec5e2957d30ef37c5198c4b90381f3ba20f" PackOffset="935184" />
|
||||
<Blob Hash="1824a019e426fd29c846b8e5d95e80163807a714" Size="3382" PackHash="c96e9cd94a86b222bed132142b65c1d90314445d" PackOffset="1059636" />
|
||||
<Blob Hash="1825debee7bd32be67c9986ddc483e54e14bd987" Size="2166935" PackHash="b53b024f09d16f566786b61cb2d738b8e3176cf1" PackOffset="8" />
|
||||
<Blob Hash="1826d27a7f6d21e4c46e5509ce7b7fa8d6e6b340" Size="26872" PackHash="15c1c1820f17cbc99a977498d87549e3b4060f7c" PackOffset="974692" />
|
||||
<Blob Hash="182d152703bd7c0dfe56f5b5fce52cf3b29fd14c" Size="2849280" PackHash="fedc0f0de48ecba38365fdabad35ec1857db98d6" PackOffset="8" />
|
||||
<Blob Hash="182df2bdb55238480ab25873cc24bf0fe404a238" Size="6767016" PackHash="08c883562a37ec19f6d36e957d61acab6efb392e" PackOffset="8" />
|
||||
@@ -45425,7 +45431,6 @@
|
||||
<Blob Hash="4453b88e26923d7bc06b2c61a4beebd7b5ae6a0d" Size="2224" PackHash="0d57e8104575102e83043b6a71861eb6fbaba0d2" PackOffset="2077148" />
|
||||
<Blob Hash="4455dfff7734b0cbc576c58af10c6c4da0179cb0" Size="4761" PackHash="43de67a97c49441e26fb689fad4850f919826430" PackOffset="1229451" />
|
||||
<Blob Hash="445a54c2604e78cbab5d490172c8b71ba52ce4ad" Size="61634" PackHash="12582f0c651cdaf8a3d2ed39d6d5c41ff2045005" PackOffset="2023544" />
|
||||
<Blob Hash="445cd494abcd88a88942792e1a9fb52f0dd02339" Size="4300" PackHash="897370b8aae1f0bd072aaa9f84aa5edcf4810baf" PackOffset="2074307" />
|
||||
<Blob Hash="445dc8f3f1c18e3da2921d800dac1cd619340943" Size="6769020" PackHash="83c26e75614987b0816315db03de7aca670aae61" PackOffset="8" />
|
||||
<Blob Hash="445dcdb5affed7b1dc60a698ff22119a0a72317e" Size="215" PackHash="b0e7677a897dcc7da7de82ccb301777868eddf84" PackOffset="835797" />
|
||||
<Blob Hash="4460122a3d0f60732da56a7b16c2f7ee0f581d16" Size="188" PackHash="b0e7677a897dcc7da7de82ccb301777868eddf84" PackOffset="2096580" />
|
||||
@@ -46000,6 +46005,7 @@
|
||||
<Blob Hash="4a17269166a38d38f98268dd019110a3fb8f7563" Size="3218" PackHash="59c4bec5e2957d30ef37c5198c4b90381f3ba20f" PackOffset="319594" />
|
||||
<Blob Hash="4a1d34db16b8b5004f580ad9b6e8b0de63392c9f" Size="45826" PackHash="5435cf07dad1155ea3ddbd5178f3dd6013a507d8" PackOffset="112845" />
|
||||
<Blob Hash="4a1d3a27f345626205ccf57a21bceae25e2a3aa3" Size="5068392" PackHash="c8b6c81a1f82320e02a43232edf87be07a77f89d" PackOffset="8" />
|
||||
<Blob Hash="4a1e179d5a57978682e82716cb5dc24719a4a02b" Size="17441" PackHash="fa48ff18c8bfe5de58cfd0b9f5fc9ff52ec1b1da" PackOffset="39071" />
|
||||
<Blob Hash="4a237e0a574ae61c377e5f0f748534a14f00fab4" Size="10240" PackHash="504c0a6da5f49d4bcd18f11ee59db45e32d6c143" PackOffset="2011181" />
|
||||
<Blob Hash="4a249869473e7469d3c19b524f434884ef2f9e4d" Size="2223" PackHash="bbd0d366aa5edcf7c89a18c6bcc1c936170ac171" PackOffset="868873" />
|
||||
<Blob Hash="4a27014a5c17656eb12d05754da71a86ab7325d1" Size="2904" PackHash="e2fa2ac520eb51bd27214ee5bf3c3511f0803850" PackOffset="1201924" />
|
||||
@@ -47238,6 +47244,7 @@
|
||||
<Blob Hash="563369ea690300bda22f3e8478acd91b58f537c7" Size="9752576" PackHash="332e4dbcbffeb057e013476dabfd6264e16bbd85" PackOffset="8" />
|
||||
<Blob Hash="563630f470e7c1c86be85a71783b6f187a52feb7" Size="1742" PackHash="b8b36b31df40a1fc9087e4b313999fcda60845cc" PackOffset="1976248" />
|
||||
<Blob Hash="563662c090e0e45ff95800913c21835b6db5c623" Size="857" PackHash="d67cb445f37637410f670b1d8682dcf22ced07ae" PackOffset="444659" />
|
||||
<Blob Hash="5636ecb11b7b39edf8b1ced0eed0771bc008f9a8" Size="3773" PackHash="fa48ff18c8bfe5de58cfd0b9f5fc9ff52ec1b1da" PackOffset="8" />
|
||||
<Blob Hash="56375ffabf743481e84834f970f9b5b508da7f95" Size="2396" PackHash="2f143d8520d94bbf2cb250b35a8f79e3d3e8572c" PackOffset="1000180" />
|
||||
<Blob Hash="563e52908205186ceb1d12c802ee75169b021bb0" Size="11703" PackHash="36dc5f21c7755cd7fcc2f06d9f9b27d1325e43e2" PackOffset="541544" />
|
||||
<Blob Hash="563eaf26076d8c014cd747f6af90b80cfdc3608d" Size="1860168" PackHash="c38a58ebaed4f4113a72a83d4c9eed961e2b9d98" PackOffset="8" />
|
||||
@@ -47923,6 +47930,7 @@
|
||||
<Blob Hash="5c3eda4b325a5d5e224387fc4d65862a13b81bcf" Size="212" PackHash="9d232548aa4e0302e308e8904fce4c2c9a811af2" PackOffset="187747" />
|
||||
<Blob Hash="5c3f945cc49b957c47efa3c0ab919df11da0bb04" Size="156" PackHash="16e421c9204b08586edd8de93b93b19fb10644ea" PackOffset="1672332" />
|
||||
<Blob Hash="5c42eea7e3b5b62501fad54807043a3836be9387" Size="344" PackHash="61414cf7f1e5c788cc1612ab498ef841efa0481a" PackOffset="1618164" />
|
||||
<Blob Hash="5c45ba549fb85ee5a1051a072931af1b0cdb9fee" Size="17439" PackHash="fa48ff18c8bfe5de58cfd0b9f5fc9ff52ec1b1da" PackOffset="21632" />
|
||||
<Blob Hash="5c4a470f2b3a78a48cc3c2db127a54ef4d4162f0" Size="3500" PackHash="8962c9283d246aa6183316165b2eabb0cb7e0781" PackOffset="10578" />
|
||||
<Blob Hash="5c4e10f956fb547d2ff61cd9476f931d62533762" Size="2556" PackHash="ea83e8125c0978669c9398911e0f6c2fd3f945d8" PackOffset="957822" />
|
||||
<Blob Hash="5c4ea771a3f1da7cefdc5e3cb68ccd424a2c5d3b" Size="390" PackHash="9d232548aa4e0302e308e8904fce4c2c9a811af2" PackOffset="223578" />
|
||||
@@ -49054,6 +49062,7 @@
|
||||
<Blob Hash="66fc3ea3189a916f03f89dc040365409a2c9833b" Size="4667" PackHash="12d213957fbfe643a97d5072b1f6ae30aeebcbb7" PackOffset="509931" />
|
||||
<Blob Hash="66fe499a8f43d09f30925df4c594a1a2f656f01d" Size="3957" PackHash="59c4bec5e2957d30ef37c5198c4b90381f3ba20f" PackOffset="1188705" />
|
||||
<Blob Hash="66fee4ec3c99300722a787f437c00ea2be3b95cc" Size="736" PackHash="9d232548aa4e0302e308e8904fce4c2c9a811af2" PackOffset="218606" />
|
||||
<Blob Hash="6701004577e0327f6166c6db4bcb38ce699e3bd7" Size="3758" PackHash="fa48ff18c8bfe5de58cfd0b9f5fc9ff52ec1b1da" PackOffset="9900" />
|
||||
<Blob Hash="6702e2169f7ad25cfdcf2d5ff3e00e847efc3168" Size="4584206" PackHash="eaea434c65e3ccf8cec643ea1ec391bdddbc6fac" PackOffset="8" />
|
||||
<Blob Hash="6704b0fee79fa4795dc04e0111fac4fc46f611f0" Size="2306" PackHash="7f00c380f25858c6ca3b906b06dc3b7812b02016" PackOffset="2091446" />
|
||||
<Blob Hash="6706eb13de25d00872c92effdd6c76528096ec9b" Size="346916" PackHash="705810a107813f391dbcf74972f321782aedc6b8" PackOffset="8" />
|
||||
@@ -49311,6 +49320,7 @@
|
||||
<Blob Hash="693650b4ed358f9b38532ae4ce1ae1a55e7d7aa7" Size="5094" PackHash="4905bf362dac5be04631d1ce552b8184a6f9eb7f" PackOffset="1565470" />
|
||||
<Blob Hash="6939cca0ef7770988797e18034b2c02bc979d1b9" Size="676" PackHash="aca495e4ccbf3620acba4cb167d20a643cc5c6db" PackOffset="2096462" />
|
||||
<Blob Hash="693a91411212ae47a2b96eaf407183bb44bccc44" Size="1200" PackHash="991dd7e85549ea1d68d7c6e18a206ffed99537d3" PackOffset="1043255" />
|
||||
<Blob Hash="693f06462d87c286469e7482e3888a14eed46bde" Size="6119" PackHash="fa48ff18c8bfe5de58cfd0b9f5fc9ff52ec1b1da" PackOffset="3781" />
|
||||
<Blob Hash="693fbc63173ef97c841e91796ec4f2d56ea52f3b" Size="61440" PackHash="e70061ffc85b6027a648cac0b1c8c6ef7d4e3106" PackOffset="1691477" />
|
||||
<Blob Hash="6940737107700f1ca207e82bf1a4a120a92e682f" Size="1420570" PackHash="858de213a099ae751d4748be354bdddec041c44b" PackOffset="8" />
|
||||
<Blob Hash="6941c5917e4ac097fd374708d0cfb8f41b7c835f" Size="1052" PackHash="e1c15e4bd99ba88718cb8c80fa13bc01920a443d" PackOffset="2071368" />
|
||||
@@ -54224,6 +54234,7 @@
|
||||
<Blob Hash="9799c6e63b1166853178b2d495dee4aa5e8f217b" Size="3127" PackHash="4f9629d19fa7928aaae10e4bb7c79195fb4f2436" PackOffset="1008820" />
|
||||
<Blob Hash="979aec590ceb996d176c4a77f702755bab1fedfe" Size="6830" PackHash="9ecde5d682a1fb9ca9bd5c995228d226cdb13860" PackOffset="2066763" />
|
||||
<Blob Hash="979b4653f7a892cb27a587729fa16fc9e8f92a2d" Size="41984" PackHash="7e504e731d99b59de57d71becdb34fce6d198dec" PackOffset="1067034" />
|
||||
<Blob Hash="979d74ef3b61f45c60eea1436ec5baddfd60ca66" Size="7974" PackHash="fa48ff18c8bfe5de58cfd0b9f5fc9ff52ec1b1da" PackOffset="13658" />
|
||||
<Blob Hash="979dddf323c7885721dcacb2427e7471d68c2af7" Size="428704" PackHash="cfaa6e2212f937f340e867175482030d495675ed" PackOffset="1048487" />
|
||||
<Blob Hash="97a0ccc9424dd3260cf352634c614e548a29c76a" Size="10920" PackHash="529198f2ee46d987aeed3fff1a66a0ba7ab79765" PackOffset="1942884" />
|
||||
<Blob Hash="97aa79e6384421616a59b0c4d9152a83c76ce931" Size="14005" PackHash="0e0fc56444fa93555de76ff8aaa98b0bd94a186d" PackOffset="1607690" />
|
||||
@@ -60127,7 +60138,6 @@
|
||||
<Blob Hash="d04b8c47374482080b6565b23c2f69841141f3fe" Size="6795" PackHash="435b84318b43c1178e4eb52628fb46a39961b284" PackOffset="1846999" />
|
||||
<Blob Hash="d04cfedbf8b8a820bd75931948f2af1b22443ad2" Size="48" PackHash="61414cf7f1e5c788cc1612ab498ef841efa0481a" PackOffset="1550433" />
|
||||
<Blob Hash="d05103a52033477b2ed82f4127222fd0309e22a7" Size="43520" PackHash="6a15e6e47a10c1dc80c27a80b5ac376ca60794c5" PackOffset="1875388" />
|
||||
<Blob Hash="d0536c567dd090d7eb673c47e962e05fdd2cf71e" Size="30928" PackHash="870ca928827716f87bfe40deac8a182b8f5933a5" PackOffset="1190952" />
|
||||
<Blob Hash="d053822fb09acc5610808dc850aa5f3608f6f7de" Size="3607" PackHash="2fb0ce94e7960b83e88bc4d2687ba07c94e9d96f" PackOffset="2093064" />
|
||||
<Blob Hash="d054308feb0fdf6bd0194d775c4c21d9fe0a142d" Size="200" PackHash="16e421c9204b08586edd8de93b93b19fb10644ea" PackOffset="1281708" />
|
||||
<Blob Hash="d05bea665bcdbf0957172c0154dd6158de76ef5d" Size="993" PackHash="c96e9cd94a86b222bed132142b65c1d90314445d" PackOffset="1638988" />
|
||||
@@ -61716,7 +61726,6 @@
|
||||
<Blob Hash="df63adcbad60c1703b813aa11ce87625d152a7bb" Size="51866" PackHash="e68fd345f57007c501cf74e2d02946684e887bcb" PackOffset="47015" />
|
||||
<Blob Hash="df63e32be7f72f4b55b2336b9865831fd761874a" Size="151040" PackHash="753eb938736a4b412147164d4077e991f9c89950" PackOffset="141472" />
|
||||
<Blob Hash="df653274907d6f9e59c01b816ecbbd759152b444" Size="23011" PackHash="b2f88f44baa14211312509c95df7f2a600873cef" PackOffset="1953404" />
|
||||
<Blob Hash="df6827b14a3654d380e4d6be2540829a404197af" Size="2109952" PackHash="de8eb2d3cc98126cdce5e4f8e475dd4382dd626a" PackOffset="8" />
|
||||
<Blob Hash="df69a38864fabe64d749061d16fb7815a294fac0" Size="243" PackHash="df09a1189b1d8964858cfb161710f823446cb601" PackOffset="2096842" />
|
||||
<Blob Hash="df6a4ea61b1b95c4b976114371e5d3e127a5a64e" Size="7588640" PackHash="940efd71d46bd3adcd95775096ff81074df16efd" PackOffset="8" />
|
||||
<Blob Hash="df6c0e4ca6591e17bf46d34435b347641a10314a" Size="441334" PackHash="142ddd26a143aeb02ee0ebc41be2e53c051e8680" PackOffset="1467302" />
|
||||
@@ -62501,6 +62510,7 @@
|
||||
<Blob Hash="e6fa61923049d58e71f49c80bafa3b1ee098aee4" Size="86016" PackHash="88192934143593f3b9bdf82185f4ac7a7373da7b" PackOffset="1869147" />
|
||||
<Blob Hash="e6fe94e93920839564b0a1cdedba48d87b05bc4c" Size="69197" PackHash="d92734f6a18a11d0dfbf8c9e12f63f2180c5225d" PackOffset="878294" />
|
||||
<Blob Hash="e6ff9aaaad94c910613d43dd3947cf9fe74c5569" Size="24795" PackHash="8eb9b2bca1fd3169f88939176fcba84d79e2efb3" PackOffset="2040914" />
|
||||
<Blob Hash="e70230d27989e42b09c8d02305cd8d8623b8b47a" Size="2110464" PackHash="7763bc2a723835983323800aed495fdef3171de7" PackOffset="8" />
|
||||
<Blob Hash="e702b5b3290900cffacacac7677b6074703232da" Size="39424" PackHash="aaf3a012f48b24c193628af42ef3302d96784c3f" PackOffset="2026064" />
|
||||
<Blob Hash="e702e43d0a41d6951db2ae7fe57c2aed33e94136" Size="1194496" PackHash="c2e8f2bf69a66ee756deb2b98fe8e6b015a71f3b" PackOffset="8" />
|
||||
<Blob Hash="e7047e8f04d731d38fa328fbc0e1856c4a8bb23d" Size="257" PackHash="b8b36b31df40a1fc9087e4b313999fcda60845cc" PackOffset="1044166" />
|
||||
@@ -64959,6 +64969,7 @@
|
||||
<Blob Hash="fe985394bf8ebfb1097905c453ee6186f332f688" Size="186176" PackHash="19ede39792670acddd34ed95e64693476ff138d6" PackOffset="1147768" />
|
||||
<Blob Hash="fe9909998cb689186ca772e1318fa257da9977cf" Size="1256" PackHash="a74a1a5121db55028d0a9d281ca2e5d501761af4" PackOffset="546858" />
|
||||
<Blob Hash="fe9f300dd562486bd82a406b3e76c104c18d47b0" Size="1817088" PackHash="c12630229aec6a6d5650a913934dd964f725eeeb" PackOffset="8" />
|
||||
<Blob Hash="fe9f897083368e3ec2db695ff590ee71a60c8358" Size="2168815" PackHash="30abec4df27f82943cf2f46504770edf5000b727" PackOffset="8" />
|
||||
<Blob Hash="fea348e4251a63c474ecaa1b9ec3139556e3b8ba" Size="62079" PackHash="2f13e90048446b62f7b075e0a79209d62ee1b054" PackOffset="2018499" />
|
||||
<Blob Hash="fea59097c5daf2c921656ca1aac6561ab052c118" Size="18014" PackHash="61414cf7f1e5c788cc1612ab498ef841efa0481a" PackOffset="1065992" />
|
||||
<Blob Hash="fea5d4d103e88ad371bbed943fdbe38a981aa6e0" Size="202673" PackHash="c63b8b65198dbac3e3764c69e57b85f011332ea1" PackOffset="1261794" />
|
||||
@@ -65672,6 +65683,7 @@
|
||||
<Pack Hash="305e297b2b5cfbc7e8ed4a63a3675efefa5e98c6" Size="2985912" CompressedSize="877083" RemotePath="UnrealEngine-3903710-c0a431f3a7fa47508c57a1b68a0c1c20" />
|
||||
<Pack Hash="3079ca967e96faed7447bb62972be52c51fefd0b" Size="5571852" CompressedSize="216308" RemotePath="UnrealEngine-4067073-f4223345c30c43e9b9a5d5fb88e6738b" />
|
||||
<Pack Hash="3079df4a3d586d43d272a660d269190b32b35686" Size="2097137" CompressedSize="1449956" RemotePath="UnrealEngine-3851379-9574459699d54a468d422fafe2380ede" />
|
||||
<Pack Hash="30abec4df27f82943cf2f46504770edf5000b727" Size="2168823" CompressedSize="260156" RemotePath="UnrealEngine-4071957-6642e934a7024324b15f91414df34b28" />
|
||||
<Pack Hash="30ba7bb330361d176b1fe57e61dee2be600e9b64" Size="2912160" CompressedSize="1007269" RemotePath="UnrealEngine-3600450-c3e3142cd8824d5ea86ce9e428159b08" />
|
||||
<Pack Hash="30bf523aff5cc60cdbb2da5ca9b51226e6aefc9b" Size="2097142" CompressedSize="744436" RemotePath="2369826-2acd3c361c9d4a858bd63938a2ab980e" />
|
||||
<Pack Hash="30c121a8a201c1fb51737b1b088de3a5bd3c3fca" Size="81523720" CompressedSize="14367071" RemotePath="UnrealEngine-3903710-c0a431f3a7fa47508c57a1b68a0c1c20" />
|
||||
@@ -66538,6 +66550,7 @@
|
||||
<Pack Hash="772be2a1b26f994f4af5928b9a48434ff28b41b2" Size="2091208" CompressedSize="593726" RemotePath="UnrealEngine-3903710-c0a431f3a7fa47508c57a1b68a0c1c20" />
|
||||
<Pack Hash="774363affa148e7acada2be2f0553fedf8552894" Size="3994336" CompressedSize="1317725" RemotePath="UnrealEngine-3903710-c0a431f3a7fa47508c57a1b68a0c1c20" />
|
||||
<Pack Hash="7756f8e0698993a2efb94e15819a1d1a22edd9aa" Size="2803148" CompressedSize="969091" RemotePath="2369826-2acd3c361c9d4a858bd63938a2ab980e" />
|
||||
<Pack Hash="7763bc2a723835983323800aed495fdef3171de7" Size="2110472" CompressedSize="692282" RemotePath="UnrealEngine-4071957-6642e934a7024324b15f91414df34b28" />
|
||||
<Pack Hash="7768e26095f6f16e7f329165693df1ce2b1b50b1" Size="6571424" CompressedSize="2494637" RemotePath="3140364-25fb5146829445ab89ef552f8f2cddc4" />
|
||||
<Pack Hash="77a45c780d4b8b728c809b3746997230d1e80d28" Size="7521576" CompressedSize="2149127" RemotePath="UnrealEngine-3903710-c0a431f3a7fa47508c57a1b68a0c1c20" />
|
||||
<Pack Hash="77ab57479dfe164e72b8298375e3b9b577e6640d" Size="8389824" CompressedSize="8390491" RemotePath="2487260-b428468bcd6545bfbb79f02a6605b9ef" />
|
||||
@@ -67275,7 +67288,6 @@
|
||||
<Pack Hash="b4d22366c02cea6b30ea26961825358361ba47f2" Size="1572646" CompressedSize="332135" RemotePath="UnrealEngine-3777242-2bd2dd48ffff490f920a1af9d6c763dd" />
|
||||
<Pack Hash="b4d8e0b490d2a1157340644482cc429e03d9575a" Size="2097144" CompressedSize="623061" RemotePath="UnrealEngine-3600450-c3e3142cd8824d5ea86ce9e428159b08" />
|
||||
<Pack Hash="b50b2c32f95d78ac0f63d6c0063c800b3c883e13" Size="2097073" CompressedSize="750112" RemotePath="UnrealEngine-3903710-c0a431f3a7fa47508c57a1b68a0c1c20" />
|
||||
<Pack Hash="b53b024f09d16f566786b61cb2d738b8e3176cf1" Size="2166943" CompressedSize="260014" RemotePath="UnrealEngine-4060164-d69a73f952174c318802b4322d29764f" />
|
||||
<Pack Hash="b59506b87ef3d619a3747897e1f0921349ec252e" Size="4159640" CompressedSize="985242" RemotePath="UnrealEngine-3903710-c0a431f3a7fa47508c57a1b68a0c1c20" />
|
||||
<Pack Hash="b5d103f39702f6a58b4e0e29b1b4e09be6689d12" Size="3466436" CompressedSize="218209" RemotePath="UnrealEngine-4069744-6d8a6a4085764dba89097508c3984eec" />
|
||||
<Pack Hash="b6031fd8e7c7749f931cc4703f065767edfa8a3b" Size="7077360" CompressedSize="4156390" RemotePath="3046645-5118f05e81a74ec4b9df0322d127b3f5" />
|
||||
@@ -67750,7 +67762,6 @@
|
||||
<Pack Hash="de74434214aa307a9b0fd7f9d71b839fc98c45e1" Size="4982730" CompressedSize="608161" RemotePath="UnrealEngine-3567077-8a334f3f74574a8583d4869b352a08e4" />
|
||||
<Pack Hash="de7be9bd446cca2c3d817d2f1d7042e9a6f27378" Size="8399819" CompressedSize="8400498" RemotePath="2487260-b428468bcd6545bfbb79f02a6605b9ef" />
|
||||
<Pack Hash="de85751668591870e7965db775b02872c59e1667" Size="2095769" CompressedSize="886376" RemotePath="UnrealEngine-3600450-c3e3142cd8824d5ea86ce9e428159b08" />
|
||||
<Pack Hash="de8eb2d3cc98126cdce5e4f8e475dd4382dd626a" Size="2109960" CompressedSize="692124" RemotePath="UnrealEngine-4060164-d69a73f952174c318802b4322d29764f" />
|
||||
<Pack Hash="de91426e5f3e3df5e3245d6aeb1634e9c47ced52" Size="2096332" CompressedSize="1391578" RemotePath="3362661-c42b75bbdfa5405597d5cca909cf2e91" />
|
||||
<Pack Hash="de95456c72c660a7fc9f70aa125bbefaa24b5897" Size="47805864" CompressedSize="12564370" RemotePath="3321770-f9a487bdd60e467b9a438b5715e2646c" />
|
||||
<Pack Hash="de97d5ea9d0119675bc1b66f36c68cb50fe4aee5" Size="6379762" CompressedSize="1649065" RemotePath="UnrealEngine-3903710-c0a431f3a7fa47508c57a1b68a0c1c20" />
|
||||
@@ -68060,6 +68071,7 @@
|
||||
<Pack Hash="fa09585b9d6d07f49e9f66b7bc0c064ae5b342ca" Size="2096988" CompressedSize="554133" RemotePath="UnrealEngine-3537460-fc4e9ec63e054c8198c29206bb6442a0" />
|
||||
<Pack Hash="fa3c3cf43525a5cf7e63f9b4de6d7441a0e826af" Size="8838914" CompressedSize="8839813" RemotePath="2487260-b428468bcd6545bfbb79f02a6605b9ef" />
|
||||
<Pack Hash="fa46706927a9be426d4a9e202d324198df62b341" Size="17753466" CompressedSize="4452569" RemotePath="3147801-f415651f647b4861a899c285d0f69963" />
|
||||
<Pack Hash="fa48ff18c8bfe5de58cfd0b9f5fc9ff52ec1b1da" Size="87846" CompressedSize="37759" RemotePath="UnrealEngine-4071957-6642e934a7024324b15f91414df34b28" />
|
||||
<Pack Hash="fa6b03fd484f9c41484542437072d4053af6cfb1" Size="4269880" CompressedSize="1379105" RemotePath="UnrealEngine-3903710-c0a431f3a7fa47508c57a1b68a0c1c20" />
|
||||
<Pack Hash="fa831f9211c00727c75faa1ba30d872024a924b2" Size="45716288" CompressedSize="8365183" RemotePath="UnrealEngine-3903710-c0a431f3a7fa47508c57a1b68a0c1c20" />
|
||||
<Pack Hash="faa641df952d93274d1774a37ecd0e58a425c5a1" Size="2096793" CompressedSize="464084" RemotePath="3386123-114c137db15c440eb0400947c008540e" />
|
||||
|
||||
+59
@@ -1,6 +1,8 @@
|
||||
// Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
|
||||
|
||||
#include "LiveLinkBlueprintLibrary.h"
|
||||
#include "Features/IModularFeatures.h"
|
||||
#include "ILiveLinkClient.h"
|
||||
|
||||
void ULiveLinkBlueprintLibrary::GetCurves(UPARAM(ref) FSubjectFrameHandle& SubjectFrameHandle, TMap<FName, float>& Curves)
|
||||
{
|
||||
@@ -61,3 +63,60 @@ void ULiveLinkBlueprintLibrary::GetChildren(UPARAM(ref) FLiveLinkTransform& Live
|
||||
{
|
||||
LiveLinkTransform.GetChildren(Children);
|
||||
};
|
||||
|
||||
bool ULiveLinkBlueprintLibrary::IsSourceStillValid(UPARAM(ref) FLiveLinkSourceHandle& SourceHandle)
|
||||
{
|
||||
return SourceHandle.SourcePointer.IsValid() && SourceHandle.SourcePointer->IsSourceStillValid();
|
||||
};
|
||||
|
||||
bool ULiveLinkBlueprintLibrary::RequestShutdown(UPARAM(ref) FLiveLinkSourceHandle& SourceHandle)
|
||||
{
|
||||
bool bSourceShutdown = SourceHandle.SourcePointer.IsValid() && SourceHandle.SourcePointer->RequestSourceShutdown();
|
||||
if (bSourceShutdown)
|
||||
{
|
||||
IModularFeatures& ModularFeatures = IModularFeatures::Get();
|
||||
|
||||
if (ModularFeatures.IsModularFeatureAvailable(ILiveLinkClient::ModularFeatureName))
|
||||
{
|
||||
ILiveLinkClient* LiveLinkClient = &ModularFeatures.GetModularFeature<ILiveLinkClient>(ILiveLinkClient::ModularFeatureName);
|
||||
LiveLinkClient->RemoveSource(SourceHandle.SourcePointer);
|
||||
}
|
||||
}
|
||||
return bSourceShutdown;
|
||||
}
|
||||
|
||||
FText ULiveLinkBlueprintLibrary::GetSourceStatus(UPARAM(ref) FLiveLinkSourceHandle& SourceHandle)
|
||||
{
|
||||
if (SourceHandle.SourcePointer.IsValid())
|
||||
{
|
||||
return SourceHandle.SourcePointer->GetSourceStatus();
|
||||
}
|
||||
else
|
||||
{
|
||||
return FText::GetEmpty();
|
||||
}
|
||||
}
|
||||
|
||||
FText ULiveLinkBlueprintLibrary::GetSourceType(UPARAM(ref) FLiveLinkSourceHandle& SourceHandle)
|
||||
{
|
||||
if (SourceHandle.SourcePointer.IsValid())
|
||||
{
|
||||
return SourceHandle.SourcePointer->GetSourceType();
|
||||
}
|
||||
else
|
||||
{
|
||||
return FText::GetEmpty();
|
||||
}
|
||||
}
|
||||
|
||||
FText ULiveLinkBlueprintLibrary::GetSourceMachineName(UPARAM(ref) FLiveLinkSourceHandle& SourceHandle)
|
||||
{
|
||||
if (SourceHandle.SourcePointer.IsValid())
|
||||
{
|
||||
return SourceHandle.SourcePointer->GetSourceMachineName();
|
||||
}
|
||||
else
|
||||
{
|
||||
return FText::GetEmpty();
|
||||
}
|
||||
}
|
||||
+6
-1
@@ -1,7 +1,7 @@
|
||||
// Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
|
||||
|
||||
#include "LiveLinkBlueprintStructs.h"
|
||||
#include "QualifiedFrameTime.h"
|
||||
#include "Misc/QualifiedFrameTime.h"
|
||||
|
||||
// FCachedSubjectFrame
|
||||
|
||||
@@ -318,3 +318,8 @@ void FSubjectFrameHandle::SetCachedFrame(TSharedPtr<FCachedSubjectFrame> InCache
|
||||
{
|
||||
CachedFrame = InCachedFrame;
|
||||
};
|
||||
|
||||
void FLiveLinkSourceHandle::SetSourcePointer(TSharedPtr<ILiveLinkSource> InSourcePointer)
|
||||
{
|
||||
SourcePointer = InSourcePointer;
|
||||
};
|
||||
@@ -432,6 +432,18 @@ void FLiveLinkClient::RemoveSource(FGuid InEntryGuid)
|
||||
}
|
||||
}
|
||||
|
||||
void FLiveLinkClient::RemoveSource(TSharedPtr<ILiveLinkSource> InSource)
|
||||
{
|
||||
LastValidationCheck = 0.0; //Force validation check next frame
|
||||
int32 SourceIdx = GetSourceIndexForPointer(InSource);
|
||||
if (SourceIdx != INDEX_NONE)
|
||||
{
|
||||
SourcesToRemove.Add(Sources[SourceIdx]);
|
||||
RemoveSourceInternal(SourceIdx);
|
||||
OnLiveLinkSourcesChanged.Broadcast();
|
||||
}
|
||||
}
|
||||
|
||||
void FLiveLinkClient::RemoveAllSources()
|
||||
{
|
||||
LastValidationCheck = 0.0; //Force validation check next frame
|
||||
@@ -508,6 +520,31 @@ TArray<FLiveLinkSubjectKey> FLiveLinkClient::GetSubjects()
|
||||
return SubjectEntries;
|
||||
}
|
||||
|
||||
void FLiveLinkClient::GetSubjectNames(TArray<FName>& SubjectNames)
|
||||
{
|
||||
SubjectNames.Reset();
|
||||
{
|
||||
FScopeLock Lock(&SubjectDataAccessCriticalSection);
|
||||
|
||||
SubjectNames.Reserve(LiveSubjectData.Num() + VirtualSubjects.Num());
|
||||
|
||||
for (const TPair<FName, FLiveLinkSubject>& LiveSubject : LiveSubjectData)
|
||||
{
|
||||
SubjectNames.Emplace(LiveSubject.Key);
|
||||
}
|
||||
}
|
||||
|
||||
for (TPair<FName, FLiveLinkVirtualSubject>& VirtualSubject : VirtualSubjects)
|
||||
{
|
||||
SubjectNames.Emplace(VirtualSubject.Key);
|
||||
}
|
||||
}
|
||||
|
||||
int32 FLiveLinkClient::GetSourceIndexForPointer(TSharedPtr<ILiveLinkSource> InSource) const
|
||||
{
|
||||
return Sources.IndexOfByKey(InSource);
|
||||
}
|
||||
|
||||
int32 FLiveLinkClient::GetSourceIndexForGUID(FGuid InEntryGuid) const
|
||||
{
|
||||
return SourceGuids.IndexOfByKey(InEntryGuid);
|
||||
|
||||
+85
@@ -0,0 +1,85 @@
|
||||
// Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
|
||||
|
||||
#include "LiveLinkMessageBusFinder.h"
|
||||
|
||||
#include "Engine/Engine.h"
|
||||
#include "Features/IModularFeatures.h"
|
||||
#include "ILiveLinkClient.h"
|
||||
#include "LiveLinkMessages.h"
|
||||
#include "LiveLinkMessageBusSource.h"
|
||||
#include "MessageEndpointBuilder.h"
|
||||
|
||||
ULiveLinkMessageBusFinder::ULiveLinkMessageBusFinder()
|
||||
: MessageEndpoint(nullptr)
|
||||
{
|
||||
|
||||
};
|
||||
|
||||
void ULiveLinkMessageBusFinder::GetAvailableProviders(UObject* WorldContextObject, struct FLatentActionInfo LatentInfo, float Duration, TArray<FProviderPollResult>& AvailableProviders)
|
||||
{
|
||||
if (UWorld* World = GEngine->GetWorldFromContextObject(WorldContextObject, EGetWorldErrorMode::LogAndReturnNull))
|
||||
{
|
||||
FLatentActionManager& LatentManager = World->GetLatentActionManager();
|
||||
if (LatentManager.FindExistingAction<FLiveLinkMessageBusFinderAction>(LatentInfo.CallbackTarget, LatentInfo.UUID) == nullptr)
|
||||
{
|
||||
PollNetwork();
|
||||
|
||||
FLiveLinkMessageBusFinderAction* NewAction = new FLiveLinkMessageBusFinderAction(LatentInfo, this, Duration, AvailableProviders);
|
||||
LatentManager.AddNewAction(LatentInfo.CallbackTarget, LatentInfo.UUID, NewAction);
|
||||
}
|
||||
else
|
||||
{
|
||||
UE_LOG(LogTemp, Warning, TEXT("GetAvailableProviders not executed. The previous action hasn't finished yet."));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
void ULiveLinkMessageBusFinder::GetPollResults(TArray<FProviderPollResult>& AvailableProviders)
|
||||
{
|
||||
FScopeLock ScopedLock(&PollDataCriticalSection);
|
||||
AvailableProviders = PollData;
|
||||
};
|
||||
|
||||
void ULiveLinkMessageBusFinder::PollNetwork()
|
||||
{
|
||||
if (!MessageEndpoint.IsValid())
|
||||
{
|
||||
MessageEndpoint = FMessageEndpoint::Builder(TEXT("LiveLinkMessageBusSource"))
|
||||
.Handling<FLiveLinkPongMessage>(this, &ULiveLinkMessageBusFinder::HandlePongMessage);
|
||||
}
|
||||
|
||||
PollData.Reset();
|
||||
CurrentPollRequest = FGuid::NewGuid();
|
||||
MessageEndpoint->Publish(new FLiveLinkPingMessage(CurrentPollRequest));
|
||||
};
|
||||
|
||||
void ULiveLinkMessageBusFinder::HandlePongMessage(const FLiveLinkPongMessage& Message, const TSharedRef<IMessageContext, ESPMode::ThreadSafe>& Context)
|
||||
{
|
||||
if (Message.PollRequest == CurrentPollRequest)
|
||||
{
|
||||
FScopeLock ScopedLock(&PollDataCriticalSection);
|
||||
PollData.Add(FProviderPollResult(Context->GetSender(), Message.ProviderName, Message.MachineName));
|
||||
}
|
||||
};
|
||||
|
||||
void ULiveLinkMessageBusFinder::ConnectToProvider(UPARAM(ref) FProviderPollResult& Provider, FLiveLinkSourceHandle& SourceHandle)
|
||||
{
|
||||
IModularFeatures& ModularFeatures = IModularFeatures::Get();
|
||||
|
||||
if (ModularFeatures.IsModularFeatureAvailable(ILiveLinkClient::ModularFeatureName))
|
||||
{
|
||||
ILiveLinkClient* LiveLinkClient = &ModularFeatures.GetModularFeature<ILiveLinkClient>(ILiveLinkClient::ModularFeatureName);
|
||||
TSharedPtr<FLiveLinkMessageBusSource> NewSource = MakeShared<FLiveLinkMessageBusSource>(FText::FromString(Provider.Name), FText::FromString(Provider.MachineName), Provider.Address);
|
||||
LiveLinkClient->AddSource(NewSource);
|
||||
SourceHandle.SetSourcePointer(NewSource);
|
||||
}
|
||||
else
|
||||
{
|
||||
SourceHandle.SetSourcePointer(nullptr);
|
||||
}
|
||||
};
|
||||
|
||||
ULiveLinkMessageBusFinder* ULiveLinkMessageBusFinder::ConstructMessageBusFinder()
|
||||
{
|
||||
return NewObject<ULiveLinkMessageBusFinder>();
|
||||
}
|
||||
+5
-1
@@ -64,7 +64,11 @@ void FLiveLinkMessageBusSource::HandleClearSubject(const FLiveLinkClearSubject&
|
||||
|
||||
bool FLiveLinkMessageBusSource::RequestSourceShutdown()
|
||||
{
|
||||
FHeartbeatManager::Get()->RemoveSource(this);
|
||||
FHeartbeatManager* HeartbeatManager = FHeartbeatManager::Get();
|
||||
if (HeartbeatManager->IsRunning())
|
||||
{
|
||||
HeartbeatManager->RemoveSource(this);
|
||||
}
|
||||
FMessageEndpoint::SafeRelease(MessageEndpoint);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -64,4 +64,25 @@ class LIVELINK_API ULiveLinkBlueprintLibrary : public UBlueprintFunctionLibrary
|
||||
UFUNCTION(BlueprintPure, Category = "LiveLink")
|
||||
static void GetChildren(UPARAM(ref) FLiveLinkTransform& LiveLinkTransform, TArray<FLiveLinkTransform>& Children);
|
||||
|
||||
// FLiveLinkSourceHandle
|
||||
|
||||
// Checks whether the LiveLink Source is valid via its handle
|
||||
UFUNCTION(BlueprintCallable, Category = "LiveLink")
|
||||
static bool IsSourceStillValid(UPARAM(ref) FLiveLinkSourceHandle& SourceHandle);
|
||||
|
||||
// Requests the given LiveLink Source to shut down via its handle
|
||||
UFUNCTION(BlueprintCallable, Category = "LiveLink")
|
||||
static bool RequestShutdown(UPARAM(ref) FLiveLinkSourceHandle& SourceHandle);
|
||||
|
||||
// Get the text status of a LiveLink Source via its handle
|
||||
UFUNCTION(BlueprintCallable, Category = "LiveLink")
|
||||
static FText GetSourceStatus(UPARAM(ref) FLiveLinkSourceHandle& SourceHandle);
|
||||
|
||||
// Get the type of a LiveLink Source via its handle
|
||||
UFUNCTION(BlueprintCallable, Category = "LiveLink")
|
||||
static FText GetSourceType(UPARAM(ref) FLiveLinkSourceHandle& SourceHandle);
|
||||
|
||||
// Get the machine name of a LiveLink Source via its handle
|
||||
UFUNCTION(BlueprintCallable, Category = "LiveLink")
|
||||
static FText GetSourceMachineName(UPARAM(ref) FLiveLinkSourceHandle& SourceHandle);
|
||||
};
|
||||
+18
-2
@@ -4,8 +4,9 @@
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "LiveLinkTypes.h"
|
||||
#include "Timecode.h"
|
||||
#include "FrameRate.h"
|
||||
#include "Misc/Timecode.h"
|
||||
#include "Misc/FrameRate.h"
|
||||
#include "ILiveLinkSource.h"
|
||||
#include "LiveLinkBlueprintStructs.generated.h"
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
@@ -122,3 +123,18 @@ struct FSubjectFrameHandle
|
||||
private:
|
||||
TSharedPtr<FCachedSubjectFrame> CachedFrame;
|
||||
};
|
||||
|
||||
// A Blueprint handle to a specific LiveLink Source
|
||||
USTRUCT(BlueprintType)
|
||||
struct FLiveLinkSourceHandle
|
||||
{
|
||||
GENERATED_USTRUCT_BODY()
|
||||
|
||||
FLiveLinkSourceHandle() = default;
|
||||
|
||||
virtual ~FLiveLinkSourceHandle() = default;
|
||||
|
||||
void SetSourcePointer(TSharedPtr<ILiveLinkSource> InSourcePointer);
|
||||
|
||||
TSharedPtr<ILiveLinkSource> SourcePointer;
|
||||
};
|
||||
|
||||
@@ -134,6 +134,9 @@ public:
|
||||
// Remove the specified source from the live link client
|
||||
void RemoveSource(FGuid InEntryGuid);
|
||||
|
||||
// Remove the specified source from the live link client
|
||||
virtual void RemoveSource(TSharedPtr<ILiveLinkSource> InSource) override;
|
||||
|
||||
// Remover all sources from the live link client
|
||||
void RemoveAllSources();
|
||||
|
||||
@@ -157,6 +160,9 @@ public:
|
||||
// Get a list of currently active subjects
|
||||
TArray<FLiveLinkSubjectKey> GetSubjects();
|
||||
|
||||
// Populates an array with in-use subject names
|
||||
virtual void GetSubjectNames(TArray<FName>& SubjectNames) override;
|
||||
|
||||
FText GetSourceTypeForEntry(FGuid InEntryGuid) const;
|
||||
FText GetMachineNameForEntry(FGuid InEntryGuid) const;
|
||||
FText GetEntryStatusForEntry(FGuid InEntryGuid) const;
|
||||
@@ -185,7 +191,7 @@ public:
|
||||
FDelegateHandle RegisterSourcesChangedHandle(const FSimpleMulticastDelegate::FDelegate& SourcesChanged);
|
||||
void UnregisterSourcesChangedHandle(FDelegateHandle Handle);
|
||||
|
||||
// Functions for managing sources changed delegate
|
||||
// Functions for managing subjects changed delegate
|
||||
FDelegateHandle RegisterSubjectsChangedHandle(const FSimpleMulticastDelegate::FDelegate& SubjectsChanged);
|
||||
void UnregisterSubjectsChangedHandle(FDelegateHandle Handle);
|
||||
|
||||
@@ -197,6 +203,9 @@ private:
|
||||
// Remove the specified source (must be a valid index, function does no checking)
|
||||
void RemoveSourceInternal(int32 SourceIdx);
|
||||
|
||||
// Get index of specified source
|
||||
int32 GetSourceIndexForPointer(TSharedPtr<ILiveLinkSource> InSource) const;
|
||||
|
||||
// Get index of specified source
|
||||
int32 GetSourceIndexForGUID(FGuid InEntryGuid) const;
|
||||
|
||||
|
||||
@@ -0,0 +1,134 @@
|
||||
// Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "LiveLinkTypes.h"
|
||||
#include "Misc/ScopeLock.h"
|
||||
#include "MessageEndpoint.h"
|
||||
#include "LatentActions.h"
|
||||
#include "Engine/LatentActionManager.h"
|
||||
#include "LiveLinkBlueprintStructs.h"
|
||||
#include "LiveLinkMessageBusFinder.generated.h"
|
||||
|
||||
struct FLiveLinkPongMessage;
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
struct FProviderPollResult
|
||||
{
|
||||
public:
|
||||
GENERATED_USTRUCT_BODY()
|
||||
|
||||
FProviderPollResult() = default;
|
||||
|
||||
FProviderPollResult(const FMessageAddress& InAddress, const FString& InName, const FString& InMachineName)
|
||||
: Address(InAddress)
|
||||
, Name(InName)
|
||||
, MachineName(InMachineName)
|
||||
{}
|
||||
|
||||
FMessageAddress Address;
|
||||
|
||||
// The name of the provider
|
||||
UPROPERTY(BlueprintReadOnly, EditAnywhere, Category="LiveLink", meta=(DisplayName = "Provider Name"))
|
||||
FString Name;
|
||||
|
||||
// The name of the machine the provider is running on
|
||||
UPROPERTY(BlueprintReadOnly, EditAnywhere, Category="LiveLink")
|
||||
FString MachineName;
|
||||
};
|
||||
|
||||
// Asset for finding available Message Bus Sources.
|
||||
UCLASS(BlueprintType)
|
||||
class LIVELINK_API ULiveLinkMessageBusFinder
|
||||
: public UObject
|
||||
{
|
||||
GENERATED_BODY()
|
||||
public:
|
||||
|
||||
ULiveLinkMessageBusFinder();
|
||||
|
||||
/*
|
||||
* Broadcasts a message to the network and returns a list of all providers who replied within a set amount of time.
|
||||
*
|
||||
* @param AvailableProviders Will contain the collection of found Message Bus Providers.
|
||||
* @param Duration The amount of time to wait for replies in seconds
|
||||
*/
|
||||
UFUNCTION(BlueprintCallable, Category = "LiveLink", meta=(Latent, LatentInfo = "LatentInfo", WorldContext = "WorldContextObject", Duration = "0.2"))
|
||||
void GetAvailableProviders(UObject* WorldContextObject, struct FLatentActionInfo LatentInfo, float Duration, TArray<FProviderPollResult>& AvailableProviders);
|
||||
|
||||
/*
|
||||
* Connects to a given Message Bus Provider and returns a handle to the created LiveLink Source
|
||||
*
|
||||
* @param Provider The provider to connect to.
|
||||
* @param SourceHandle A handle to the created LiveLink Source, lets you query information about the created source and request a shutdown
|
||||
*/
|
||||
UFUNCTION(BlueprintCallable, Category = "LiveLink")
|
||||
static void ConnectToProvider(UPARAM(ref) FProviderPollResult& Provider, FLiveLinkSourceHandle& SourceHandle);
|
||||
|
||||
/*
|
||||
* Constructs a new Message Bus Finder which enables you to detect available Message Bus Providers on the network
|
||||
*
|
||||
* @return The newly constructed Message Bus Finder
|
||||
*/
|
||||
UFUNCTION(BlueprintCallable, Category = "LiveLink")
|
||||
static ULiveLinkMessageBusFinder* ConstructMessageBusFinder();
|
||||
|
||||
// Broadcast a ping message to the network and listen for responses
|
||||
void PollNetwork();
|
||||
|
||||
// Populates AvailableProviders with the Providers who have responded to the latest poll.
|
||||
void GetPollResults(TArray<FProviderPollResult>& AvailableProviders);
|
||||
|
||||
private:
|
||||
// Runs when a Provider responds to the ping from PollNetwork()
|
||||
void HandlePongMessage(const FLiveLinkPongMessage& Message, const TSharedRef<IMessageContext, ESPMode::ThreadSafe>& Context);
|
||||
|
||||
TSharedPtr<FMessageEndpoint, ESPMode::ThreadSafe> MessageEndpoint;
|
||||
TArray<FProviderPollResult> PollData;
|
||||
FGuid CurrentPollRequest;
|
||||
|
||||
FCriticalSection PollDataCriticalSection;
|
||||
};
|
||||
|
||||
|
||||
struct FLiveLinkMessageBusFinderAction : public FPendingLatentAction
|
||||
{
|
||||
public:
|
||||
FName ExecutionFunction;
|
||||
int32 OutputLink;
|
||||
FWeakObjectPtr CallbackTarget;
|
||||
TWeakObjectPtr<ULiveLinkMessageBusFinder> MessageBusFinderWeakPtr;
|
||||
TArray<FProviderPollResult>& OutAvailableProviders;
|
||||
float RemainingTime;
|
||||
|
||||
FLiveLinkMessageBusFinderAction(const FLatentActionInfo& InLatentInfo, ULiveLinkMessageBusFinder* InMessageBusFinder, float Duration, TArray<FProviderPollResult>& InAvailableProviders)
|
||||
: FPendingLatentAction()
|
||||
, ExecutionFunction(InLatentInfo.ExecutionFunction)
|
||||
, OutputLink(InLatentInfo.Linkage)
|
||||
, CallbackTarget(InLatentInfo.CallbackTarget)
|
||||
, MessageBusFinderWeakPtr(InMessageBusFinder)
|
||||
, OutAvailableProviders(InAvailableProviders)
|
||||
, RemainingTime(Duration)
|
||||
{}
|
||||
|
||||
virtual void UpdateOperation(FLatentResponse& Response) override
|
||||
{
|
||||
RemainingTime -= Response.ElapsedTime();
|
||||
if (RemainingTime <= 0)
|
||||
{
|
||||
if (ULiveLinkMessageBusFinder* MessageBusFinder = MessageBusFinderWeakPtr.Get())
|
||||
{
|
||||
MessageBusFinder->GetPollResults(OutAvailableProviders);
|
||||
}
|
||||
Response.FinishAndTriggerIf(true, ExecutionFunction, OutputLink, CallbackTarget);
|
||||
}
|
||||
}
|
||||
|
||||
#if WITH_EDITOR
|
||||
virtual FString GetDescription() const override
|
||||
{
|
||||
return FString::Printf(TEXT("Searching for LiveLink Message Bus providers."));
|
||||
}
|
||||
#endif
|
||||
};
|
||||
+3
-2
@@ -1,6 +1,7 @@
|
||||
// Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
|
||||
// Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
|
||||
|
||||
#include "LiveLinkMessageBusSourceEditor.h"
|
||||
#include "LiveLinkMessageBusFinder.h"
|
||||
#include "LiveLinkMessages.h"
|
||||
#include "Widgets/Layout/SBox.h"
|
||||
|
||||
@@ -124,7 +125,7 @@ void SLiveLinkMessageBusSourceEditor::HandlePongMessage(const FLiveLinkPongMessa
|
||||
{
|
||||
if(Message.PollRequest == CurrentPollRequest)
|
||||
{
|
||||
PollData.Add(MakeShareable(new FProviderPollResult(Context->GetSender(), Message.ProviderName, Message.MachineName)));
|
||||
PollData.Add(MakeShared<FProviderPollResult>(Context->GetSender(), Message.ProviderName, Message.MachineName));
|
||||
|
||||
ListView->RequestListRefresh();
|
||||
}
|
||||
|
||||
+2
-16
@@ -1,4 +1,4 @@
|
||||
// Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
|
||||
// Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
|
||||
|
||||
#pragma once
|
||||
|
||||
@@ -11,24 +11,10 @@
|
||||
|
||||
struct FLiveLinkPongMessage;
|
||||
struct FMessageAddress;
|
||||
struct FProviderPollResult;
|
||||
class ITableRow;
|
||||
class STableViewBase;
|
||||
|
||||
struct FProviderPollResult
|
||||
{
|
||||
public:
|
||||
FProviderPollResult(const FMessageAddress& InAddress, const FString& InName, const FString& InMachineName)
|
||||
: Address(InAddress)
|
||||
, Name(InName)
|
||||
, MachineName(InMachineName)
|
||||
{}
|
||||
|
||||
FMessageAddress Address;
|
||||
|
||||
FString Name;
|
||||
FString MachineName;
|
||||
};
|
||||
|
||||
typedef TSharedPtr<FProviderPollResult> FProviderPollResultPtr;
|
||||
|
||||
class SLiveLinkMessageBusSourceEditor : public SCompoundWidget
|
||||
|
||||
+3
-2
@@ -1,7 +1,8 @@
|
||||
// Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
|
||||
// Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
|
||||
#include "LiveLinkMessageBusSourceFactory.h"
|
||||
#include "LiveLinkMessageBusSource.h"
|
||||
#include "LiveLinkMessageBusSourceEditor.h"
|
||||
#include "LiveLinkMessageBusFinder.h"
|
||||
|
||||
#define LOCTEXT_NAMESPACE "LiveLinkMessageBusSourceFactory"
|
||||
|
||||
@@ -34,7 +35,7 @@ TSharedPtr<ILiveLinkSource> ULiveLinkMessageBusSourceFactory::OnSourceCreationPa
|
||||
FProviderPollResultPtr Result = ActiveSourceEditor->GetSelectedSource();
|
||||
if(Result.IsValid())
|
||||
{
|
||||
NewSource = MakeShareable( new FLiveLinkMessageBusSource(FText::FromString(Result->Name), FText::FromString(Result->MachineName), Result->Address));
|
||||
NewSource = MakeShared<FLiveLinkMessageBusSource>(FText::FromString(Result->Name), FText::FromString(Result->MachineName), Result->Address);
|
||||
}
|
||||
}
|
||||
ActiveSourceEditor = nullptr;
|
||||
|
||||
+1
-1
@@ -9,7 +9,7 @@
|
||||
#include "Widgets/Notifications/SNotificationList.h"
|
||||
#include "Framework/Notifications/NotificationManager.h"
|
||||
#include "ComposureEditorModule.h"
|
||||
#include "QualifiedFrameTime.h"
|
||||
#include "Misc/QualifiedFrameTime.h"
|
||||
|
||||
#define LOCTEXT_NAMESPACE "ComposurePostMoveSettingsPropertyTrackEditor"
|
||||
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "Widgets/SWindow.h"
|
||||
#include "FrameRate.h"
|
||||
#include "Misc/FrameRate.h"
|
||||
|
||||
/** A dialog for collecting settings for importing post move settings from an external file. */
|
||||
class SComposurePostMoveSettingsImportDialog : public SWindow
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
[CoreRedirects]
|
||||
|
||||
+ClassRedirects=(OldName="/Script/EditorScriptingUtilities.BlutilityActor",NewName="/Script/Blutility.PlacedEditorUtilityBase")
|
||||
-15
@@ -1,15 +0,0 @@
|
||||
// Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "GameFramework/Actor.h"
|
||||
#include "BlutilityActor.generated.h"
|
||||
|
||||
/**
|
||||
* Utility class to do most of the common functionalities.
|
||||
*/
|
||||
UCLASS()
|
||||
class EDITORSCRIPTINGUTILITIES_API ABlutilityActor : public AActor
|
||||
{
|
||||
GENERATED_BODY()
|
||||
};
|
||||
+11
-9
@@ -118,9 +118,11 @@ struct DATASMITHCONTENT_API FDatasmithStaticMeshImportOptions
|
||||
|
||||
FDatasmithStaticMeshImportOptions();
|
||||
|
||||
/** Minimum resolution for auto-generated lightmap UVs */
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Lightmap)
|
||||
EDatasmithImportLightmapMin MinLightmapResolution;
|
||||
|
||||
/** Maximum resolution for auto-generated lightmap UVs */
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Lightmap)
|
||||
EDatasmithImportLightmapMax MaxLightmapResolution;
|
||||
|
||||
@@ -145,11 +147,11 @@ struct DATASMITHCONTENT_API FDatasmithReimportOptions
|
||||
public:
|
||||
FDatasmithReimportOptions();
|
||||
|
||||
/** Specifies whether geometry are to be imported or not */
|
||||
/** Specifies whether or not to update Datasmith Scene Actors in the current Level */
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "SyncCurrentLevelActors", meta = (DisplayName = "Datasmith Scene Actors"))
|
||||
bool bUpdateActors;
|
||||
|
||||
/** Specifies whether materials and textures are to be imported or not */
|
||||
/** Specifies whether or not to add back Actors you've deleted from the current Level */
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "SyncCurrentLevelActors", meta = (DisplayName = "Re-Spawn Deleted Actors", EditCondition = "bUpdateActors"))
|
||||
bool bRespawnDeletedActors;
|
||||
};
|
||||
@@ -165,19 +167,19 @@ struct DATASMITHCONTENT_API FDatasmithImportBaseOptions
|
||||
UPROPERTY(BlueprintReadWrite, Category = Import, Transient)
|
||||
EDatasmithImportScene SceneHandling; // Not displayed, not saved
|
||||
|
||||
/** Specifies whether geometry are to be imported or not */
|
||||
/** Specifies whether or not to import geometry */
|
||||
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = Process, meta = (DisplayName = "Geometry"))
|
||||
bool bIncludeGeometry;
|
||||
|
||||
/** Specifies whether materials and textures are to be imported or not */
|
||||
/** Specifies whether or not to import materials and textures */
|
||||
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = Process, meta = (DisplayName = "Materials & Textures"))
|
||||
bool bIncludeMaterial;
|
||||
|
||||
/** Specifies whether lights are to be imported or not */
|
||||
/** Specifies whether or not to import lights */
|
||||
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = Process, meta = (DisplayName = "Lights"))
|
||||
bool bIncludeLight;
|
||||
|
||||
/** Specifies whether cameras are to be imported or not */
|
||||
/** Specifies whether or not to import cameras */
|
||||
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = Process, meta = (DisplayName = "Cameras"))
|
||||
bool bIncludeCamera;
|
||||
|
||||
@@ -206,7 +208,7 @@ struct DATASMITHCONTENT_API FDatasmithTessellationOptions
|
||||
* The lower the value the more triangles.
|
||||
* Default value is 0.2.
|
||||
*/
|
||||
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Geometry & Tessellation Options", meta = (Units = cm, ToolTip = "Maximum distance between a generated triangle and the original surface. Smaller values increase triangles count.", ClampMin = "0.0"))
|
||||
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Geometry & Tessellation Options", meta = (Units = cm, ToolTip = "Maximum distance between any generated triangle and the original surface. Smaller values make more triangles.", ClampMin = "0.0"))
|
||||
float ChordTolerance;
|
||||
|
||||
/**
|
||||
@@ -215,7 +217,7 @@ struct DATASMITHCONTENT_API FDatasmithTessellationOptions
|
||||
* Value of 0 means no constraint on length of edges
|
||||
* Default value is 0.
|
||||
*/
|
||||
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, AdvancedDisplay, Category = "Geometry & Tessellation Options", meta = (Units = cm, DisplayName = "Max Edge Length", ToolTip = "Maximum length of an edge in the generated triangles. Smaller values increase triangles count.", ClampMin = "0.0"))
|
||||
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, AdvancedDisplay, Category = "Geometry & Tessellation Options", meta = (Units = cm, DisplayName = "Max Edge Length", ToolTip = "Maximum length of any edge in the generated triangles. Smaller values make more triangles.", ClampMin = "0.0"))
|
||||
float MaxEdgeLength;
|
||||
|
||||
/**
|
||||
@@ -223,7 +225,7 @@ struct DATASMITHCONTENT_API FDatasmithTessellationOptions
|
||||
* The angle is expressed in degree. The smaller the more triangles are generated.
|
||||
* Default value is 20 degrees.
|
||||
*/
|
||||
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, AdvancedDisplay, Category = "Geometry & Tessellation Options", meta = (Units = deg, ToolTip = "Maximum angle between adjacent triangles generated from a surface. Smaller values increase triangles count.", ClampMin = "0.0", ClampMax = "90.0"))
|
||||
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, AdvancedDisplay, Category = "Geometry & Tessellation Options", meta = (Units = deg, ToolTip = "Maximum angle between adjacent triangles. Smaller values make more triangles.", ClampMin = "0.0", ClampMax = "90.0"))
|
||||
float NormalTolerance;
|
||||
|
||||
public:
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
|
||||
#include "Evaluation/MovieSceneEvalTemplate.h"
|
||||
#include "Evaluation/MovieScenePropertyTemplate.h"
|
||||
#include "FrameNumber.h"
|
||||
#include "Misc/FrameNumber.h"
|
||||
#include "MovieSceneImagePlateTemplate.generated.h"
|
||||
|
||||
class UMovieSceneImagePlateSection;
|
||||
|
||||
+2
-5
@@ -1,12 +1,10 @@
|
||||
// Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
|
||||
|
||||
#include "PyFileWriter.h"
|
||||
#include "Misc/FileHelper.h"
|
||||
|
||||
#include "PyGenUtil.h"
|
||||
|
||||
#if WITH_PYTHON
|
||||
|
||||
|
||||
FPyFileWriter::FPyFileWriter()
|
||||
: Indentation(0)
|
||||
{
|
||||
@@ -88,8 +86,7 @@ void FPyFileWriter::DecreaseIndent(const int32 InCount)
|
||||
|
||||
bool FPyFileWriter::SaveFile(const TCHAR* InFilename)
|
||||
{
|
||||
return FFileHelper::SaveStringToFile(FileContents, InFilename, FFileHelper::EEncodingOptions::ForceUTF8);
|
||||
return PyGenUtil::SaveGeneratedTextFile(InFilename, FileContents);
|
||||
}
|
||||
|
||||
|
||||
#endif // WITH_PYTHON
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user