diff --git a/Config/Android_LenovoA3.ini b/Config/Android_LenovoA3.ini new file mode 100644 index 0000000000000000000000000000000000000000..5a89df14efa92527a2a2874edcd6b6452b0a3982 --- /dev/null +++ b/Config/Android_LenovoA3.ini @@ -0,0 +1,112 @@ +[/Script/AndroidRuntimeSettings.AndroidRuntimeSettings] +PackageName=com.cyberarch.samples.ue +StoreVersion=1 +StoreVersionOffsetArm64=0 +StoreVersionOffsetX8664=0 +ApplicationDisplayName=CyberArchWarehouse +VersionDisplayName=0.12.1 +MinSDKVersion=29 +TargetSDKVersion=29 +InstallLocation=InternalOnly +bEnableLint=False +bPackageDataInsideApk=True +bCreateAllPlatformsInstall=False +bDisableVerifyOBBOnStartUp=True +bForceSmallOBBFiles=False +bAllowLargeOBBFiles=False +bAllowPatchOBBFile=False +bAllowOverflowOBBFiles=False +bUseExternalFilesDir=False +bPublicLogFiles=True +Orientation=Landscape +MaxAspectRatio=10.000000 +bUseDisplayCutout=False +bRestoreNotificationsOnReboot=False +bFullScreen=True +bEnableNewKeyboard=True +DepthBufferPreference=Default +bValidateTextureFormats=True +bForceCompressNativeLibs=False +bEnableAdvancedBinaryCompression=False +bEnableBundle=False +bEnableUniversalAPK=True +bBundleABISplit=True +bBundleLanguageSplit=True +bBundleDensitySplit=True +ExtraManifestNodeTags= +ExtraManifestNodeTags=xmlns:tools="http://schemas.android.com/tools" +ExtraApplicationNodeTags= +ExtraApplicationSettings=<activity android:name="com.qualcomm.snapdragon.spaces.unrealcustomlauncher.SpacesLauncher" tools:node="merge">\n<intent-filter>\n<category android:name="android.intent.category.LAUNCHER" />\n</intent-filter>\n</activity> +ExtraActivitySettings= +ExtraPermissions=android.permission.READ_EXTERNAL_STORAGE +ExtraPermissions=android.permission.WRITE_EXTERNAL_STORAGE +ExtraPermissions=android.permission.SET_DEBUG_APP +bAndroidVoiceEnabled=False +bRemoveOSIG=False +KeyStore= +KeyAlias= +KeyStorePassword= +KeyPassword= +bBuildForArm64=True +bBuildForX8664=False +bBuildForES31=False +bSupportsVulkan=True +bSupportsVulkanSM5=False +DebugVulkanLayerDirectory=(Path="") +bAndroidOpenGLSupportsBackbufferSampling=False +bDetectVulkanByDefault=True +bBuildWithHiddenSymbolVisibility=False +bDisableStackProtector=False +bDisableLibCppSharedDependencyValidation=False +bSaveSymbols=False +bStripShaderReflection=True +bEnableGooglePlaySupport=False +bUseGetAccounts=False +GamesAppID= +bEnableSnapshots=False +bSupportAdMob=True +AdMobAdUnitID= +GooglePlayLicenseKey= +GCMClientSenderID= +bShowLaunchImage=False +bAllowIMU=False +bAllowControllers=True +bBlockAndroidKeysOnControllers=False +bControllersBlockDeviceFeedback=False +AndroidAudio=Default +AudioSampleRate=44100 +AudioCallbackBufferFrameSize=1024 +AudioNumBuffersToEnqueue=4 +AudioMaxChannels=0 +AudioNumSourceWorkers=0 +SpatializationPlugin= +SourceDataOverridePlugin= +ReverbPlugin= +OcclusionPlugin= +CompressionOverrides=(bOverrideCompressionTimes=False,DurationThreshold=5.000000,MaxNumRandomBranches=0,SoundCueQualityIndex=0) +CacheSizeKB=0 +MaxChunkSizeOverrideKB=0 +bResampleForDevice=False +SoundCueCookQualityIndex=-1 +MaxSampleRate=0.000000 +HighSampleRate=0.000000 +MedSampleRate=0.000000 +LowSampleRate=0.000000 +MinSampleRate=0.000000 +CompressionQualityModifier=0.000000 +AutoStreamingThreshold=0.000000 +AndroidGraphicsDebugger=None +MaliGraphicsDebuggerPath=(Path="") +bEnableMaliPerfCounters=False +bMultiTargetFormat_ETC2=True +bMultiTargetFormat_DXT=True +bMultiTargetFormat_ASTC=True +TextureFormatPriority_ETC2=0.200000 +TextureFormatPriority_DXT=0.600000 +TextureFormatPriority_ASTC=0.900000 +SDKAPILevelOverride= +NDKAPILevelOverride= +BuildToolsOverride= +bStreamLandscapeMeshLODs=False +bEnableDomStorage=False + diff --git a/Config/Android_Quest.ini b/Config/Android_Quest.ini new file mode 100644 index 0000000000000000000000000000000000000000..39bb4eac880468af3c0352eb02443031e95cd4aa --- /dev/null +++ b/Config/Android_Quest.ini @@ -0,0 +1,108 @@ +[/Script/AndroidRuntimeSettings.AndroidRuntimeSettings] +PackageName=com.FalconViz.ArHBIM +StoreVersion=1 +StoreVersionOffsetArm64=0 +StoreVersionOffsetX8664=0 +ApplicationDisplayName= +VersionDisplayName=1.0 +MinSDKVersion=29 +TargetSDKVersion=29 +InstallLocation=InternalOnly +bEnableLint=False +bPackageDataInsideApk=True +bCreateAllPlatformsInstall=False +bDisableVerifyOBBOnStartUp=False +bForceSmallOBBFiles=False +bAllowLargeOBBFiles=False +bAllowPatchOBBFile=False +bAllowOverflowOBBFiles=False +bUseExternalFilesDir=False +bPublicLogFiles=True +Orientation=SensorLandscape +MaxAspectRatio=2.100000 +bUseDisplayCutout=False +bRestoreNotificationsOnReboot=False +bFullScreen=True +bEnableNewKeyboard=True +DepthBufferPreference=Default +bValidateTextureFormats=True +bForceCompressNativeLibs=False +bEnableAdvancedBinaryCompression=False +bEnableBundle=False +bEnableUniversalAPK=True +bBundleABISplit=True +bBundleLanguageSplit=True +bBundleDensitySplit=True +ExtraApplicationSettings= +ExtraActivitySettings= +bAndroidVoiceEnabled=False +PackageForOculusMobile=Quest2 +PackageForOculusMobile=Quest +bRemoveOSIG=False +KeyStore= +KeyAlias= +KeyStorePassword= +KeyPassword= +bBuildForArm64=True +bBuildForX8664=False +bBuildForES31=True +bSupportsVulkan=True +bSupportsVulkanSM5=False +DebugVulkanLayerDirectory=(Path="") +bAndroidOpenGLSupportsBackbufferSampling=False +bDetectVulkanByDefault=True +bBuildWithHiddenSymbolVisibility=False +bDisableStackProtector=False +bDisableLibCppSharedDependencyValidation=False +bSaveSymbols=False +bStripShaderReflection=True +bEnableGooglePlaySupport=False +bUseGetAccounts=False +GamesAppID= +bEnableSnapshots=False +bSupportAdMob=True +AdMobAdUnitID= +GooglePlayLicenseKey= +GCMClientSenderID= +bShowLaunchImage=True +bAllowIMU=False +bAllowControllers=True +bBlockAndroidKeysOnControllers=False +bControllersBlockDeviceFeedback=False +AndroidAudio=Default +AudioSampleRate=44100 +AudioCallbackBufferFrameSize=1024 +AudioNumBuffersToEnqueue=4 +AudioMaxChannels=0 +AudioNumSourceWorkers=0 +SpatializationPlugin= +SourceDataOverridePlugin= +ReverbPlugin= +OcclusionPlugin= +CompressionOverrides=(bOverrideCompressionTimes=False,DurationThreshold=5.000000,MaxNumRandomBranches=0,SoundCueQualityIndex=0) +CacheSizeKB=65536 +MaxChunkSizeOverrideKB=0 +bResampleForDevice=False +SoundCueCookQualityIndex=-1 +MaxSampleRate=48000.000000 +HighSampleRate=32000.000000 +MedSampleRate=24000.000000 +LowSampleRate=12000.000000 +MinSampleRate=8000.000000 +CompressionQualityModifier=1.000000 +AutoStreamingThreshold=0.000000 +AndroidGraphicsDebugger=None +MaliGraphicsDebuggerPath=(Path="") +bEnableMaliPerfCounters=False +bMultiTargetFormat_ETC2=True +bMultiTargetFormat_DXT=True +bMultiTargetFormat_ASTC=True +TextureFormatPriority_ETC2=0.200000 +TextureFormatPriority_DXT=0.600000 +TextureFormatPriority_ASTC=0.900000 +SDKAPILevelOverride= +NDKAPILevelOverride= +BuildToolsOverride= +bStreamLandscapeMeshLODs=False +bEnableDomStorage=False + diff --git a/Config/DefaultEngine.ini b/Config/DefaultEngine.ini index 11e3847239c2d46ce7f3f9cfba7850e72e340beb..d8b600a50f4ce4acd9e04d075d4af5288dbc6fd1 100644 --- a/Config/DefaultEngine.ini +++ b/Config/DefaultEngine.ini @@ -1,5 +1,5 @@ [/Script/EngineSettings.GameMapsSettings] -GameDefaultMap=/CyberArchWarehouse/SpatialAnchorsSample/Maps/SA_Showcase.SA_Showcase +GameDefaultMap=/CyberArchWarehouse/xrPerson/Maps/EmptyStart.EmptyStart EditorStartupMap=/CyberArchWarehouse/xrPerson/Maps/EmptyStart.EmptyStart GlobalDefaultGameMode=/CyberArchWarehouse/xrPerson/Blueprints/BP_FirstPersonGameMode.BP_FirstPersonGameMode_C @@ -175,6 +175,8 @@ CommandletClass=Class'/Script/UnrealEd.WorldPartitionConvertCommandlet' [/Script/Engine.Engine] +ActiveGameNameRedirects=(OldGameName="TP_BlankBP",NewGameName="/Script/CyberProject") +ActiveGameNameRedirects=(OldGameName="/Script/TP_BlankBP",NewGameName="/Script/CyberProject") +NearClipPlane=0.100000 +LocalPlayerClassName=/Script/OffAxisProjection.OffAxisLocalPlayer [/Script/AndroidFileServerEditor.AndroidFileServerRuntimeSettings] bEnablePlugin=True @@ -198,29 +200,27 @@ bAnchorSupportEnabled=True bSupportExperimentalFeatures=True [/Script/AndroidRuntimeSettings.AndroidRuntimeSettings] -PackageName=com.FalconViz.ArHBIM +PackageName=com.cyberarch.samples.ue StoreVersion=1 -StoreVersionOffsetArmV7=0 StoreVersionOffsetArm64=0 StoreVersionOffsetX8664=0 -ApplicationDisplayName= -VersionDisplayName=1.0 +ApplicationDisplayName=CyberArchWarehouse +VersionDisplayName=0.12.1 MinSDKVersion=29 TargetSDKVersion=29 InstallLocation=InternalOnly -bEnableGradle=True bEnableLint=False bPackageDataInsideApk=True bCreateAllPlatformsInstall=False -bDisableVerifyOBBOnStartUp=False +bDisableVerifyOBBOnStartUp=True bForceSmallOBBFiles=False bAllowLargeOBBFiles=False bAllowPatchOBBFile=False bAllowOverflowOBBFiles=False bUseExternalFilesDir=False bPublicLogFiles=True -Orientation=SensorLandscape -MaxAspectRatio=2.100000 +Orientation=Landscape +MaxAspectRatio=10.000000 bUseDisplayCutout=False bRestoreNotificationsOnReboot=False bFullScreen=True @@ -234,8 +234,14 @@ bEnableUniversalAPK=True bBundleABISplit=True bBundleLanguageSplit=True bBundleDensitySplit=True -ExtraApplicationSettings= ++ExtraManifestNodeTags= ++ExtraManifestNodeTags=xmlns:tools="http://schemas.android.com/tools" ++ExtraApplicationNodeTags= +ExtraApplicationSettings=<activity android:name="com.qualcomm.snapdragon.spaces.unrealcustomlauncher.SpacesLauncher" tools:node="merge">\n<intent-filter>\n<category android:name="android.intent.category.LAUNCHER" />\n</intent-filter>\n</activity> ExtraActivitySettings= ++ExtraPermissions=android.permission.READ_EXTERNAL_STORAGE ++ExtraPermissions=android.permission.WRITE_EXTERNAL_STORAGE ++ExtraPermissions=android.permission.SET_DEBUG_APP bAndroidVoiceEnabled=False +PackageForOculusMobile=Quest2 +PackageForOculusMobile=Quest @@ -246,15 +252,17 @@ KeyStorePassword= KeyPassword= bBuildForArm64=True bBuildForX8664=False -bBuildForES31=True +bBuildForES31=False bSupportsVulkan=True bSupportsVulkanSM5=False DebugVulkanLayerDirectory=(Path="") bAndroidOpenGLSupportsBackbufferSampling=False bDetectVulkanByDefault=True bBuildWithHiddenSymbolVisibility=False +bDisableStackProtector=False +bDisableLibCppSharedDependencyValidation=False bSaveSymbols=False -bForceLDLinker=False +bStripShaderReflection=True bEnableGooglePlaySupport=False bUseGetAccounts=False GamesAppID= @@ -263,7 +271,7 @@ bSupportAdMob=True AdMobAdUnitID= GooglePlayLicenseKey= GCMClientSenderID= -bShowLaunchImage=True +bShowLaunchImage=False bAllowIMU=False bAllowControllers=True bBlockAndroidKeysOnControllers=False @@ -275,19 +283,20 @@ AudioNumBuffersToEnqueue=4 AudioMaxChannels=0 AudioNumSourceWorkers=0 SpatializationPlugin= +SourceDataOverridePlugin= ReverbPlugin= OcclusionPlugin= CompressionOverrides=(bOverrideCompressionTimes=False,DurationThreshold=5.000000,MaxNumRandomBranches=0,SoundCueQualityIndex=0) -CacheSizeKB=65536 +CacheSizeKB=0 MaxChunkSizeOverrideKB=0 bResampleForDevice=False SoundCueCookQualityIndex=-1 -MaxSampleRate=48000.000000 -HighSampleRate=32000.000000 -MedSampleRate=24000.000000 -LowSampleRate=12000.000000 -MinSampleRate=8000.000000 -CompressionQualityModifier=1.000000 +MaxSampleRate=0.000000 +HighSampleRate=0.000000 +MedSampleRate=0.000000 +LowSampleRate=0.000000 +MinSampleRate=0.000000 +CompressionQualityModifier=0.000000 AutoStreamingThreshold=0.000000 AndroidGraphicsDebugger=None MaliGraphicsDebuggerPath=(Path="") diff --git a/CyberProject.uproject b/CyberProject.uproject index 9c6fa35e9425aba8016029615693f7a6bae0f198..4eb1d59668e96ea0d63ac95ff04668101d4f5130 100644 --- a/CyberProject.uproject +++ b/CyberProject.uproject @@ -153,6 +153,10 @@ "Mac", "Linux" ] + }, + { + "Name": "freetrack", + "Enabled": true } ] } \ No newline at end of file diff --git a/Plugins/CyberArchWarehouse/Content/xrPerson/Blueprints/BP_VRPawn.uasset b/Plugins/CyberArchWarehouse/Content/xrPerson/Blueprints/BP_VRPawn.uasset index cb11008a6ff0007eeeee5df307b1770c6b9ae31b..db8ca33965acd5d4f46ba26bf47f5289203f3981 100644 --- a/Plugins/CyberArchWarehouse/Content/xrPerson/Blueprints/BP_VRPawn.uasset +++ b/Plugins/CyberArchWarehouse/Content/xrPerson/Blueprints/BP_VRPawn.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f9d9215ec34ca2a0c19a81a045a53efb8903fcb1bc422797f7d02de211cc2c47 -size 1018565 +oid sha256:5af711184298a3a3db083426073c6bc61f94f2f5da79bd320995273c418a0372 +size 1007405 diff --git a/Plugins/CyberArchWarehouse/Content/xrPerson/Blueprints/SplineNavigator.uasset b/Plugins/CyberArchWarehouse/Content/xrPerson/Blueprints/SplineNavigator.uasset index 0def16b46982a307d091e8a469b991ba2f85a72c..edd4403f305e80ae6baa4f598c05695f8ce24361 100644 --- a/Plugins/CyberArchWarehouse/Content/xrPerson/Blueprints/SplineNavigator.uasset +++ b/Plugins/CyberArchWarehouse/Content/xrPerson/Blueprints/SplineNavigator.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c11f348418d0cbd4d29477b24a000bb02dd4e6920ada9f6124b1fa20b9805d04 -size 397587 +oid sha256:c3163fe61dafe64876fe20a2a11d742b8ceda1809f9a4c4daa6fdb69514ca34b +size 385369 diff --git a/Plugins/CyberArchWarehouse/Content/xrPerson/Hands/HandSprayActor.uasset b/Plugins/CyberArchWarehouse/Content/xrPerson/Hands/HandSprayActor.uasset index 290f1ecc93ff3a1455c56bcc7de1f55ea1225f8d..3d47d6afd4d8e86ce3d7f05ec8acb806a025f225 100644 --- a/Plugins/CyberArchWarehouse/Content/xrPerson/Hands/HandSprayActor.uasset +++ b/Plugins/CyberArchWarehouse/Content/xrPerson/Hands/HandSprayActor.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9859e5ced1e376c66aa60321cb8c2ad24b08f9042a301cbba6d38451af92c2f0 -size 24091 +oid sha256:5c05247e4d897eef43d936829c7630703a0e119b23224044a249d0c99cf823e2 +size 22219 diff --git a/Plugins/CyberArchWarehouse/CyberArchWarehouse.uplugin b/Plugins/CyberArchWarehouse/CyberArchWarehouse.uplugin index 30c5925dcf22e5fc1f361afa41302378c55f6452..0d8fa17cde04f28793ff31958f8baf4c2e812e84 100644 --- a/Plugins/CyberArchWarehouse/CyberArchWarehouse.uplugin +++ b/Plugins/CyberArchWarehouse/CyberArchWarehouse.uplugin @@ -21,7 +21,10 @@ "Plugins": [ { "Name": "USDImporter", - "Enabled": true + "Enabled": true, + "PlatformAllowList": [ + "Win64" + ] } ] } \ No newline at end of file diff --git a/Plugins/CyberArchWarehouse/Source/CyberArchWarehouse/CyberArchWarehouse.Build.cs b/Plugins/CyberArchWarehouse/Source/CyberArchWarehouse/CyberArchWarehouse.Build.cs index 0ba98c91ed757f247725dc2ed78b6d3646642fb6..bb9b93303add1b45336d9880961abb752700d829 100644 --- a/Plugins/CyberArchWarehouse/Source/CyberArchWarehouse/CyberArchWarehouse.Build.cs +++ b/Plugins/CyberArchWarehouse/Source/CyberArchWarehouse/CyberArchWarehouse.Build.cs @@ -22,15 +22,6 @@ public class CyberArchWarehouse : ModuleRules "UMG", "Slate", "SlateCore", - "USDStage", - "UnrealUSDWrapper", - "USDUtilities", - "USDClasses", - "USDStageEditor", - "USDStageImporter", - "USDExporter", - "USDSchemas", - "USDTests", "ProceduralMeshComponent" } ); @@ -41,7 +32,19 @@ public class CyberArchWarehouse : ModuleRules { //RuntimeDependencies.Add("C:/Program Files/Epic Games/UE_5.1/Engine/Plugins/Importers/USDImporter/Binaries/Win64/UnrealEditor-UnrealUSDWrapper.dll"); //RuntimeDependencies.Add("C:/Program Files/Epic Games/UE_5.1/Engine/Plugins/Importers/USDImporter/Binaries/Win64/UnrealEditor - USDStage.dll"); - + PublicDependencyModuleNames.AddRange( + new string[] { + "USDStage", + "UnrealUSDWrapper", + "USDUtilities", + "USDClasses", + "USDStageEditor", + "USDStageImporter", + "USDExporter", + "USDSchemas", + "USDTests" + } + ); } } diff --git a/Plugins/Freetrack/Resources/Icon128.png b/Plugins/Freetrack/Resources/Icon128.png new file mode 100644 index 0000000000000000000000000000000000000000..d39bc4abb1bf82a043289cce0dd3fff77a78f29a Binary files /dev/null and b/Plugins/Freetrack/Resources/Icon128.png differ diff --git a/Plugins/Freetrack/Source/freetrack/Private/freetrackBPLibrary.cpp b/Plugins/Freetrack/Source/freetrack/Private/freetrackBPLibrary.cpp new file mode 100644 index 0000000000000000000000000000000000000000..d206b0e08b90680a5d8acee784bb34bc27d9d555 --- /dev/null +++ b/Plugins/Freetrack/Source/freetrack/Private/freetrackBPLibrary.cpp @@ -0,0 +1,39 @@ +#include "freetrackBPLibrary.h" + +void* UfreetrackBPLibrary::DLLHandle; +FreeTrackData UfreetrackBPLibrary::data; +FreeTrackData* UfreetrackBPLibrary::pData; + +typedef char*(*_FTProvider)(void); +typedef bool(*_FTGetData)(FreeTrackData * data); + +UfreetrackBPLibrary::UfreetrackBPLibrary(const FObjectInitializer& ObjectInitializer) +: Super(ObjectInitializer) +{ + FString filePath; + #if PLATFORM_64BITS + filePath = FPaths::Combine(*FPaths::ProjectPluginsDir(), TEXT("freetrack/"), TEXT("FreeTrackClient64.dll")); + #else + filePath = FPaths::Combine(*FPaths::GamePluginsDir(), TEXT("freetrack/"), TEXT("FreeTrackClient.dll")); + #endif + + if(!FPaths::FileExists(filePath)) + { + UE_LOG(LogTemp, Fatal, TEXT("%s not found"), *filePath); + }else{ + UE_LOG(LogTemp, Log, TEXT("loading freetrack")); + DLLHandle = FPlatformProcess::GetDllHandle(*filePath); + pData = &data; + }; +} + + +void UfreetrackBPLibrary::getFreetrackData(const float TranslationSensitivity, const float RotationSensitivity, FVector& translation, FRotator& rotation, bool& enabled){ + + _FTGetData FTGetData = NULL; + FString procName = "FTGetData"; + FTGetData = (_FTGetData)FPlatformProcess::GetDllExport(DLLHandle, *procName); // Export the DLL function. + enabled=FTGetData(pData); + translation = FVector(-data.z*TranslationSensitivity, -data.x*TranslationSensitivity, data.y*TranslationSensitivity); + rotation = FRotator(-data.pitch*RotationSensitivity, -data.yaw * RotationSensitivity, -data.roll * RotationSensitivity); +}; \ No newline at end of file diff --git a/Plugins/Freetrack/Source/freetrack/Private/freetrackP.cpp b/Plugins/Freetrack/Source/freetrack/Private/freetrackP.cpp new file mode 100644 index 0000000000000000000000000000000000000000..534f23368793ea1fc5a3a7e8d3fa19d5cbaf5f86 --- /dev/null +++ b/Plugins/Freetrack/Source/freetrack/Private/freetrackP.cpp @@ -0,0 +1,19 @@ +// Some copyright should be here... +#include "freetrack.h" + +#define LOCTEXT_NAMESPACE "FfreetrackModule" + +void FfreetrackModule::StartupModule() +{ + // This code will execute after your module is loaded into memory; the exact timing is specified in the .uplugin file per-module +} + +void FfreetrackModule::ShutdownModule() +{ + // This function may be called during shutdown to clean up your module. For modules that support dynamic reloading, + // we call this function before unloading the module. +} + +#undef LOCTEXT_NAMESPACE + +IMPLEMENT_MODULE(FfreetrackModule, freetrack) \ No newline at end of file diff --git a/Plugins/Freetrack/Source/freetrack/Public/freetrack.h b/Plugins/Freetrack/Source/freetrack/Public/freetrack.h new file mode 100644 index 0000000000000000000000000000000000000000..8f6fd0ae692bc70d89abee6f69e14c8b6575c848 --- /dev/null +++ b/Plugins/Freetrack/Source/freetrack/Public/freetrack.h @@ -0,0 +1,16 @@ +// Some copyright should be here... + +#pragma once + +#include "Modules/ModuleManager.h" + + + +class FfreetrackModule : public IModuleInterface +{ +public: + + /** IModuleInterface implementation */ + virtual void StartupModule() override; + virtual void ShutdownModule() override; +}; \ No newline at end of file diff --git a/Plugins/Freetrack/Source/freetrack/Public/freetrackBPLibrary.h b/Plugins/Freetrack/Source/freetrack/Public/freetrackBPLibrary.h new file mode 100644 index 0000000000000000000000000000000000000000..ad78aa2c0345ee10e58f87b60337c4369d73fd4e --- /dev/null +++ b/Plugins/Freetrack/Source/freetrack/Public/freetrackBPLibrary.h @@ -0,0 +1,64 @@ +#pragma once +#include "Engine.h" +#include "freetrackBPLibrary.generated.h" + +/* +* Function library class. +* Each function in it is expected to be static and represents blueprint node that can be called in any blueprint. +* +* When declaring function you can define metadata for the node. Key function specifiers will be BlueprintPure and BlueprintCallable. +* BlueprintPure - means the function does not affect the owning object in any way and thus creates a node without Exec pins. +* BlueprintCallable - makes a function which can be executed in Blueprints - Thus it has Exec pins. +* DisplayName - full name of the node, shown when you mouse over the node and in the blueprint drop down menu. +* Its lets you name the node using characters not allowed in C++ function names. +* CompactNodeTitle - the word(s) that appear on the node. +* Keywords - the list of keywords that helps you to find node when you search for it using Blueprint drop-down menu. +* Good example is "Print String" node which you can find also by using keyword "log". +* Category - the category your node will be under in the Blueprint drop-down menu. +* +* For more info on custom blueprint nodes visit documentation: +* https://wiki.unrealengine.com/Custom_Blueprint_Node_Creation +*/ + +typedef struct +{ + unsigned long int dataID; + long int camWidth; + long int camHeight; + + float yaw; + float pitch; + float roll; + float x; + float y; + float z; + + float rawyaw; + float rawpitch; + float rawroll; + float rawx; + float rawy; + float rawz; + + float x1; + float y1; + float x2; + float y2; + float x3; + float y3; + float x4; + float y4; +}FreeTrackData; + +UCLASS() +class UfreetrackBPLibrary : public UBlueprintFunctionLibrary +{ + GENERATED_UCLASS_BODY() + + static void* DLLHandle; + static FreeTrackData data; + static FreeTrackData *pData; + + UFUNCTION(BlueprintCallable, meta = (DisplayName = "get Freetrack Data", Keywords = "freetrack get data"), Category = "freetrack") + static void getFreetrackData(const float TranslationSensitivity, const float RotationSensitivity, FVector& translation, FRotator& rotation, bool& enabled); +}; \ No newline at end of file diff --git a/Plugins/Freetrack/Source/freetrack/freetrack.Build.cs b/Plugins/Freetrack/Source/freetrack/freetrack.Build.cs new file mode 100644 index 0000000000000000000000000000000000000000..694b79983810a0583a4501b7fa522d80b31587e6 --- /dev/null +++ b/Plugins/Freetrack/Source/freetrack/freetrack.Build.cs @@ -0,0 +1,57 @@ +// Some copyright should be here... + +using UnrealBuildTool; + +public class freetrack : ModuleRules +{ + public freetrack(ReadOnlyTargetRules Target) : base(Target) + { + + PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs; + + PublicIncludePaths.AddRange( + new string[] { + "freetrack/Public" + + // ... add public include paths required here ... + } + ); + + + PrivateIncludePaths.AddRange( + new string[] { + "freetrack/Private", + + // ... add other private include paths required here ... + } + ); + + + PublicDependencyModuleNames.AddRange( + new string[] + { + "Core", + + // ... add other public dependencies that you statically link with here ... + } + ); + + + PrivateDependencyModuleNames.AddRange( + new string[] + { + "CoreUObject", "Engine", "Slate", "SlateCore" + // ... add private dependencies that you statically link with here ... + } + ); + + + DynamicallyLoadedModuleNames.AddRange( + new string[] + { + + // ... add any modules that your module loads dynamically here ... + } + ); + } +} diff --git a/Plugins/Freetrack/freetrack.uplugin b/Plugins/Freetrack/freetrack.uplugin new file mode 100644 index 0000000000000000000000000000000000000000..9ce5c121a95e5f3cdb1404b742801e49fd114581 --- /dev/null +++ b/Plugins/Freetrack/freetrack.uplugin @@ -0,0 +1,27 @@ +{ + "FileVersion": 3, + "Version": 1, + "VersionName": "1.0", + "FriendlyName": "Freetrack", + "Description": "", + "Category": "Input Devices", + "CreatedBy": "worstplayer", + "CreatedByURL": "", + "DocsURL": "", + "MarketplaceURL": "", + "SupportURL": "", + "EngineVersion": "5.1.0", + "CanContainContent": true, + "IsBetaVersion": true, + "Installed": true, + "Modules": [ + { + "Name": "freetrack", + "Type": "Runtime", + "LoadingPhase": "Default", + "PlatformAllowList": [ + "Win64" + ] + } + ] +} \ No newline at end of file diff --git a/Plugins/Freetrack/freetrackclient64.dll b/Plugins/Freetrack/freetrackclient64.dll new file mode 100644 index 0000000000000000000000000000000000000000..e1074592661e622c459df3ef985a4d592a232da5 Binary files /dev/null and b/Plugins/Freetrack/freetrackclient64.dll differ diff --git a/Plugins/OffAxisProjection b/Plugins/OffAxisProjection new file mode 160000 index 0000000000000000000000000000000000000000..f6a13407cb0a0c39bb488286d3ace9ed2e3119bc --- /dev/null +++ b/Plugins/OffAxisProjection @@ -0,0 +1 @@ +Subproject commit f6a13407cb0a0c39bb488286d3ace9ed2e3119bc