From 6dcfa95abc8dfe16c2d082cf4549bf88b070d155 Mon Sep 17 00:00:00 2001 From: Mamadou Babaei Date: Tue, 24 Feb 2026 14:50:37 +0100 Subject: [PATCH] bump the senseglove unreal engine plugin to v2.8.0 --- Plugins/SenseGlove/Handbook/BSDmakefile | 2 +- Plugins/SenseGlove/Handbook/GNUmakefile | 17 +- .../Handbook/bin/sg-preprocessor.sh | 12 +- Plugins/SenseGlove/Handbook/book.toml | 8 +- Plugins/SenseGlove/Handbook/src/SUMMARY.md | 7 +- .../src/advanced-topics/openxr/README.md | 165 ++++- ...ingstate-animated-debug-virtual-hands.gif} | 0 .../consuming-fxrhandtrackingstate/README.md | 26 +- .../blueprint.md | 30 +- .../consuming-fxrhandtrackingstate/cpp.md | 30 +- .../README.md | 277 -------- .../blueprint.md | 65 -- ...rdata-blueprint-add-draw-hand-function.png | 3 - ...nt-add-get-motion-controller-data-node.png | 3 - ...eprint-break-xr-motion-controller-data.png | 3 - ...eprint-debug-virtual-hand-draw-options.png | 3 - ...a-blueprint-draw-debug-gizmo-per-joint.png | 3 - ...rint-draw-hand-function-implementation.png | 3 - ...-blueprint-get-joint-position-rotation.png | 3 - ...ontrollerdata-blueprint-representation.png | 3 - ...ioncontrollerdata-blueprint-validation.png | 3 - ...-vrpawn-draw-virtual-hands-every-frame.png | 3 - ...ntrollerdata-cpp-add-class-choose-name.png | 3 - ...rollerdata-cpp-add-class-choose-parent.png | 3 - ...-fxrmotioncontrollerdata-cpp-new-class.png | 3 - ...controllerdata-cpp-reparent-debug-pawn.png | 3 - ...g-fxrmotioncontrollerdata-cpp-reparent.png | 3 - ...controllerdata-cpp-verify-parent-class.png | 3 - .../consuming-fxrmotioncontrollerdata/cpp.md | 266 -------- ...bling-senseglove-unrealp-engine-plugin.png | 3 - .../openxr/third-party-integrations/README.md | 2 +- .../README.md | 41 ++ .../sghandtrackercomponent/README.md | 78 +++ .../sghandtrackercomponent-add-component.png | 3 + ...sghandtrackercomponent-added-component.png | 3 + ...kercomponent-details-panel-uproperties.png | 3 + .../sghandtrackercomponent-functions.png | 3 + ...ackercomponent-get-hand-tracking-state.png | 3 + ...nent-debug-hand-visualization-settings.png | 3 + .../sghapticscomponent/README.md | 574 +++++++++++++++++ .../sghapticscomponent-add-component.png | 3 + .../sghapticscomponent-added-component.png | 3 + ...onent-blueprint-example-force-feedback.png | 3 + ...mponent-blueprint-example-vibrotactile.png | 3 + ...ponent-blueprint-example-wrist-squeeze.png | 3 + ...nt-function-queue-force-feedback-level.png | 3 + ...t-function-queue-force-feedback-levels.png | 3 + ...t-blueprint-function-queue-vibro-level.png | 3 + ...-blueprint-function-queue-vibro-levels.png | 3 + ...blueprint-function-queue-wrist-squeeze.png | 3 + ...lueprint-function-send-custom-waveform.png | 3 + ...ponent-blueprint-function-send-haptics.png | 3 + ...ponent-blueprint-function-stop-haptics.png | 3 + ...ent-blueprint-function-stop-vibrations.png | 3 + ...rint-function-supports-custom-waveform.png | 3 + ...eprint-function-supports-wrist-squeeze.png | 3 + ...icscomponent-details-panel-uproperties.png | 3 + .../sghapticscomponent-functions1.png | 3 + .../sghapticscomponent-functions2.png | 3 + .../README.md | 594 ++++++++++++++++++ .../sgpawn-event-on-actor-begin-touch.png | 3 + .../sgpawn-event-on-actor-end-touch.png | 3 + .../sgpawn-event-on-actor-grabbed.png | 3 + .../sgpawn-event-on-actor-released.png | 3 + .../sgpawn-event-on-grab-state-updated.png | 3 + .../sgpawn-event-on-touch-state-updated.png | 3 + .../sgpawn-events.png | 3 + ...gpawn-grab-release-related-functions-1.png | 3 + ...gpawn-grab-release-related-functions-2.png | 3 + .../sgpawn-grab-touch-colliders.png | 3 + .../Handbook/src/appendix/changelog.md | 72 ++- .../Handbook/src/appendix/extra-resources.md | 10 +- .../planned-features-completion-status.md | 7 +- .../src/appendix/platform-support-matrix.md | 8 +- .../README.md | 10 +- .../pcvr-mode/README.md | 4 +- .../standalone-mode/README.md | 2 +- .../setup-virtual-hand-meshes/README.md | 4 +- .../Handbook/src/license/senseglove-sdk.md | 2 +- .../senseglove-unreal-engine-handbook.md | 2 +- .../senseglove-unreal-engine-plugin.md | 2 +- .../android-standalone-deployment/README.md | 2 +- .../Handbook/src/misc/upgrade-guide/README.md | 57 +- .../Handbook/src/overview/README.md | 7 +- .../plugin-settings/virtual-hand/mesh.md | 6 +- Plugins/SenseGlove/Packager/sgum-packager | 4 +- Plugins/SenseGlove/Packager/sgum-packager.exe | 4 +- Plugins/SenseGlove/Packager/sgum-packager.yml | 13 +- Plugins/SenseGlove/SenseGlove.uplugin | 2 +- .../Source/SenseGlove/Private/SenseGlove.cpp | 2 +- .../Source/SenseGlove/Private/SenseGlove.h | 2 +- .../Animation/SGVirtualHandAnimInstance.cpp | 2 +- .../SGVirtualHandAnimInstanceProxy.cpp | 35 +- .../SenseGlove/Components/SGGrabComponent.cpp | 2 +- .../Components/SGHandTrackerComponent.cpp | 181 ++++++ .../Components/SGHapticsComponent.cpp | 276 ++++++++ .../Components/SGTouchComponent.cpp | 2 +- .../Components/SGVirtualHandComponent.cpp | 118 ++-- .../Components/SGWristTrackerComponent.cpp | 56 +- .../SenseGlove/Engine/SGGameInstance.cpp | 2 +- .../GameFramework/SGGameModeBase.cpp | 2 +- .../GameFramework/SGGameUserSettings.cpp | 11 +- .../SenseGlove/GameFramework/SGPawn.cpp | 10 +- .../GameFramework/SGPlayerController.cpp | 12 +- .../SenseGlove/Haptics/SGGrabState.cpp | 2 +- .../SenseGlove/Haptics/SGTouchState.cpp | 2 +- .../SenseGlove/Private/SenseGloveModule.cpp | 2 +- .../SenseGlove/Private/SenseGloveModule.h | 2 +- .../Animation/SGVirtualHandAnimInstance.h | 2 +- .../SGVirtualHandAnimInstanceProxy.h | 13 +- .../SenseGlove/Components/SGGrabComponent.h | 4 +- .../Components/SGHandTrackerComponent.h | 119 ++++ .../Components/SGHapticsComponent.h | 215 +++++++ .../SenseGlove/Components/SGTouchComponent.h | 4 +- .../Components/SGVirtualHandComponent.h | 12 +- .../Components/SGWristTrackerComponent.h | 6 +- .../Public/SenseGlove/Engine/SGGameInstance.h | 2 +- .../SenseGlove/GameFramework/SGGameModeBase.h | 2 +- .../GameFramework/SGGameUserSettings.h | 2 +- .../Public/SenseGlove/GameFramework/SGPawn.h | 2 +- .../GameFramework/SGPlayerController.h | 2 +- .../Public/SenseGlove/Haptics/SGGrabState.h | 2 +- .../Public/SenseGlove/Haptics/SGTouchState.h | 2 +- .../Source/SenseGlove/SenseGlove.Build.cs | 2 +- .../SGAndroid/SGAndroidPermissions.cpp | 2 +- .../Private/SGAndroid/SGConnectJNI.cpp | 2 +- .../Private/SGAndroid/SGCoreJNI.cpp | 2 +- .../Private/SenseGloveAndroid.cpp | 2 +- .../Private/SenseGloveAndroid.h | 2 +- .../Private/SenseGloveAndroidModule.cpp | 2 +- .../Private/SenseGloveAndroidModule.h | 2 +- .../Public/SGAndroid/SGAndroidPermissions.h | 2 +- .../Public/SGAndroid/SGConnectJNI.h | 2 +- .../Public/SGAndroid/SGCoreJNI.h | 2 +- .../SenseGloveAndroid.Build.cs | 2 +- .../SenseGloveAndroid_UPL.xml | 2 +- .../Private/SGBackend/SGBackend.cpp | 2 +- .../Private/SenseGloveBackend.cpp | 2 +- .../Private/SenseGloveBackend.h | 2 +- .../Private/SenseGloveBackendModule.cpp | 2 +- .../Private/SenseGloveBackendModule.h | 2 +- .../Public/SGBackend/SGBackend.h | 2 +- .../SenseGloveBackend.Build.cs | 2 +- .../SGBackendKismetLibrary.cpp | 2 +- .../Private/SenseGloveBackendKismet.cpp | 2 +- .../Private/SenseGloveBackendKismet.h | 2 +- .../Private/SenseGloveBackendKismetModule.cpp | 2 +- .../Private/SenseGloveBackendKismetModule.h | 2 +- .../SGBackendKismet/SGBackendKismetLibrary.h | 2 +- .../SenseGloveBackendKismet.Build.cs | 2 +- .../Private/SGBuildHacks/SGDisable_C4263.cpp | 2 +- .../Private/SGBuildHacks/SGDisable_C4264.cpp | 2 +- .../Private/SGBuildHacks/SGDisable_C4706.cpp | 2 +- .../Private/SGBuildHacks/SGDisable_C4800.cpp | 2 +- .../SGInclude_Connect_Android.cpp | 2 +- .../SGInclude_Connect_SGConnect.cpp | 2 +- .../SGBuildHacks/SGInclude_Core_Anatomy.cpp | 2 +- .../SGBuildHacks/SGInclude_Core_Android.cpp | 2 +- .../SGInclude_Core_BasicHandModel.cpp | 2 +- .../SGInclude_Core_BetaDevice.cpp | 2 +- .../SGInclude_Core_CustomWaveform.cpp | 2 +- .../SGInclude_Core_DeviceList.cpp | 2 +- .../SGInclude_Core_DeviceModel.cpp | 2 +- .../SGBuildHacks/SGInclude_Core_Fingers.cpp | 2 +- .../SGInclude_Core_HandInterpolator.cpp | 2 +- .../SGBuildHacks/SGInclude_Core_HandLayer.cpp | 2 +- .../SGBuildHacks/SGInclude_Core_HandPose.cpp | 2 +- .../SGInclude_Core_HapticChannelInfo.cpp | 2 +- .../SGInclude_Core_HapticGlove.cpp | 2 +- .../SGInclude_Core_InterpolationSet.cpp | 2 +- .../SGInclude_Core_JointKinematics.cpp | 2 +- .../SGBuildHacks/SGInclude_Core_Library.cpp | 2 +- .../SGInclude_Core_NormalizationState.cpp | 2 +- .../SGInclude_Core_Nova2Glove.cpp | 2 +- .../SGInclude_Core_Nova2GloveSensorData.cpp | 2 +- .../SGBuildHacks/SGInclude_Core_NovaGlove.cpp | 2 +- .../SGInclude_Core_NovaGloveInfo.cpp | 2 +- .../SGInclude_Core_NovaGloveSensorData.cpp | 2 +- .../SGInclude_Core_NovaGloveVars.cpp | 2 +- .../SGBuildHacks/SGInclude_Core_Quat.cpp | 2 +- .../SGBuildHacks/SGInclude_Core_SGDevice.cpp | 2 +- .../SGBuildHacks/SGInclude_Core_SenseCom.cpp | 2 +- .../SGInclude_Core_SenseGlove.cpp | 2 +- .../SGInclude_Core_SenseGloveInfo.cpp | 2 +- .../SGInclude_Core_SenseGlovePose.cpp | 2 +- .../SGInclude_Core_SenseGloveSensorData.cpp | 2 +- ...nclude_Core_SenseGloveSensorNormalizer.cpp | 2 +- ...GInclude_Core_SenseGloveThumperCommand.cpp | 2 +- .../SGInclude_Core_SenseGloveVars.cpp | 2 +- .../SGInclude_Core_SensorNormalization.cpp | 2 +- .../SGInclude_Core_ThresholdCommand.cpp | 2 +- .../SGBuildHacks/SGInclude_Core_Tracking.cpp | 2 +- .../SGBuildHacks/SGInclude_Core_Vect3D.cpp | 2 +- .../SGBuildHacks/SGInclude_Windows.cpp | 2 +- .../Private/SGBuildHacks/SGPlatform.cpp | 2 +- .../Private/SGBuildHacks/SGRestore_C4263.cpp | 2 +- .../Private/SGBuildHacks/SGRestore_C4264.cpp | 2 +- .../Private/SGBuildHacks/SGRestore_C4706.cpp | 2 +- .../Private/SGBuildHacks/SGRestore_C4800.cpp | 2 +- .../Private/SGBuildHacks/SGRestore_TEXT.cpp | 2 +- .../Private/SGBuildHacks/SGRestore_check.cpp | 2 +- .../Private/SGBuildHacks/SGUndef_TEXT.cpp | 2 +- .../Private/SGBuildHacks/SGUndef_check.cpp | 2 +- .../Private/SenseGloveBuildHacks.cpp | 2 +- .../Private/SenseGloveBuildHacks.h | 2 +- .../Private/SenseGloveBuildHacksModule.cpp | 2 +- .../Private/SenseGloveBuildHacksModule.h | 2 +- .../Public/SGBuildHacks/SGDisable_C4263.h | 2 +- .../Public/SGBuildHacks/SGDisable_C4264.h | 2 +- .../Public/SGBuildHacks/SGDisable_C4706.h | 2 +- .../Public/SGBuildHacks/SGDisable_C4800.h | 2 +- .../SGDisable_Woverloaded_virtual.h | 2 +- .../SGBuildHacks/SGInclude_Connect_Android.h | 2 +- .../SGInclude_Connect_SGConnect.h | 2 +- .../SGBuildHacks/SGInclude_Core_Anatomy.h | 2 +- .../SGBuildHacks/SGInclude_Core_Android.h | 2 +- .../SGInclude_Core_BasicHandModel.h | 2 +- .../SGBuildHacks/SGInclude_Core_BetaDevice.h | 2 +- .../SGInclude_Core_CustomWaveform.h | 2 +- .../SGBuildHacks/SGInclude_Core_DeviceList.h | 2 +- .../SGBuildHacks/SGInclude_Core_DeviceModel.h | 2 +- .../SGBuildHacks/SGInclude_Core_Fingers.h | 2 +- .../SGInclude_Core_HandInterpolator.h | 2 +- .../SGBuildHacks/SGInclude_Core_HandLayer.h | 2 +- .../SGBuildHacks/SGInclude_Core_HandPose.h | 2 +- .../SGInclude_Core_HapticChannelInfo.h | 2 +- .../SGBuildHacks/SGInclude_Core_HapticGlove.h | 2 +- .../SGInclude_Core_InterpolationSet.h | 2 +- .../SGInclude_Core_JointKinematics.h | 2 +- .../SGBuildHacks/SGInclude_Core_Library.h | 2 +- .../SGInclude_Core_NormalizationState.h | 2 +- .../SGBuildHacks/SGInclude_Core_Nova2Glove.h | 2 +- .../SGInclude_Core_Nova2GloveSensorData.h | 2 +- .../SGBuildHacks/SGInclude_Core_NovaGlove.h | 2 +- .../SGInclude_Core_NovaGloveInfo.h | 2 +- .../SGInclude_Core_NovaGloveSensorData.h | 2 +- .../SGInclude_Core_NovaGloveVars.h | 2 +- .../Public/SGBuildHacks/SGInclude_Core_Quat.h | 2 +- .../SGBuildHacks/SGInclude_Core_SGDevice.h | 2 +- .../SGBuildHacks/SGInclude_Core_SenseCom.h | 2 +- .../SGBuildHacks/SGInclude_Core_SenseGlove.h | 2 +- .../SGInclude_Core_SenseGloveInfo.h | 2 +- .../SGInclude_Core_SenseGlovePose.h | 2 +- .../SGInclude_Core_SenseGloveSensorData.h | 2 +- ...GInclude_Core_SenseGloveSensorNormalizer.h | 2 +- .../SGInclude_Core_SenseGloveThumperCommand.h | 2 +- .../SGInclude_Core_SenseGloveVars.h | 2 +- .../SGInclude_Core_SensorNormalization.h | 2 +- .../SGInclude_Core_ThresholdCommand.h | 2 +- .../SGBuildHacks/SGInclude_Core_Tracking.h | 2 +- .../SGBuildHacks/SGInclude_Core_Vect3D.h | 2 +- .../Public/SGBuildHacks/SGInclude_Windows.h | 2 +- .../Public/SGBuildHacks/SGPlatform.h | 2 +- .../Public/SGBuildHacks/SGRestore_C4263.h | 2 +- .../Public/SGBuildHacks/SGRestore_C4264.h | 2 +- .../Public/SGBuildHacks/SGRestore_C4706.h | 2 +- .../Public/SGBuildHacks/SGRestore_C4800.h | 2 +- .../Public/SGBuildHacks/SGRestore_TEXT.h | 2 +- .../SGRestore_Woverloaded_virtual.h | 2 +- .../Public/SGBuildHacks/SGRestore_check.h | 2 +- .../Public/SGBuildHacks/SGUndef_TEXT.h | 2 +- .../Public/SGBuildHacks/SGUndef_check.h | 2 +- .../SenseGloveBuildHacks.Build.cs | 2 +- .../Private/SGConnect/SGConnect.cpp | 2 +- .../Private/SenseGloveConnect.cpp | 2 +- .../Private/SenseGloveConnect.h | 2 +- .../Private/SenseGloveConnectModule.cpp | 2 +- .../Private/SenseGloveConnectModule.h | 2 +- .../Public/SGConnect/SGConnect.h | 2 +- .../SenseGloveConnect.Build.cs | 2 +- .../Private/SGConnectImpl/SGConnectImpl.cpp | 2 +- .../SGConnectImpl/SGExportedFunctions.cpp | 2 +- .../Private/SenseGloveConnectImpl.cpp | 2 +- .../Private/SenseGloveConnectImpl.h | 2 +- .../Private/SenseGloveConnectImplModule.cpp | 2 +- .../Private/SenseGloveConnectImplModule.h | 2 +- .../Public/SGConnectImpl/SGConnectImpl.h | 2 +- .../SGConnectImpl/SGExportedFunctions.h | 2 +- .../SenseGloveConnectImpl.Build.cs | 2 +- .../SGConnectKismetLibrary.cpp | 2 +- .../Private/SenseGloveConnectKismet.cpp | 2 +- .../Private/SenseGloveConnectKismet.h | 2 +- .../Private/SenseGloveConnectKismetModule.cpp | 2 +- .../Private/SenseGloveConnectKismetModule.h | 2 +- .../SGConnectKismet/SGConnectKismetLibrary.h | 2 +- .../SenseGloveConnectKismet.Build.cs | 2 +- .../Private/SGCore/SGAnatomy.cpp | 2 +- .../Private/SGCore/SGBasicHandModel.cpp | 2 +- .../Private/SGCore/SGBetaDevice.cpp | 2 +- .../SenseGloveCore/Private/SGCore/SGCore.cpp | 2 +- .../Private/SGCore/SGCustomWaveform.cpp | 2 +- .../Private/SGCore/SGDevice.cpp | 2 +- .../Private/SGCore/SGDeviceImplCast.cpp | 2 +- .../Private/SGCore/SGDeviceImplCast.h | 2 +- .../Private/SGCore/SGDeviceList.cpp | 2 +- .../Private/SGCore/SGDeviceModel.cpp | 2 +- .../Private/SGCore/SGHandInterpolator.cpp | 2 +- .../Private/SGCore/SGHandLayer.cpp | 21 +- .../Private/SGCore/SGHandPose.cpp | 2 +- .../Private/SGCore/SGHapticChannelInfo.cpp | 2 +- .../Private/SGCore/SGHapticGlove.cpp | 2 +- .../Private/SGCore/SGInterpolationSet.cpp | 2 +- .../SGCore/SGInterpolationSetArray.cpp | 2 +- .../Private/SGCore/SGJointKinematics.cpp | 2 +- .../Private/SGCore/SGLibrary.cpp | 2 +- .../Private/SGCore/SGNova2Glove.cpp | 2 +- .../Private/SGCore/SGNova2GloveSensorData.cpp | 2 +- .../Private/SGCore/SGNovaGlove.cpp | 2 +- .../Private/SGCore/SGNovaGloveInfo.cpp | 2 +- .../Private/SGCore/SGNovaGloveSensorData.cpp | 2 +- .../Private/SGCore/SGSenseCom.cpp | 2 +- .../Private/SGCore/SGSenseGlove.cpp | 2 +- .../Private/SGCore/SGSenseGloveInfo.cpp | 2 +- .../Private/SGCore/SGSenseGlovePose.cpp | 2 +- .../Private/SGCore/SGSenseGloveSensorData.cpp | 2 +- .../SGCore/SGSenseGloveSensorNormalizer.cpp | 2 +- .../Private/SGCore/SGSenseGloveVars.cpp | 2 +- .../Private/SGCore/SGSensorNormalization.cpp | 2 +- .../Private/SGCore/SGThresholdCommand.cpp | 2 +- .../Private/SGCore/SGTracking.cpp | 2 +- .../SenseGloveCore/Private/SenseGloveCore.cpp | 2 +- .../SenseGloveCore/Private/SenseGloveCore.h | 2 +- .../Private/SenseGloveCoreModule.cpp | 2 +- .../Private/SenseGloveCoreModule.h | 2 +- .../SenseGloveCore/Public/SGCore/SGAnatomy.h | 2 +- .../Public/SGCore/SGBasicHandModel.h | 2 +- .../Public/SGCore/SGBetaDevice.h | 2 +- .../SenseGloveCore/Public/SGCore/SGCore.h | 2 +- .../Public/SGCore/SGCustomWaveform.h | 2 +- .../SenseGloveCore/Public/SGCore/SGDevice.h | 2 +- .../Public/SGCore/SGDeviceList.h | 2 +- .../Public/SGCore/SGDeviceModel.h | 2 +- .../Public/SGCore/SGHandInterpolator.h | 2 +- .../Public/SGCore/SGHandLayer.h | 19 +- .../SenseGloveCore/Public/SGCore/SGHandPose.h | 2 +- .../Public/SGCore/SGHapticChannelInfo.h | 2 +- .../Public/SGCore/SGHapticGlove.h | 2 +- .../Public/SGCore/SGInterpolationSet.h | 2 +- .../Public/SGCore/SGInterpolationSetArray.h | 2 +- .../Public/SGCore/SGJointKinematics.h | 2 +- .../SenseGloveCore/Public/SGCore/SGLibrary.h | 2 +- .../Public/SGCore/SGNova2Glove.h | 2 +- .../Public/SGCore/SGNova2GloveSensorData.h | 2 +- .../Public/SGCore/SGNovaGlove.h | 2 +- .../Public/SGCore/SGNovaGloveInfo.h | 2 +- .../Public/SGCore/SGNovaGloveSensorData.h | 2 +- .../SenseGloveCore/Public/SGCore/SGSenseCom.h | 2 +- .../Public/SGCore/SGSenseGlove.h | 2 +- .../Public/SGCore/SGSenseGloveInfo.h | 2 +- .../Public/SGCore/SGSenseGlovePose.h | 2 +- .../Public/SGCore/SGSenseGloveSensorData.h | 2 +- .../SGCore/SGSenseGloveSensorNormalizer.h | 2 +- .../Public/SGCore/SGSenseGloveVars.h | 2 +- .../Public/SGCore/SGSensorNormalization.h | 2 +- .../Public/SGCore/SGThresholdCommand.h | 2 +- .../SenseGloveCore/Public/SGCore/SGTracking.h | 2 +- .../SenseGloveCore/SenseGloveCore.Build.cs | 2 +- .../Private/SGCoreImpl/SGAnatomyImpl.cpp | 2 +- .../SGCoreImpl/SGBasicHandModelImpl.cpp | 2 +- .../Private/SGCoreImpl/SGBetaDeviceImpl.cpp | 2 +- .../Private/SGCoreImpl/SGCoreEnumCast.cpp | 2 +- .../Private/SGCoreImpl/SGCoreEnumCast.h | 2 +- .../SGCoreImpl/SGCustomWaveformImpl.cpp | 2 +- .../Private/SGCoreImpl/SGDeviceImpl.cpp | 2 +- .../Private/SGCoreImpl/SGDeviceListImpl.cpp | 2 +- .../Private/SGCoreImpl/SGDeviceModelImpl.cpp | 2 +- .../SGCoreImpl/SGExportedFunctions.cpp | 2 +- .../SGCoreImpl/SGHandInterpolatorImpl.cpp | 2 +- .../Private/SGCoreImpl/SGHandLayerImpl.cpp | 2 +- .../Private/SGCoreImpl/SGHandPoseImpl.cpp | 2 +- .../SGCoreImpl/SGHapticChannelInfoImpl.cpp | 2 +- .../Private/SGCoreImpl/SGHapticGloveImpl.cpp | 2 +- .../SGCoreImpl/SGInterpolationSetImpl.cpp | 2 +- .../SGCoreImpl/SGJointKinematicsImpl.cpp | 2 +- .../Private/SGCoreImpl/SGLibraryImpl.cpp | 2 +- .../Private/SGCoreImpl/SGNova2GloveImpl.cpp | 2 +- .../SGCoreImpl/SGNova2GloveSensorDataImpl.cpp | 2 +- .../Private/SGCoreImpl/SGNovaGloveImpl.cpp | 2 +- .../SGCoreImpl/SGNovaGloveInfoImpl.cpp | 2 +- .../SGCoreImpl/SGNovaGloveSensorDataImpl.cpp | 2 +- .../Private/SGCoreImpl/SGQuatImpl.cpp | 2 +- .../Private/SGCoreImpl/SGQuatImpl.h | 2 +- .../Private/SGCoreImpl/SGSenseComImpl.cpp | 2 +- .../Private/SGCoreImpl/SGSenseGloveImpl.cpp | 2 +- .../SGCoreImpl/SGSenseGloveInfoImpl.cpp | 2 +- .../SGCoreImpl/SGSenseGlovePoseImpl.cpp | 2 +- .../SGCoreImpl/SGSenseGloveSensorDataImpl.cpp | 2 +- .../SGSenseGloveSensorNormalizerImpl.cpp | 2 +- .../SGCoreImpl/SGSenseGloveVarsImpl.cpp | 2 +- .../SGCoreImpl/SGSensorNormalizationImpl.cpp | 2 +- .../SGCoreImpl/SGThresholdCommandImpl.cpp | 2 +- .../Private/SGCoreImpl/SGTrackingImpl.cpp | 2 +- .../Private/SGCoreImpl/SGVect3DImpl.cpp | 2 +- .../Private/SGCoreImpl/SGVect3DImpl.h | 2 +- .../Private/SenseGloveCoreImpl.cpp | 2 +- .../Private/SenseGloveCoreImpl.h | 2 +- .../Private/SenseGloveCoreImplModule.cpp | 2 +- .../Private/SenseGloveCoreImplModule.h | 2 +- .../Public/SGCoreImpl/SGAnatomyImpl.h | 2 +- .../Public/SGCoreImpl/SGBasicHandModelImpl.h | 2 +- .../Public/SGCoreImpl/SGBetaDeviceImpl.h | 2 +- .../Public/SGCoreImpl/SGCustomWaveformImpl.h | 2 +- .../Public/SGCoreImpl/SGDeviceImpl.h | 2 +- .../Public/SGCoreImpl/SGDeviceListImpl.h | 2 +- .../Public/SGCoreImpl/SGDeviceModelImpl.h | 2 +- .../Public/SGCoreImpl/SGExportedFunctions.h | 2 +- .../SGCoreImpl/SGHandInterpolatorImpl.h | 2 +- .../Public/SGCoreImpl/SGHandLayerImpl.h | 2 +- .../Public/SGCoreImpl/SGHandPoseImpl.h | 2 +- .../SGCoreImpl/SGHapticChannelInfoImpl.h | 2 +- .../Public/SGCoreImpl/SGHapticGloveImpl.h | 2 +- .../SGCoreImpl/SGInterpolationSetImpl.h | 2 +- .../Public/SGCoreImpl/SGJointKinematicsImpl.h | 2 +- .../Public/SGCoreImpl/SGLibraryImpl.h | 2 +- .../Public/SGCoreImpl/SGNova2GloveImpl.h | 2 +- .../SGCoreImpl/SGNova2GloveSensorDataImpl.h | 2 +- .../Public/SGCoreImpl/SGNovaGloveImpl.h | 2 +- .../Public/SGCoreImpl/SGNovaGloveInfoImpl.h | 2 +- .../SGCoreImpl/SGNovaGloveSensorDataImpl.h | 2 +- .../Public/SGCoreImpl/SGSenseComImpl.h | 2 +- .../Public/SGCoreImpl/SGSenseGloveImpl.h | 2 +- .../Public/SGCoreImpl/SGSenseGloveInfoImpl.h | 2 +- .../Public/SGCoreImpl/SGSenseGlovePoseImpl.h | 2 +- .../SGCoreImpl/SGSenseGloveSensorDataImpl.h | 2 +- .../SGSenseGloveSensorNormalizerImpl.h | 2 +- .../Public/SGCoreImpl/SGSenseGloveVarsImpl.h | 2 +- .../SGCoreImpl/SGSensorNormalizationImpl.h | 2 +- .../SGCoreImpl/SGThresholdCommandImpl.h | 2 +- .../Public/SGCoreImpl/SGTrackingImpl.h | 2 +- .../SenseGloveCoreImpl.Build.cs | 2 +- .../SGCoreKismet/SGAnatomyKismetLibrary.cpp | 2 +- .../SGBasicHandModelKismetLibrary.cpp | 2 +- .../SGBetaDeviceKismetLibrary.cpp | 2 +- .../SGCustomWaveformKismetLibrary.cpp | 2 +- .../SGCoreKismet/SGDeviceKismetLibrary.cpp | 2 +- .../SGDeviceListKismetLibrary.cpp | 2 +- .../SGDeviceModelKismetLibrary.cpp | 2 +- .../SGHandInterpolatorKismetLibrary.cpp | 2 +- .../SGCoreKismet/SGHandLayerKismetLibrary.cpp | 21 +- .../SGCoreKismet/SGHandPoseKismetLibrary.cpp | 2 +- .../SGHapticChannelInfoKismetLibrary.cpp | 2 +- .../SGHapticGloveKismetLibrary.cpp | 2 +- .../SGInterpolationSetKismetLibrary.cpp | 2 +- .../SGJointKinematicsKismetLibrary.cpp | 2 +- .../SGCoreKismet/SGLibraryKismetLibrary.cpp | 2 +- .../SGNova2GloveKismetLibrary.cpp | 2 +- .../SGNova2GloveSensorDataKismetLibrary.cpp | 2 +- .../SGNovaGloveInfoKismetLibrary.cpp | 2 +- .../SGCoreKismet/SGNovaGloveKismetLibrary.cpp | 2 +- .../SGNovaGloveSensorDataKismetLibrary.cpp | 2 +- .../SGCoreKismet/SGSenseComKismetLibrary.cpp | 2 +- .../SGSenseGloveInfoKismetLibrary.cpp | 2 +- .../SGSenseGloveKismetLibrary.cpp | 2 +- .../SGSenseGlovePoseKismetLibrary.cpp | 2 +- .../SGSenseGloveSensorDataKismetLibrary.cpp | 2 +- ...enseGloveSensorNormalizerKismetLibrary.cpp | 2 +- .../SGSenseGloveVarsKismetLibrary.cpp | 2 +- .../SGSensorNormalizationKismetLibrary.cpp | 2 +- .../SGThresholdCommandKismetLibrary.cpp | 2 +- .../SGCoreKismet/SGTrackingKismetLibrary.cpp | 2 +- .../Private/SenseGloveCoreKismet.cpp | 2 +- .../Private/SenseGloveCoreKismet.h | 2 +- .../Private/SenseGloveCoreKismetModule.cpp | 2 +- .../Private/SenseGloveCoreKismetModule.h | 2 +- .../SGCoreKismet/SGAnatomyKismetLibrary.h | 2 +- .../SGBasicHandModelKismetLibrary.h | 2 +- .../SGCoreKismet/SGBetaDeviceKismetLibrary.h | 2 +- .../SGCustomWaveformKismetLibrary.h | 2 +- .../SGCoreKismet/SGDeviceKismetLibrary.h | 2 +- .../SGCoreKismet/SGDeviceListKismetLibrary.h | 2 +- .../SGCoreKismet/SGDeviceModelKismetLibrary.h | 2 +- .../SGHandInterpolatorKismetLibrary.h | 2 +- .../SGCoreKismet/SGHandLayerKismetLibrary.h | 16 +- .../SGCoreKismet/SGHandPoseKismetLibrary.h | 2 +- .../SGHapticChannelInfoKismetLibrary.h | 2 +- .../SGCoreKismet/SGHapticGloveKismetLibrary.h | 2 +- .../SGInterpolationSetKismetLibrary.h | 2 +- .../SGJointKinematicsKismetLibrary.h | 2 +- .../SGCoreKismet/SGLibraryKismetLibrary.h | 2 +- .../SGCoreKismet/SGNova2GloveKismetLibrary.h | 2 +- .../SGNova2GloveSensorDataKismetLibrary.h | 2 +- .../SGNovaGloveInfoKismetLibrary.h | 2 +- .../SGCoreKismet/SGNovaGloveKismetLibrary.h | 2 +- .../SGNovaGloveSensorDataKismetLibrary.h | 2 +- .../SGCoreKismet/SGSenseComKismetLibrary.h | 2 +- .../SGSenseGloveInfoKismetLibrary.h | 2 +- .../SGCoreKismet/SGSenseGloveKismetLibrary.h | 2 +- .../SGSenseGlovePoseKismetLibrary.h | 2 +- .../SGSenseGloveSensorDataKismetLibrary.h | 2 +- ...GSenseGloveSensorNormalizerKismetLibrary.h | 2 +- .../SGSenseGloveVarsKismetLibrary.h | 2 +- .../SGSensorNormalizationKismetLibrary.h | 2 +- .../SGThresholdCommandKismetLibrary.h | 2 +- .../SGCoreKismet/SGTrackingKismetLibrary.h | 2 +- .../SenseGloveCoreKismet.Build.cs | 2 +- .../Private/SGDebug/SGDebugCube.cpp | 2 +- .../Private/SGDebug/SGDebugGizmo.cpp | 2 +- .../Private/SGDebug/SGDebugVirtualHand.cpp | 33 +- .../Private/SenseGloveDebug.cpp | 2 +- .../SenseGloveDebug/Private/SenseGloveDebug.h | 2 +- .../Private/SenseGloveDebugModule.cpp | 2 +- .../Private/SenseGloveDebugModule.h | 2 +- .../Public/SGDebug/SGDebugCube.h | 2 +- .../Public/SGDebug/SGDebugGizmo.h | 2 +- .../Public/SGDebug/SGDebugVirtualHand.h | 9 +- .../SenseGloveDebug/SenseGloveDebug.Build.cs | 2 +- .../SGDebugCubeKismetLibrary.cpp | 2 +- .../SGDebugGizmoKismetLibrary.cpp | 2 +- .../SGDebugVirtualHandKismetLibrary.cpp | 2 +- .../Private/SenseGloveDebugKismet.cpp | 2 +- .../Private/SenseGloveDebugKismet.h | 2 +- .../Private/SenseGloveDebugKismetModule.cpp | 2 +- .../Private/SenseGloveDebugKismetModule.h | 2 +- .../SGDebugKismet/SGDebugCubeKismetLibrary.h | 2 +- .../SGDebugKismet/SGDebugGizmoKismetLibrary.h | 2 +- .../SGDebugVirtualHandKismetLibrary.h | 2 +- .../SenseGloveDebugKismet.Build.cs | 2 +- .../Private/SGEditor/SGAssetUtils.cpp | 2 +- .../SGEditor/SGContentBrowserExtension.cpp | 2 +- .../Private/SGEditor/SGPluginStyle.cpp | 2 +- .../Private/SGEditor/SGSocketsEditor.cpp | 2 +- .../SGEditor/SGSocketsEditorCommands.cpp | 2 +- .../Private/SenseGloveEditor.cpp | 2 +- .../Private/SenseGloveEditor.h | 2 +- .../Private/SenseGloveEditorModule.cpp | 2 +- .../Private/SenseGloveEditorModule.h | 2 +- .../Public/SGEditor/SGAssetUtils.h | 2 +- .../SGEditor/SGContentBrowserExtension.h | 2 +- .../Public/SGEditor/SGPluginStyle.h | 2 +- .../Public/SGEditor/SGSocketsEditor.h | 2 +- .../Public/SGEditor/SGSocketsEditorCommands.h | 2 +- .../SenseGloveEditor.Build.cs | 2 +- .../Private/SGInterop/SGIC_ESGBackendType.cpp | 2 +- .../SGInterop/SGIC_ESGConnectionType.cpp | 2 +- .../Private/SGInterop/SGIC_ESGDeviceType.cpp | 2 +- .../Private/SGInterop/SGIC_ESGFinger.cpp | 2 +- .../SGInterop/SGIC_ESGFingerMovement.cpp | 2 +- .../SGInterop/SGIC_ESGFingerSolver.cpp | 2 +- .../SGInterop/SGIC_ESGHapticChannelType.cpp | 2 +- .../SGIC_ESGHapticGloveCalibrationState.cpp | 2 +- .../SGInterop/SGIC_ESGHapticLocation.cpp | 2 +- .../Private/SGInterop/SGIC_ESGListFormat.cpp | 2 +- .../SGInterop/SGIC_ESGNormalizationState.cpp | 2 +- .../SGInterop/SGIC_ESGNova2SensorLocation.cpp | 2 +- .../SGInterop/SGIC_ESGNova2VibroMotor.cpp | 2 +- .../Private/SGInterop/SGIC_ESGNovaCVar.cpp | 2 +- .../Private/SGInterop/SGIC_ESGNovaData.cpp | 2 +- .../SGInterop/SGIC_ESGNovaSensorLocation.cpp | 2 +- .../SGInterop/SGIC_ESGNovaVibroMotor.cpp | 2 +- .../SGIC_ESGPositionalTrackingHardware.cpp | 2 +- .../SGInterop/SGIC_ESGSenseGloveCVar.cpp | 2 +- .../SGInterop/SGIC_ESGSenseGloveSVar.cpp | 2 +- .../SGIC_ESGSenseGloveThumperCommand.cpp | 2 +- .../SGInterop/SGIC_ESGSensorFormat.cpp | 2 +- .../SGInterop/SGIC_ESGThumbMovement.cpp | 2 +- .../Private/SGInterop/SGIC_ESGThumbSolver.cpp | 2 +- .../SGInterop/SGIC_ESGWaveformType.cpp | 2 +- .../Private/SGInterop/SGIC_FQuat.cpp | 2 +- .../SGInterop/SGIC_FSGBasicHandModelImpl.cpp | 2 +- .../SGInterop/SGIC_FSGBetaDeviceImpl.cpp | 2 +- .../SGInterop/SGIC_FSGCustomWaveformImpl.cpp | 2 +- .../Private/SGInterop/SGIC_FSGDeviceImpl.cpp | 2 +- .../SGInterop/SGIC_FSGDeviceModelImpl.cpp | 2 +- .../SGIC_FSGHandInterpolatorImpl.cpp | 2 +- .../SGInterop/SGIC_FSGHandPoseImpl.cpp | 2 +- .../SGIC_FSGHapticChannelInfoImpl.cpp | 2 +- .../SGInterop/SGIC_FSGHapticGloveImpl.cpp | 2 +- .../SGIC_FSGInterpolationSetImpl.cpp | 2 +- .../SGInterop/SGIC_FSGNova2GloveImpl.cpp | 2 +- .../SGIC_FSGNova2GloveSensorDataImpl.cpp | 2 +- .../SGInterop/SGIC_FSGNovaGloveImpl.cpp | 2 +- .../SGInterop/SGIC_FSGNovaGloveInfoImpl.cpp | 2 +- .../SGIC_FSGNovaGloveSensorDataImpl.cpp | 2 +- .../SGInterop/SGIC_FSGSenseGloveImpl.cpp | 2 +- .../SGInterop/SGIC_FSGSenseGloveInfoImpl.cpp | 2 +- .../SGInterop/SGIC_FSGSenseGlovePoseImpl.cpp | 2 +- .../SGIC_FSGSenseGloveSensorDataImpl.cpp | 2 +- ...SGIC_FSGSenseGloveSensorNormalizerImpl.cpp | 2 +- .../SGIC_FSGSensorNormalizationImpl.cpp | 2 +- .../SGIC_FSGThresholdCommandImpl.cpp | 2 +- .../Private/SGInterop/SGIC_FString.cpp | 2 +- .../Private/SGInterop/SGIC_FVector.cpp | 2 +- .../Private/SGInterop/SGIC_JNIEnv_Ptr.cpp | 2 +- .../Private/SGInterop/SGIC_TArray_FQuat.cpp | 2 +- .../SGIC_TArray_FSGNova2GloveImpl.cpp | 2 +- .../SGIC_TArray_FSGNovaGloveImpl.cpp | 2 +- .../SGIC_TArray_FSGSenseGloveImpl.cpp | 2 +- .../Private/SGInterop/SGIC_TArray_FString.cpp | 2 +- .../Private/SGInterop/SGIC_TArray_FVector.cpp | 2 +- .../SGInterop/SGIC_TArray_TArray_FQuat.cpp | 2 +- ..._TArray_TArray_FSGInterpolationSetImpl.cpp | 2 +- .../SGInterop/SGIC_TArray_TArray_FVector.cpp | 2 +- .../SGInterop/SGIC_TArray_TArray_bool.cpp | 2 +- .../SGInterop/SGIC_TArray_TArray_float.cpp | 2 +- .../SGIC_TArray_TSharedRef_FSGDeviceImpl.cpp | 2 +- ...C_TArray_TSharedRef_FSGHapticGloveImpl.cpp | 2 +- .../Private/SGInterop/SGIC_TArray_bool.cpp | 2 +- .../Private/SGInterop/SGIC_TArray_float.cpp | 2 +- .../Private/SGInterop/SGIC_TArray_int32.cpp | 2 +- .../SGIC_TSharedPtr_FSGBetaDeviceImpl.cpp | 2 +- .../SGIC_TSharedPtr_FSGDeviceImpl.cpp | 2 +- .../SGIC_TSharedPtr_FSGHapticGloveImpl.cpp | 2 +- .../SGIC_TSharedPtr_FSGNova2GloveImpl.cpp | 2 +- .../SGIC_TSharedPtr_FSGNovaGloveImpl.cpp | 2 +- .../SGIC_TSharedPtr_FSGSenseGloveImpl.cpp | 2 +- .../SGIC_TSubclassOf_FSGDeviceImpl.cpp | 2 +- .../Private/SGInterop/SGIC_jclass.cpp | 2 +- .../Private/SGInterop/SGIC_jmethodID.cpp | 2 +- .../Private/SenseGloveInterop.cpp | 2 +- .../Private/SenseGloveInterop.h | 2 +- .../Private/SenseGloveInteropModule.cpp | 2 +- .../Private/SenseGloveInteropModule.h | 2 +- .../Public/SGInterop/SGIC_ESGBackendType.h | 2 +- .../Public/SGInterop/SGIC_ESGConnectionType.h | 2 +- .../Public/SGInterop/SGIC_ESGDeviceType.h | 2 +- .../Public/SGInterop/SGIC_ESGFinger.h | 2 +- .../Public/SGInterop/SGIC_ESGFingerMovement.h | 2 +- .../Public/SGInterop/SGIC_ESGFingerSolver.h | 2 +- .../SGInterop/SGIC_ESGHapticChannelType.h | 2 +- .../SGIC_ESGHapticGloveCalibrationState.h | 2 +- .../Public/SGInterop/SGIC_ESGHapticLocation.h | 2 +- .../Public/SGInterop/SGIC_ESGListFormat.h | 2 +- .../SGInterop/SGIC_ESGNormalizationState.h | 2 +- .../SGInterop/SGIC_ESGNova2SensorLocation.h | 2 +- .../SGInterop/SGIC_ESGNova2VibroMotor.h | 2 +- .../Public/SGInterop/SGIC_ESGNovaCVar.h | 2 +- .../Public/SGInterop/SGIC_ESGNovaData.h | 2 +- .../SGInterop/SGIC_ESGNovaSensorLocation.h | 2 +- .../Public/SGInterop/SGIC_ESGNovaVibroMotor.h | 2 +- .../SGIC_ESGPositionalTrackingHardware.h | 2 +- .../Public/SGInterop/SGIC_ESGSenseGloveCVar.h | 2 +- .../Public/SGInterop/SGIC_ESGSenseGloveSVar.h | 2 +- .../SGIC_ESGSenseGloveThumperCommand.h | 2 +- .../Public/SGInterop/SGIC_ESGSensorFormat.h | 2 +- .../Public/SGInterop/SGIC_ESGThumbMovement.h | 2 +- .../Public/SGInterop/SGIC_ESGThumbSolver.h | 2 +- .../Public/SGInterop/SGIC_ESGWaveformType.h | 2 +- .../Public/SGInterop/SGIC_FQuat.h | 2 +- .../SGInterop/SGIC_FSGBasicHandModelImpl.h | 2 +- .../Public/SGInterop/SGIC_FSGBetaDeviceImpl.h | 2 +- .../SGInterop/SGIC_FSGCustomWaveformImpl.h | 2 +- .../Public/SGInterop/SGIC_FSGDeviceImpl.h | 2 +- .../SGInterop/SGIC_FSGDeviceModelImpl.h | 2 +- .../SGInterop/SGIC_FSGHandInterpolatorImpl.h | 2 +- .../Public/SGInterop/SGIC_FSGHandPoseImpl.h | 2 +- .../SGInterop/SGIC_FSGHapticChannelInfoImpl.h | 2 +- .../SGInterop/SGIC_FSGHapticGloveImpl.h | 2 +- .../SGInterop/SGIC_FSGInterpolationSetImpl.h | 2 +- .../Public/SGInterop/SGIC_FSGNova2GloveImpl.h | 2 +- .../SGIC_FSGNova2GloveSensorDataImpl.h | 2 +- .../Public/SGInterop/SGIC_FSGNovaGloveImpl.h | 2 +- .../SGInterop/SGIC_FSGNovaGloveInfoImpl.h | 2 +- .../SGIC_FSGNovaGloveSensorDataImpl.h | 2 +- .../Public/SGInterop/SGIC_FSGSenseGloveImpl.h | 2 +- .../SGInterop/SGIC_FSGSenseGloveInfoImpl.h | 2 +- .../SGInterop/SGIC_FSGSenseGlovePoseImpl.h | 2 +- .../SGIC_FSGSenseGloveSensorDataImpl.h | 2 +- .../SGIC_FSGSenseGloveSensorNormalizerImpl.h | 2 +- .../SGIC_FSGSensorNormalizationImpl.h | 2 +- .../SGInterop/SGIC_FSGThresholdCommandImpl.h | 2 +- .../Public/SGInterop/SGIC_FString.h | 2 +- .../Public/SGInterop/SGIC_FVector.h | 2 +- .../Public/SGInterop/SGIC_JNIEnv_Ptr.h | 2 +- .../Public/SGInterop/SGIC_TArray_FQuat.h | 2 +- .../SGInterop/SGIC_TArray_FSGNova2GloveImpl.h | 2 +- .../SGInterop/SGIC_TArray_FSGNovaGloveImpl.h | 2 +- .../SGInterop/SGIC_TArray_FSGSenseGloveImpl.h | 2 +- .../Public/SGInterop/SGIC_TArray_FString.h | 2 +- .../Public/SGInterop/SGIC_TArray_FVector.h | 2 +- .../SGInterop/SGIC_TArray_TArray_FQuat.h | 2 +- ...IC_TArray_TArray_FSGInterpolationSetImpl.h | 2 +- .../SGInterop/SGIC_TArray_TArray_FVector.h | 2 +- .../SGInterop/SGIC_TArray_TArray_bool.h | 2 +- .../SGInterop/SGIC_TArray_TArray_float.h | 2 +- .../SGIC_TArray_TSharedRef_FSGDeviceImpl.h | 2 +- ...GIC_TArray_TSharedRef_FSGHapticGloveImpl.h | 2 +- .../Public/SGInterop/SGIC_TArray_bool.h | 2 +- .../Public/SGInterop/SGIC_TArray_float.h | 2 +- .../Public/SGInterop/SGIC_TArray_int32.h | 2 +- .../SGIC_TSharedPtr_FSGBetaDeviceImpl.h | 2 +- .../SGInterop/SGIC_TSharedPtr_FSGDeviceImpl.h | 2 +- .../SGIC_TSharedPtr_FSGHapticGloveImpl.h | 2 +- .../SGIC_TSharedPtr_FSGNova2GloveImpl.h | 2 +- .../SGIC_TSharedPtr_FSGNovaGloveImpl.h | 2 +- .../SGIC_TSharedPtr_FSGSenseGloveImpl.h | 2 +- .../SGIC_TSubclassOf_FSGDeviceImpl.h | 2 +- .../Public/SGInterop/SGIC_jclass.h | 2 +- .../Public/SGInterop/SGIC_jmethodID.h | 2 +- .../SenseGloveInterop.Build.cs | 2 +- .../SGKismet/SGBlueprintFunctionLibrary.cpp | 2 +- .../SGGameUserSettingsKismetLibrary.cpp | 2 +- .../SGKismet/SGGrabComponentKismetLibrary.cpp | 2 +- .../SGHandTrackerComponentKismetLibrary.cpp | 74 +++ .../SGHapticsComponentKismetLibrary.cpp | 155 +++++ .../Private/SGKismet/SGPawnKismetLibrary.cpp | 2 +- .../SGTouchComponentKismetLibrary.cpp | 5 +- .../SGVirtualHandComponentKismetLibrary.cpp | 2 +- .../SGWristTrackerComponentKismetLibrary.cpp | 2 +- .../Private/SenseGloveKismet.cpp | 2 +- .../Private/SenseGloveKismet.h | 2 +- .../Private/SenseGloveKismetModule.cpp | 2 +- .../Private/SenseGloveKismetModule.h | 2 +- .../SGKismet/SGBlueprintFunctionLibrary.h | 2 +- .../SGGameUserSettingsKismetLibrary.h | 2 +- .../SGKismet/SGGrabComponentKismetLibrary.h | 3 +- .../SGHandTrackerComponentKismetLibrary.h | 70 +++ .../SGHapticsComponentKismetLibrary.h | 202 ++++++ .../Public/SGKismet/SGPawnKismetLibrary.h | 2 +- .../SGKismet/SGTouchComponentKismetLibrary.h | 3 +- .../SGVirtualHandComponentKismetLibrary.h | 2 +- .../SGWristTrackerComponentKismetLibrary.h | 2 +- .../SenseGloveKismet.Build.cs | 2 +- .../SenseGloveLog/Private/SGLog/SGLog.cpp | 2 +- .../SenseGloveLog/Private/SenseGloveLog.cpp | 2 +- .../SenseGloveLog/Private/SenseGloveLog.h | 2 +- .../Private/SenseGloveLogModule.cpp | 2 +- .../Private/SenseGloveLogModule.h | 2 +- .../Source/SenseGloveLog/Public/SGLog/SGLog.h | 2 +- .../SenseGloveLog/SenseGloveLog.Build.cs | 2 +- .../SGSettings/SGDebugCubeSettings.cpp | 2 +- .../SGSettings/SGDebugGizmoSettings.cpp | 2 +- .../SGSettings/SGGameUserSettingsSettings.cpp | 2 +- .../SGSettings/SGGloveTrackingSettings.cpp | 2 +- .../SGSettings/SGHMDTrackingSettings.cpp | 2 +- .../SGSettings/SGHandTrackingSettings.cpp | 2 +- .../SGHardwareBenchmarkingSettings.cpp | 2 +- .../SGSettings/SGInitializationSettings.cpp | 2 +- .../Private/SGSettings/SGSettings.cpp | 2 +- .../Private/SGSettings/SGTrackingSettings.cpp | 2 +- .../SGVirtualHandAnimationSettings.cpp | 2 +- .../SGVirtualHandDebuggingSettings.cpp | 2 +- .../SGSettings/SGVirtualHandGrabSettings.cpp | 2 +- .../SGVirtualHandHapticsSettings.cpp | 2 +- .../SGSettings/SGVirtualHandMeshSettings.cpp | 2 +- .../SGVirtualHandPhalangesLengthSettings.cpp | 2 +- .../SGSettings/SGVirtualHandSettings.cpp | 2 +- .../SGVirtualHandSettingsOverrides.cpp | 2 +- .../SGSettings/SGVirtualHandTouchSettings.cpp | 2 +- .../SGWristTrackingDebuggingSettings.cpp | 2 +- .../SGWristTrackingDetailsCustomization.cpp | 2 +- .../SGWristTrackingDetailsCustomization.h | 2 +- .../SGSettings/SGWristTrackingSettings.cpp | 2 +- .../SGWristTrackingSettingsOverrides.cpp | 2 +- .../Private/SenseGloveSettings.cpp | 2 +- .../Private/SenseGloveSettings.h | 2 +- .../Private/SenseGloveSettingsModule.cpp | 2 +- .../Private/SenseGloveSettingsModule.h | 2 +- .../Public/SGSettings/SGDebugCubeSettings.h | 2 +- .../Public/SGSettings/SGDebugGizmoSettings.h | 2 +- .../SGSettings/SGGameUserSettingsSettings.h | 2 +- .../SGSettings/SGGloveTrackingSettings.h | 2 +- .../Public/SGSettings/SGHMDTrackingSettings.h | 2 +- .../SGSettings/SGHandTrackingSettings.h | 2 +- .../SGHardwareBenchmarkingSettings.h | 2 +- .../SGSettings/SGInitializationSettings.h | 2 +- .../Public/SGSettings/SGSettings.h | 2 +- .../Public/SGSettings/SGTrackingSettings.h | 2 +- .../SGVirtualHandAnimationSettings.h | 2 +- .../SGVirtualHandDebuggingSettings.h | 2 +- .../SGSettings/SGVirtualHandGrabSettings.h | 2 +- .../SGSettings/SGVirtualHandHapticsSettings.h | 2 +- .../SGSettings/SGVirtualHandMeshSettings.h | 18 +- .../SGVirtualHandPhalangesLengthSettings.h | 2 +- .../Public/SGSettings/SGVirtualHandSettings.h | 2 +- .../SGVirtualHandSettingsOverrides.h | 2 +- .../SGSettings/SGVirtualHandTouchSettings.h | 2 +- .../SGWristTrackingDebuggingSettings.h | 2 +- .../SGSettings/SGWristTrackingSettings.h | 2 +- .../SGWristTrackingSettingsOverrides.h | 2 +- .../SenseGloveSettings.Build.cs | 2 +- .../SGSettingsKismetLibrary.cpp | 2 +- .../Private/SenseGloveSettingsKismet.cpp | 2 +- .../Private/SenseGloveSettingsKismet.h | 2 +- .../SenseGloveSettingsKismetModule.cpp | 2 +- .../Private/SenseGloveSettingsKismetModule.h | 2 +- .../SGSettingsKismetLibrary.h | 2 +- .../SenseGloveSettingsKismet.Build.cs | 2 +- .../Private/SGTracking/SGGloveTracker.cpp | 2 +- .../Private/SGTracking/SGHMDTracker.cpp | 13 +- .../Private/SGTracking/SGXRHandState.cpp | 2 +- .../Private/SGTracking/SGXRTracker.cpp | 319 +--------- .../Private/SenseGloveTracking.cpp | 2 +- .../Private/SenseGloveTracking.h | 2 +- .../Private/SenseGloveTrackingModule.cpp | 2 +- .../Private/SenseGloveTrackingModule.h | 2 +- .../Public/SGTracking/SGGloveTracker.h | 2 +- .../Public/SGTracking/SGHMDTracker.h | 2 +- .../Public/SGTracking/SGXRHandState.h | 2 +- .../Public/SGTracking/SGXRTracker.h | 10 +- .../SenseGloveTracking.Build.cs | 19 +- .../SGGloveTrackerKismetLibrary.cpp | 2 +- .../SGHMDTrackerKismetLibrary.cpp | 2 +- .../SGXRTrackerKismetLibrary.cpp | 2 +- .../Private/SenseGloveTrackingKismet.cpp | 2 +- .../Private/SenseGloveTrackingKismet.h | 2 +- .../SenseGloveTrackingKismetModule.cpp | 2 +- .../Private/SenseGloveTrackingKismetModule.h | 2 +- .../SGGloveTrackerKismetLibrary.h | 2 +- .../SGHMDTrackerKismetLibrary.h | 2 +- .../SGXRTrackerKismetLibrary.h | 2 +- .../SenseGloveTrackingKismet.Build.cs | 2 +- .../Private/SGTypes/SGCoreTypes.cpp | 2 +- .../Private/SGTypes/SGDebugTypes.cpp | 2 +- .../Private/SGTypes/SGFloatArray.cpp | 2 +- .../Private/SGTypes/SGNameArray.cpp | 2 +- .../Private/SGTypes/SGQuatArray.cpp | 2 +- .../Private/SGTypes/SGRotatorArray.cpp | 2 +- .../Private/SGTypes/SGTrackingTypes.cpp | 2 +- .../Private/SGTypes/SGTypes.cpp | 2 +- .../Private/SGTypes/SGVectorArray.cpp | 2 +- .../Private/SenseGloveTypes.cpp | 2 +- .../SenseGloveTypes/Private/SenseGloveTypes.h | 2 +- .../Private/SenseGloveTypesModule.cpp | 2 +- .../Private/SenseGloveTypesModule.h | 2 +- .../Public/SGTypes/SGCoreTypes.h | 2 +- .../Public/SGTypes/SGDebugTypes.h | 2 +- .../Public/SGTypes/SGFloatArray.h | 2 +- .../Public/SGTypes/SGNameArray.h | 2 +- .../Public/SGTypes/SGQuatArray.h | 2 +- .../Public/SGTypes/SGRotatorArray.h | 2 +- .../Public/SGTypes/SGTrackingTypes.h | 2 +- .../SenseGloveTypes/Public/SGTypes/SGTypes.h | 2 +- .../Public/SGTypes/SGVectorArray.h | 2 +- .../SenseGloveTypes/SenseGloveTypes.Build.cs | 2 +- .../Private/SGUtils/SGAngles.cpp | 2 +- .../Private/SGUtils/SGArrayUtils.cpp | 2 +- .../Private/SGUtils/SGEditorUtils.cpp | 2 +- .../Private/SGUtils/SGEngineUtils.cpp | 19 +- .../Private/SGUtils/SGPluginUtils.cpp | 2 +- .../Private/SGUtils/SGUnits.cpp | 2 +- .../Private/SenseGloveUtils.cpp | 2 +- .../SenseGloveUtils/Private/SenseGloveUtils.h | 2 +- .../Private/SenseGloveUtilsModule.cpp | 2 +- .../Private/SenseGloveUtilsModule.h | 2 +- .../SenseGloveUtils/Public/SGUtils/SGAngles.h | 2 +- .../Public/SGUtils/SGArrayUtils.h | 2 +- .../Public/SGUtils/SGEditorUtils.h | 2 +- .../Public/SGUtils/SGEngineUtils.h | 2 +- .../Public/SGUtils/SGPluginUtils.h | 2 +- .../SenseGloveUtils/Public/SGUtils/SGUnits.h | 2 +- .../SenseGloveUtils/SenseGloveUtils.Build.cs | 2 +- .../SGBleThirdPartyLibs.Build.cs | 4 +- .../SGCommonThirdPartyLibs.Build.cs | 12 +- .../SGConnectShmThirdPartyLibs.Build.cs | 12 +- .../SGConnectThirdPartyHeaders.Build.cs | 2 +- .../SGConnectThirdPartyLibs.Build.cs | 12 +- .../SGCoreShmThirdPartyLibs.Build.cs | 12 +- .../SGCoreThirdPartyHeaders.Build.cs | 2 +- .../SGCoreThirdPartyLibs.Build.cs | 12 +- .../SGFmtThirdPartyLibs.Build.cs | 12 +- .../SGLogThirdPartyLibs.Build.cs | 12 +- .../SGLoguruThirdPartyLibs.Build.cs | 12 +- .../SGSerialThirdPartyLibs.Build.cs | 12 +- .../SGWjwwoodSerialThirdPartyLibs.Build.cs | 12 +- 854 files changed, 4030 insertions(+), 2203 deletions(-) rename Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/{consuming-fxrhandtrackingstate-fxrmotioncontrollerdata-animated-debug-virtual-hands.gif => consuming-fxrhandtrackingstate-animated-debug-virtual-hands.gif} (100%) delete mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/README.md delete mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/blueprint.md delete mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-add-draw-hand-function.png delete mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-add-get-motion-controller-data-node.png delete mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-break-xr-motion-controller-data.png delete mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-debug-virtual-hand-draw-options.png delete mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-draw-debug-gizmo-per-joint.png delete mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-draw-hand-function-implementation.png delete mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-get-joint-position-rotation.png delete mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-representation.png delete mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-validation.png delete mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-vrpawn-draw-virtual-hands-every-frame.png delete mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-cpp-add-class-choose-name.png delete mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-cpp-add-class-choose-parent.png delete mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-cpp-new-class.png delete mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-cpp-reparent-debug-pawn.png delete mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-cpp-reparent.png delete mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-cpp-verify-parent-class.png delete mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/cpp.md delete mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/enabling-senseglove-unrealp-engine-plugin.png create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/README.md create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghandtrackercomponent/README.md create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghandtrackercomponent/sghandtrackercomponent-add-component.png create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghandtrackercomponent/sghandtrackercomponent-added-component.png create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghandtrackercomponent/sghandtrackercomponent-details-panel-uproperties.png create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghandtrackercomponent/sghandtrackercomponent-functions.png create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghandtrackercomponent/sghandtrackercomponent-get-hand-tracking-state.png create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghandtrackercomponent/sghapticscomponent-debug-hand-visualization-settings.png create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/README.md create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-add-component.png create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-added-component.png create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-example-force-feedback.png create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-example-vibrotactile.png create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-example-wrist-squeeze.png create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-force-feedback-level.png create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-force-feedback-levels.png create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-vibro-level.png create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-vibro-levels.png create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-wrist-squeeze.png create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-send-custom-waveform.png create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-send-haptics.png create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-stop-haptics.png create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-stop-vibrations.png create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-supports-custom-waveform.png create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-supports-wrist-squeeze.png create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-details-panel-uproperties.png create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-functions1.png create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-functions2.png create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/README.md create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-event-on-actor-begin-touch.png create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-event-on-actor-end-touch.png create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-event-on-actor-grabbed.png create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-event-on-actor-released.png create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-event-on-grab-state-updated.png create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-event-on-touch-state-updated.png create mode 100755 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-events.png create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-grab-release-related-functions-1.png create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-grab-release-related-functions-2.png create mode 100644 Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-grab-touch-colliders.png create mode 100644 Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Components/SGHandTrackerComponent.cpp create mode 100644 Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Components/SGHapticsComponent.cpp create mode 100644 Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Components/SGHandTrackerComponent.h create mode 100644 Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Components/SGHapticsComponent.h create mode 100644 Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGHandTrackerComponentKismetLibrary.cpp create mode 100644 Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGHapticsComponentKismetLibrary.cpp create mode 100644 Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGHandTrackerComponentKismetLibrary.h create mode 100644 Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGHapticsComponentKismetLibrary.h diff --git a/Plugins/SenseGlove/Handbook/BSDmakefile b/Plugins/SenseGlove/Handbook/BSDmakefile index 7c63ea1..71c329c 100644 --- a/Plugins/SenseGlove/Handbook/BSDmakefile +++ b/Plugins/SenseGlove/Handbook/BSDmakefile @@ -3,7 +3,7 @@ # # (The MIT License) # -# Copyright (c) 2020 - 2025 SenseGlove +# Copyright (c) 2020 - 2026 SenseGlove # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Handbook/GNUmakefile b/Plugins/SenseGlove/Handbook/GNUmakefile index bc9b345..1dd892c 100644 --- a/Plugins/SenseGlove/Handbook/GNUmakefile +++ b/Plugins/SenseGlove/Handbook/GNUmakefile @@ -3,7 +3,7 @@ # # (The MIT License) # -# Copyright (c) 2020 - 2025 SenseGlove +# Copyright (c) 2020 - 2026 SenseGlove # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -119,6 +119,12 @@ SG_PLUGIN_LICENSE_THIRD_PARTY_FILE := $(SG_PLUGIN_DIR)/LICENSE_THIRD_PARTY.m SG_PLUGIN_PLANNED_FEATURES_COMPLETION_STATUS_FILE := $(SG_PLUGIN_DIR)/PLANNED_FEATURES_COMPLETION_STATUS.md SG_PLUGIN_PLATFORM_SUPPORT_MATRIX_FILE := $(SG_PLUGIN_DIR)/PLATFORM_SUPPORT_MATRIX.md +################################################################################ +# Rust/Cargo Settings +################################################################################ + +RUST_TOOLCHAIN_VERSION := 1.93.0 + ################################################################################ # Version and Build Information ################################################################################ @@ -365,17 +371,18 @@ clean: .PHONY: install-build-deps install-build-deps: @echo "Installing build dependencies if they have not already been installed..." - @cargo install mdbook --version "0.4.49" --locked + @rustup install $(RUST_TOOLCHAIN_VERSION) + @rustup override set $(RUST_TOOLCHAIN_VERSION) + @cargo install mdbook --version "0.5.2" --locked @cargo install xq --vers "^0.4" --locked - @cargo install mdbook-alerts --vers "^0.7" --locked - @cargo install mdbook-pdf --vers "0.1.11" --locked + @cargo install mdbook-pdf --vers "0.1.13" --locked ifeq ($(SG_BUILD_PLATFORM),$(SG_BUILD_PLATFORM_LINUX)) @echo "Installing mdbook-pdf-outline..." @python -m venv $(VIRTUAL_ENV) \ && . $(SG_LINUX_PYTHON_VENV_BIN_DIR)/activate \ && pip install mdbook-pdf-outline 2>/dev/null endif # ($(SG_BUILD_PLATFORM),$(SG_BUILD_PLATFORM_LINUX)) - @cargo install --git https://github.com/Michael-F-Bryan/mdbook-epub --rev cac03b7f4b151f106f7f05b13da4c33fc098dd2c --locked + @cargo install --git https://github.com/Michael-F-Bryan/mdbook-epub --rev 21a1c8134134201a2d555313447c96e56e2a8996 --locked ################################################################################ # Make Targets - mdBook diff --git a/Plugins/SenseGlove/Handbook/bin/sg-preprocessor.sh b/Plugins/SenseGlove/Handbook/bin/sg-preprocessor.sh index bac7793..474b914 100644 --- a/Plugins/SenseGlove/Handbook/bin/sg-preprocessor.sh +++ b/Plugins/SenseGlove/Handbook/bin/sg-preprocessor.sh @@ -5,7 +5,7 @@ # # (The MIT License) # -# Copyright (c) 2020 - 2025 SenseGlove +# Copyright (c) 2020 - 2026 SenseGlove # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -33,8 +33,8 @@ fi readonly JSON_INPUT=$(cat) -readonly CONTEXT=$(echo "${JSON_INPUT}" | xq '.[0]') -readonly BOOK=$(echo "${JSON_INPUT}" | xq '.[1]') +readonly CONTEXT=$(printf '%s' "${JSON_INPUT}" | xq '.[0]') +readonly BOOK=$(printf '%s' "${JSON_INPUT}" | xq '.[1]') escape_string() { printf '%s' "$1" | sed -e 's/\\/\\\\/g' -e 's/"/\\"/g' @@ -63,8 +63,8 @@ SG_PLUGIN_VERSION_PATCH_ESCAPED=$(escape_string "${SG_PLUGIN_VERSION_PATCH}") SG_BUILD_HOST_ESCAPED=$(escape_string "${SG_BUILD_HOST}") SG_BUILD_TIME_ESCAPED=$(escape_string "${SG_BUILD_TIME}") -PARSED_BOOK=$(echo "${BOOK}" | xq " - .sections[] |= ( +PARSED_BOOK=$(printf '%s' "${BOOK}" | xq " + .items[] |= ( if has(\"Chapter\") then .Chapter.content |= walk(if type == \"string\" then @@ -103,4 +103,4 @@ PARSED_BOOK=$(echo "${BOOK}" | xq " #echo "BOOK: ${BOOK}" >&2 #echo "PARSED_BOOK: ${PARSED_BOOK}" >&2 -echo "${PARSED_BOOK}" | xq '.' \ No newline at end of file +printf '%s' "${PARSED_BOOK}" \ No newline at end of file diff --git a/Plugins/SenseGlove/Handbook/book.toml b/Plugins/SenseGlove/Handbook/book.toml index 2722b27..ea96a31 100644 --- a/Plugins/SenseGlove/Handbook/book.toml +++ b/Plugins/SenseGlove/Handbook/book.toml @@ -3,7 +3,7 @@ # # (The MIT License) # -# Copyright (c) 2020 - 2025 SenseGlove +# Copyright (c) 2020 - 2026 SenseGlove # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -28,7 +28,6 @@ authors = ["Mamadou Babaei"] description = "Welcome to the SenseGlove Unreal Engine documentation!" language = "en" -multilingual = false src = "src" text-direction = "ltr" title = "The SenseGlove Unreal Engine Handbook" @@ -43,8 +42,6 @@ use-default-preprocessors = true [preprocessor.links] -[preprocessor.alerts] - [preprocessor.senseglove] after = [ "index", "links" ] command = "sh ./bin/sg-preprocessor.sh" @@ -59,10 +56,9 @@ footnote-backrefs = true additional-css = ["styles/custom.css"] additional-js = [] cname = "unreal.docs.senseglove.com" -copy-fonts = true default-theme = "navy" git-repository-url = "https://dev.azure.com/SenseGlove/_git/SenseGlove-Unreal" -git-repository-icon = "fa-git" +git-repository-icon = "fab-git" input-404 = "404.md" mathjax-support = false no-section-label = false diff --git a/Plugins/SenseGlove/Handbook/src/SUMMARY.md b/Plugins/SenseGlove/Handbook/src/SUMMARY.md index a821b6c..2e0ed19 100644 --- a/Plugins/SenseGlove/Handbook/src/SUMMARY.md +++ b/Plugins/SenseGlove/Handbook/src/SUMMARY.md @@ -73,13 +73,14 @@ Welcom to the SenseGlove Unreal Engine Handbook! # 🛠️ Advanced Topics - [Safe Glove Access in Blueprint](advanced-topics/safe-glove-access-blueprint/README.md) +- [Roll Your Own Hand Manipulation System](advanced-topics/roll-your-own-hand-manipulation-system/README.md) + - [SGPawn Events](advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/README.md) + - [SGHandTrackerComponent](advanced-topics/roll-your-own-hand-manipulation-system/sghandtrackercomponent/README.md) + - [SGHapticsComponent](advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/README.md) - [OpenXR](advanced-topics/openxr/README.md) - [Consuming FXRHandTrackingState](advanced-topics/openxr/consuming-fxrhandtrackingstate/README.md) - [Blueprint](advanced-topics/openxr/consuming-fxrhandtrackingstate/blueprint.md) - [C++](advanced-topics/openxr/consuming-fxrhandtrackingstate/cpp.md) - - [Consuming FXRMotionControllerData](advanced-topics/openxr/consuming-fxrmotioncontrollerdata/README.md) - - [Blueprint](advanced-topics/openxr/consuming-fxrmotioncontrollerdata/blueprint.md) - - [C++](advanced-topics/openxr/consuming-fxrmotioncontrollerdata/cpp.md) - [Third-Party Integrations](advanced-topics/openxr/third-party-integrations/README.md) - [Third-Party Tutorials](advanced-topics/openxr/third-party-tutorials/README.md) diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/README.md b/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/README.md index 70f2044..df03cf5 100644 --- a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/README.md +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/README.md @@ -1,37 +1,156 @@ # OpenXR -The SenseGlove Unreal Engine Plugin has provided OpenXR-compatible hand tracking by implementing `XR_EXT_hand_tracking` since `v2.1.0`. +The SenseGlove Unreal Engine Plugin has provided OpenXR-compatible hand tracking by implementing `XR_EXT_hand_tracking` since [`v2.1.0`](../../appendix/changelog.html#210---2024-08-16). Typically a user does not need to know anything about OpenXR to use the plugin, so this section of the handbook is for advanced users who are looking for a way to directly consume the OpenXR data coming directly from either a SenseGlove device or if enabled in the plugin settings from hand-tracking. -Since the SenseGlove Unreal Engine Plugin registers itself as an `OpenXRHandTracking` motion controller device it becomes a hand-tracking provider for Unreal Engine, thus the OpenXR data from SenseGlove could always be retrieved from the Unreal Engine's `IXTrackingSystem` with one caveat. The caveat is if another OpenXR-compatible hand-tracking plugin, e.g. Epic's own OpenXRHandTracking, is enabled simultaneously it's not guaranteed that the `FXRMotionControllerData` and `FXRHandTrackingState` structs retrieved from the `IXTrackingSystem::GetMotionControllerData()` and `IXTrackingSystem::GetHandTrackingState()` methods are coming from SenseGlove, as these methods return the first hand-tracking plugin they could find. Thus, SenseGlove provides its own implementation of `GetMotionControllerData()` and `GetHandTrackingState()` which guarantee the retrieved `FXRMotionControllerData` or `FXRHandTrackingState` are coming from the SenseGlove Unreal Engine Plugin; and this is the preferred way to that. +Since the SenseGlove Unreal Engine Plugin registers itself as an `OpenXRHandTracking` device it becomes a hand-tracking provider for Unreal Engine, thus the OpenXR data from SenseGlove could always be retrieved from the Unreal Engine's `IXTrackingSystem` with two caveats: -> [!NOTE] -> In order to retrieve the latest `FXRMotionControllerState` available, The -> SenseGlove Unreal Engine Plugin provides an alternative implementation for -> `IXTrackingSystem::GetMotionControllerState()` as well . However, since this -> method does not rely on the `OpenXRHandTracking` provider, it may become -> redundant. As a result, we might consider removing this functionality in -> future updates in favor of the one that Unreal Engine provides. +- The first caveat is, if another OpenXR-compatible hand-tracking plugin, e.g. Epic's own OpenXRHandTracking, is enabled simultaneously it's not guaranteed that the `FXRHandTrackingState` struct retrieved from the `IXTrackingSystem::GetHandTrackingState()` method is coming from SenseGlove, as these methods return the first hand-tracking plugin they could find. Thus, SenseGlove provides its own implementation of `GetHandTrackingState()` which guarantees the retrieved `FXRHandTrackingState` is coming from the SenseGlove Unreal Engine Plugin; and this is the preferred way to that. +- The second caveat is, Unreal `IXTrackingSystem::GetHandTrackingState()` method is blind to SenseGlove's [wrist-tracking settings and offsets](../../plugin-configuration/plugin-settings/tracking/wrist-tracking/), therefore the returned `FXRHandTrackingState` retrieved using this engine function won't take into account the wrist-tracker offsets, and the hands end up at the wrong orientation or position. In contrast, > [!IMPORTANT] -> Unreal Engine versions `5.2`, `5.3`, and `5.4` are limited to -> `FXRMotionControllerData` since at the time of their release no -> `FXRHandTrackingState` was available. -> Also please keep in mind that, while `FXRMotionControllerData` is pretty much -> usable and functional in Unreal Engine `5.5`, it is recommended to utilize -> `FXRHandTrackingState` instead. This is because this version of UE has -> deprecated `FXRMotionControllerData` in favor of the -> `FXRMotionControllerState` and `FXRHandTrackingState` structs. Prior to -> version `5.5`, `FXRMotionControllerData` handled both motion controller and -> hand tracking data. From `5.5` onward, these responsibilities have been -> separated into the two distinct structs, providing clearer and more -> specialized handling of each. +> In order to retrieve the latest `FXRHandTrackingState` available, The +> SenseGlove Unreal Engine Plugin provides an alternative implementation for +> `IXTrackingSystem::GetHandTrackingState()`, which guarantees the OpenXR +> hand-tracking data is coming from a SenseGlove device and also takes into +> account the SenseGlove's wrist-tracker offsets automatically. +> +> This is the recommended approach over Unreal Engine's own +> `IXTrackingSystem::GetHandTrackingState()` or you have to ensure the data +> received is coming from a SenseGlove device yourself, and also take into +> account the SenseGlove's wrist-tracker settings and calculate the wrist +> offsets either using one of the `SGHapticGlove::GetWristLocation()` variants, +> or manually. +> +> In short `IXTrackingSystem::GetHandTrackingState()` does not respect the +> offsets from +> `Project Settings > SenseGlove > Tracking > Wrist-Tracking Settings` + +> [!CAUTION] +> In order to retrieve the latest `FXRHandTrackingState` available, The +> SenseGlove Unreal Engine Plugin provides an alternative implementation for +> `IXTrackingSystem::GetHandTrackingState()`, which guarantees the OpenXR +> hand-tracking data is coming from a SenseGlove device and also takes into +> account the SenseGlove's wrist-tracker offsets automatically. +> +> This is the recommended approach over Unreal Engine's own +> `IXTrackingSystem::GetHandTrackingState()` or you have to ensure the data +> received is coming from a SenseGlove device yourself, and also take into +> account the SenseGlove's wrist-tracker settings and calculate the wrist +> offsets either using one of the `GetWristLocation()` variants, e.g., +> `SGHandLayer::GetWristLocation()`, `SGHapticGlove::GetWristLocation()`, etc, +> or manually. +> +> In short `IXTrackingSystem::GetHandTrackingState()` does not respect the +> offsets from +> `Project Settings > SenseGlove > Tracking Settings > Wrist Tracking Settings`. + +> [!TIP] +> Starting with version `v2.8.0`, the SenseGlove Unreal Engine Plugin provides +> a highly convenient, high-level abstraction that eliminates all of the manual +> steps described above. By using +> [`SGHandTrackerComponent`](../roll-your-own-hand-manipulation-system/sghandtrackercomponent/) +> you can simply add the component to your Pawn class (or any actor that +> requires hand-tracking data), configure its properties, and retrieve the +> tracking data with a single function call when needed. +> +> The SenseGlove UE Plugin automatically handles all required settings and +> offset calculations for your positional tracking hardware, whether you are +> using pure hand tracking or a SenseGlove device. It also provides an optional +> debug hand out of the box, allowing you to instantly visualize hand-tracking +> data without writing a single line of code. +> +> Furthermore, version `v2.8.0` ships with a companion component, +> [`SGHapticsComponent`](../roll-your-own-hand-manipulation-system/sghapticscomponent/), +> which makes it easy to add haptic feedback to your own custom or third-party +> hand manipulation systems. + +> [!TIP] +> Sometimes, using `IXTrackingSystem::GetHandTrackingState()` is unavoidable, +> e.g., when using a third-party hand manipulation system such as +> [**VR Expansion Plugin (VRE)**](https://vreue4.com/), which internally relies +> on `IXTrackingSystem::GetHandTrackingState()` to retrieve the hand-tracking +> data. In that case SenseGlove provides methods such as +> `SGHandLayer::GetWristLocation()`, `SGHapticGlove::GetWristLocation()`, etc, +> which you can use to reliably calculate the wrist offsets: +> +> ```cpp +> // Get the OpenXR hand-tracking data for the right hand +> FXRHandTrackingState HandTrackingState; +> IXTrackingSystem::GetHandTrackingState( +> GetWorld(), +> EXRSpaceType::UnrealWorldSpace, +> EControllerHand::Right, +> HandTrackingState); +> +> // Return if the struct data is invalid! +> if (!bGotHandTrackingState || !HandTrackingState.bValid) +> { +> return; +> } +> +> // Return if the device is not being tracked! +> if (HandTrackingState.TrackingStatus == ETrackingStatus::NotTracked) +> { +> return; +> } +> +> // Ensure that HandTrackingState.HandKeyLocations has the location data +> // for 26 joints! +> if (!ensureAlwaysMsgf(HandTrackingState.HandKeyLocations.Num() +> == EHandKeypointCount, +> TEXT("Invalid HandKeyLocations count!"))) +> { +> return; +> } +> +> // Ensure that HandTrackingState.HandKeyRotations has the rotation data +> // for 26 joints! +> if (!ensureAlwaysMsgf(HandTrackingState.HandKeyRotations.Num() +> == EHandKeypointCount, +> TEXT("Invalid HandKeyRotations count!"))) +> { +> return; +> } +> +> { +> // FQuat variant of FSGHandLayer::GetWristLocation() +> // Get the OpenXR hand-tracking data with the correct wrist offsets for +> // Meta Quest 3 Controllers +> FVector WristLocation; +> FQuat WristRotation; +> FSGHandLayer::GetWristLocation( +> true, // true for a right-handed glove and false for a left-handed one +> HandTrackingState.HandKeyLocations[0], // 0 is the Wrist joint location +> HandTrackingState.HandKeyRotations[0], // 0 is the wrist joint rotation +> ESGPositionalTrackingHardware::Quest3Controller, +> WristLocation, WristRotation); +> +> // WristLocation and WristRotation variables now contain the correct +> // OpenXR hand-tracking data with the wrist offsets applied correctly +> } +> +> { +> // FRotator variant of FSGHandLayer::GetWristLocation() +> // Get the OpenXR hand-tracking data with the correct wrist offsets for +> // Meta Quest 3 Controllers +> FVector WristLocation; +> FRotator WristRotation; +> FSGHandLayer::GetWristLocation( +> true, // true for a right-handed glove and false for a left-handed one +> HandTrackingState.HandKeyLocations[0], // 0 is the Wrist joint location +> HandTrackingState.HandKeyRotations[0].Rotator, // 0 is the wrist joint rotation +> ESGPositionalTrackingHardware::Quest3Controller, +> WristLocation, WristRotation); +> +> // WristLocation and WristRotation variables now contain the correct +> // OpenXR hand-tracking data with the wrist offsets applied correctly +> } +> ``` In the next sections we'll see: -- [How we can directly consume the `FXRMotionControllerData`](consuming-fxrmotioncontrollerdata/) on UE `5.2`, `5.3`, `5.4`, and `5.5` to draw and animate debug virtual hands in both [Blueprint](consuming-fxrmotioncontrollerdata/blueprint.md) and [C++](consuming-fxrmotioncontrollerdata/cpp.md). - - [How we can directly consume the `FXRHandTrackingState`](consuming-fxrhandtrackingstate/) on UE `5.5` to draw and animate debug virtual hands in both [Blueprint](consuming-fxrhandtrackingstate/blueprint.md) and [C++](consuming-fxrhandtrackingstate/cpp.md). - [The Consuming OpenXR Hand-Tracking Data tutorial series](third-party-tutorials/) provides a comprehensive introduction to virtual reality, OpenXR hand-tracking, and gesture detection in Unreal Engine. Additionally, this tutorial series covers procedural virtual hand mesh animation using the OpenXR hand-tracking data. diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrhandtrackingstate-fxrmotioncontrollerdata-animated-debug-virtual-hands.gif b/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrhandtrackingstate-animated-debug-virtual-hands.gif similarity index 100% rename from Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrhandtrackingstate-fxrmotioncontrollerdata-animated-debug-virtual-hands.gif rename to Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrhandtrackingstate-animated-debug-virtual-hands.gif diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrhandtrackingstate/README.md b/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrhandtrackingstate/README.md index 627cb87..41e04d9 100644 --- a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrhandtrackingstate/README.md +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrhandtrackingstate/README.md @@ -1,18 +1,18 @@ # Consuming FXRHandTrackingState -> [!IMPORTANT] -> Unreal Engine versions `5.2`, `5.3`, and `5.4` are limited to -> `FXRMotionControllerData` since at the time of their release no -> `FXRHandTrackingState` was available. -> Also please keep in mind that, while `FXRMotionControllerData` is pretty much -> usable and functional in Unreal Engine `5.5`, it is recommended to utilize -> `FXRHandTrackingState` instead. This is because this version of UE has -> deprecated `FXRMotionControllerData` in favor of the -> `FXRMotionControllerState` and `FXRHandTrackingState` structs. Prior to -> version `5.5`, `FXRMotionControllerData` handled both motion controller and -> hand-tracking data. From `5.5` onward, these responsibilities have been -> separated into the two distinct structs, providing clearer and more -> specialized handling of each. +> [!TIP] +> Starting with version `v2.8.0`, a highly convenient high-level approach for +> retrieving `FXRHandTrackingState` has been introduced. It allows you to obtain +> OpenXR hand-tracking data without worrying about the caveats mentioned in the +> [`main OpenXR section`](../). +> +> [`SGHandTrackerComponent`](../../roll-your-own-hand-manipulation-system/sghandtrackercomponent/) +> abstracts these complexities away and provides correctly adjusted +> hand-tracking data with a single function call. +> +> This version also introduces a companion +> [`SGHapticsComponent`](../../roll-your-own-hand-manipulation-system/sghapticscomponent/) +> is also available for easily integrating haptic feedback. Taking a closer look at the `FXRHandTrackingState` declaration inside the Unreal Engine's `HeadMountedDisplay` module at [`Engine/Source/Runtime/HeadMountedDisplay/Public/HeadMountedDisplayTypes.h`](https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Source/Runtime/HeadMountedDisplay/Public/HeadMountedDisplayTypes.h), figuring out the data structure might not seem very straightforward: diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrhandtrackingstate/blueprint.md b/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrhandtrackingstate/blueprint.md index 6bde930..77e62c2 100644 --- a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrhandtrackingstate/blueprint.md +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrhandtrackingstate/blueprint.md @@ -1,21 +1,21 @@ # Consuming FXRHandTrackingState in Blueprint -> [!IMPORTANT] -> Unreal Engine versions `5.2`, `5.3`, and `5.4` are limited to -> `FXRMotionControllerData` since at the time of their release no -> `FXRHandTrackingState` was available. -> Also please keep in mind that, while `FXRMotionControllerData` is pretty much -> usable and functional in Unreal Engine `5.5`, it is recommended to utilize -> `FXRHandTrackingState` instead. This is because this version of UE has -> deprecated `FXRMotionControllerData` in favor of the -> `FXRMotionControllerState` and `FXRHandTrackingState` structs. Prior to -> version `5.5`, `FXRMotionControllerData` handled both motion controller and -> hand tracking data. From `5.5` onward, these responsibilities have been -> separated into the two distinct structs, providing clearer and more -> specialized handling of each. - Before continuing this section, please ensure you've studied the [Consuming FXRHandTrackingState](./) section, first. +> [!TIP] +> Starting with version `v2.8.0`, a highly convenient high-level approach for +> retrieving `FXRHandTrackingState` has been introduced. It allows you to obtain +> OpenXR hand-tracking data without worrying about the caveats mentioned in the +> [`main OpenXR section`](../). +> +> [`SGHandTrackerComponent`](../../roll-your-own-hand-manipulation-system/sghandtrackercomponent/) +> abstracts these complexities away and provides correctly adjusted +> hand-tracking data with a single function call. +> +> This version also introduces a companion +> [`SGHapticsComponent`](../../roll-your-own-hand-manipulation-system/sghapticscomponent/) +> is also available for easily integrating haptic feedback. + ## Drawing and Animating Virtual Hands 1. Create a new Virtual Reality project based [the Unreal VR Template](https://dev.epicgames.com/documentation/en-us/unreal-engine/vr-template-in-unreal-engine). @@ -62,4 +62,4 @@ Before continuing this section, please ensure you've studied the [Consuming FXRH 13. Now, go back to the `VRTemplateMap` and use the VR Preview button to run the game. If everything's done correctly, you should be able to see the virtual hands inside your VR simulation. -![FXRHandTrackingState animated debug virtual hands](../consuming-fxrhandtrackingstate-fxrmotioncontrollerdata-animated-debug-virtual-hands.gif "FXRHandTrackingState animated debug virtual hands") +![FXRHandTrackingState animated debug virtual hands](../consuming-fxrhandtrackingstate-animated-debug-virtual-hands.gif "FXRHandTrackingState animated debug virtual hands") diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrhandtrackingstate/cpp.md b/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrhandtrackingstate/cpp.md index 7a315d0..b63b2ff 100644 --- a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrhandtrackingstate/cpp.md +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrhandtrackingstate/cpp.md @@ -1,21 +1,21 @@ # Consuming FXRHandTrackingState in C++ -> [!IMPORTANT] -> Unreal Engine versions `5.2`, `5.3`, and `5.4` are limited to -> `FXRMotionControllerData` since at the time of their release no -> `FXRHandTrackingState` was available. -> Also please keep in mind that, while `FXRMotionControllerData` is pretty much -> usable and functional in Unreal Engine `5.5`, it is recommended to utilize -> `FXRHandTrackingState` instead. This is because this version of UE has -> deprecated `FXRMotionControllerData` in favor of the -> `FXRMotionControllerState` and `FXRHandTrackingState` structs. Prior to -> version `5.5`, `FXRMotionControllerData` handled both motion controller and -> hand tracking data. From `5.5` onward, these responsibilities have been -> separated into the two distinct structs, providing clearer and more -> specialized handling of each. - Before continuing this section, please ensure you've first studied the [Consuming FXRHandTrackingState](./) section. +> [!TIP] +> Starting with version `v2.8.0`, a highly convenient high-level approach for +> retrieving `FXRHandTrackingState` has been introduced. It allows you to obtain +> OpenXR hand-tracking data without worrying about the caveats mentioned in the +> [`main OpenXR section`](../). +> +> [`SGHandTrackerComponent`](../../roll-your-own-hand-manipulation-system/sghandtrackercomponent/) +> abstracts these complexities away and provides correctly adjusted +> hand-tracking data with a single function call. +> +> This version also introduces a companion +> [`SGHapticsComponent`](../../roll-your-own-hand-manipulation-system/sghapticscomponent/) +> is also available for easily integrating haptic feedback. + ## Drawing and Animating Virtual Hands 1. Create a new Virtual Reality project based [the Unreal VR Template](https://dev.epicgames.com/documentation/en-us/unreal-engine/vr-template-in-unreal-engine). @@ -256,4 +256,4 @@ void ADebugPawn::DrawHand(const EControllerHand Hand) const 15. Now, rebuild the source code and go back to the `VRTemplateMap`, then use the VR Preview button to run the game. If everything's done correctly, you should be able to see the virtual hands inside your VR simulation. -![FXRHandTrackingState animated debug virtual hands](../consuming-fxrhandtrackingstate-fxrmotioncontrollerdata-animated-debug-virtual-hands.gif "FXRHandTrackingState animated debug virtual hands") +![FXRHandTrackingState animated debug virtual hands](../consuming-fxrhandtrackingstate-animated-debug-virtual-hands.gif "FXRHandTrackingState animated debug virtual hands") diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/README.md b/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/README.md deleted file mode 100644 index 5658846..0000000 --- a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/README.md +++ /dev/null @@ -1,277 +0,0 @@ -# Consuming FXRMotionControllerData - -> [!IMPORTANT] -> Unreal Engine versions `5.2`, `5.3`, and `5.4` are limited to -> `FXRMotionControllerData` since at the time of their release no -> `FXRHandTrackingState` was available. -> Also please keep in mind that, while `FXRMotionControllerData` is pretty much -> usable and functional in Unreal Engine `5.5`, it is recommended to utilize -> `FXRHandTrackingState` instead. This is because this version of UE has -> deprecated `FXRMotionControllerData` in favor of the -> `FXRMotionControllerState` and `FXRHandTrackingState` structs. Prior to -> version `5.5`, `FXRMotionControllerData` handled both motion controller and -> hand tracking data. From `5.5` onward, these responsibilities have been -> separated into the two distinct structs, providing clearer and more -> specialized handling of each. - -Taking a closer look at the `FXRMotionControllerData` declaration inside the Unreal Engine's `HeadMountedDisplay` module at [`Engine/Source/Runtime/HeadMountedDisplay/Public/HeadMountedDisplayTypes.h`](https://github.com/EpicGames/UnrealEngine/blob/5.5/Engine/Source/Runtime/HeadMountedDisplay/Public/HeadMountedDisplayTypes.h), figuring out the data structure might not seem very straightforward: - -```cpp -USTRUCT(BlueprintType) -struct FXRMotionControllerData -{ - GENERATED_USTRUCT_BODY(); - - UPROPERTY(BlueprintReadOnly, Category = "XR") - bool bValid = false; - UPROPERTY(BlueprintReadOnly, Category = "XR") - FName DeviceName; - UPROPERTY(BlueprintReadOnly, Category = "XR") - FGuid ApplicationInstanceID; - UPROPERTY(BlueprintReadOnly, Category = "XR") - EXRVisualType DeviceVisualType = EXRVisualType::Controller; - - UPROPERTY(BlueprintReadOnly, Category = "XR") - EControllerHand HandIndex = EControllerHand::Left; - - UPROPERTY(BlueprintReadOnly, Category = "XR") - ETrackingStatus TrackingStatus = ETrackingStatus::NotTracked; - - // Vector representing an object being held in the player's hand - UPROPERTY(BlueprintReadOnly, Category = "XR") - FVector GripPosition = FVector(0.0f); - // Quaternion representing an object being held in the player's hand - UPROPERTY(BlueprintReadOnly, Category = "XR") - FQuat GripRotation = FQuat(EForceInit::ForceInitToZero); - - // For handheld controllers, gives a vector for pointing at objects - UPROPERTY(BlueprintReadOnly, Category = "XR") - FVector AimPosition = FVector(0.0f); - // For handheld controllers, gives a quaternion for pointing at objects - UPROPERTY(BlueprintReadOnly, Category = "XR") - FQuat AimRotation = FQuat(EForceInit::ForceInitToZero); - - // For handheld controllers, gives a vector for representing the hand - UPROPERTY(BlueprintReadOnly, Category = "XR") - FVector PalmPosition = FVector(0.0f); - // For handheld controllers, gives a quaternion for representing the hand - UPROPERTY(BlueprintReadOnly, Category = "XR") - FQuat PalmRotation = FQuat(EForceInit::ForceInitToZero); - - // The indices of this array are the values of EHandKeypoint (Palm, Wrist, ThumbMetacarpal, etc). - UPROPERTY(BlueprintReadOnly, Category = "XR") - TArray HandKeyPositions; - // The indices of this array are the values of EHandKeypoint (Palm, Wrist, ThumbMetacarpal, etc). - UPROPERTY(BlueprintReadOnly, Category = "XR") - TArray HandKeyRotations; - // The indices of this array are the values of EHandKeypoint (Palm, Wrist, ThumbMetacarpal, etc). - UPROPERTY(BlueprintReadOnly, Category = "XR") - TArray HandKeyRadii; - - UPROPERTY(BlueprintReadOnly, Category = "XR") - bool bIsGrasped = false; -}; -``` - -Which on the Blueprint side it looks like this: - -![FXRMotionControllerData Blueprint representation](consuming-fxrmotioncontrollerdata-blueprint-representation.png "FXRMotionControllerData Blueprint representation") - -But, fear not, we've got you covered! - -## FXRMotionControllerData in Unreal Engine - -`FXRMotionControllerData` is a structure in Unreal Engine designed to hold detailed information about the state of a motion controller device at a given moment. This structure is essential for handling motion controller inputs in virtual reality (VR) applications, providing the necessary data to accurately track and represent the user's hand movements and actions within the virtual environment. - -### Structure Members of FXRMotionControllerData - -- **bValid** - - **Description**: A boolean flag indicating whether the data is valid or not. - - **Usage**: This is used to check if the motion controller data is correctly initialized and can be used for further processing. - -- **DeviceName** - - **Type**: `FName` - - **Description**: The name of the device. - - **Usage**: Identifies which motion controller device the data is coming from, useful when multiple devices are in use. - -- **ApplicationInstanceID** - - **Type**: `FString` - - **Description**: A unique identifier for the application instance. - - **Usage**: Helps in differentiating data from different instances of an application, ensuring the correct instance processes the data. - -- **DeviceVisualType** - - **Type**: `EXRVisualType` - - **Description**: Enum specifying the visual type of the device (e.g., controller, hand). - - **Usage**: Used to differentiate between various motion controller devices or hand-tracking representations for rendering and interaction purposes. - -- **HandIndex** - - **Type**: `EControllerHand` - - **Description**: Enum indicating which hand is being tracked (left or right). - - **Usage**: Helps identify whether the motion data pertains to the left or right hand, essential for hand-specific actions or interactions. - -- **TrackingStatus** - - **Type**: `EXRTrackingStatus` - - **Description**: Enum indicating the tracking status of the motion controller. - - **Usage**: Shows whether the controller is being tracked accurately, with possible statuses like `Tracked`, `NotTracked`, etc. - -- **GripPosition** - - **Type**: `FVector` - - **Description**: The position of the grip in world coordinates. - - **Usage**: Provides the 3D coordinates of the controller's grip, essential for positioning the virtual representation of the controller. - -- **GripRotation** - - **Type**: `FQuat` - - **Description**: The rotation of the grip in world coordinates. - - **Usage**: Provides the orientation of the controller's grip, allowing for accurate rotation and alignment in the virtual space. - -- **AimPosition** - - **Type**: `FVector` - - **Description**: The position of the aim point in world coordinates. - - **Usage**: Specifies where the controller is aiming, useful for aiming or pointing actions. - -- **AimRotation** - - **Type**: `FQuat` - - **Description**: The rotation of the aim point in world coordinates. - - **Usage**: Determines the orientation of the aim direction, important for actions like shooting or selecting objects in VR. - -- **PalmPosition** - - **Type**: `FVector` - - **Description**: The position of the palm in world coordinates. - - **Usage**: Provides the 3D location of the palm, important for determining hand gestures or interactions in VR. - -- **PalmRotation** - - **Type**: `FQuat` - - **Description**: The rotation of the palm in world coordinates. - - **Usage**: Defines the orientation of the palm, crucial for hand-based interaction accuracy and realism in VR experiences. - -- **HandKeyPositions** - - **Type**: `TArray` - - **Description**: An array of vectors representing key positions of the hand. - - **Usage**: Provides detailed positions of key points on the hand, useful for precise hand tracking and interaction. - -- **HandKeyRotations** - - **Type**: `TArray` - - **Description**: An array of quaternions representing key rotations of the hand. - - **Usage**: Complements the hand key positions with rotational data, ensuring accurate representation of hand movements. - -- **HandKeyRadii** - - **Type**: `TArray` - - **Description**: An array of floats representing the radii of key points of the hand. - - **Usage**: Gives the size of the hand key points, aiding in collision detection and interaction fidelity. - -- **bIsGrasped** - - **Type**: `bool` - - **Description**: A boolean indicating whether the controller is currently grasping an object. - - **Usage**: Determines if the user is holding something, affecting interactions and animations. - -### Organization of FXRMotionControllerData - -The structure is organized to encapsulate all relevant data needed for hand and motion controller tracking in a coherent and accessible manner. Boolean flags `bValid` and `bIsGrasped` provide quick checks on the state of the controller data. Identifiers `DeviceName` and `ApplicationInstanceID` ensure the correct association of data. Positional and rotational data `GripPosition`, `GripRotation`, `AimPosition`, and `AimRotation` offer precise tracking of the controller's movement. Arrays `HandKeyPositions`, `HandKeyRotations`, and `HandKeyRadii` allow detailed hand tracking, which is critical for immersive VR experiences. Lastly, the tracking status `TrackingStatus` informs the system of the reliability of the data being processed and whether the motion controller is actively being tracked or it's inactive at the moment. - -### Processing the Data for Drawing and Animating a Virtual Hand - -In order to draw and animate a virtual hand in real-time whether the data is coming from hand-tracking or a SenseGlove device, we could consume the data from the `HandKeyPositions` and `HandKeyRotations` fields of the `FXRMotionControllerData` struct. - -Both `HandKeyPositions` and `HandKeyRotations` contain 26 elements as defined by OpenXR's [`XR_HAND_JOINT_COUNT_EXT`](https://registry.khronos.org/OpenXR/specs/1.1/man/html/XR_HAND_JOINT_COUNT_EXT.html) and [`XrHandJointLocationsEXT`](https://registry.khronos.org/OpenXR/specs/1.0/man/html/XrHandJointLocationsEXT.html), etc. - -Unreal Engine also provides an enum called `EHandKeypoint` naming the 26 joints, and the equivalent of `XR_HAND_JOINT_COUNT_EXT` as `EHandKeypointCount` inside [`Engine/Source/Runtime/HeadMountedDisplay/Public/HeadMountedDisplayTypes.h`](https://github.com/EpicGames/UnrealEngine/blob/5.5/Engine/Source/Runtime/HeadMountedDisplay/Public/HeadMountedDisplayTypes.h) as follows: - -```cpp -/** - * Transforms that are tracked on the hand. - * Matches the enums from WMR to make it a direct mapping - */ -UENUM(BlueprintType) -enum class EHandKeypoint : uint8 -{ - Palm, - Wrist, - ThumbMetacarpal, - ThumbProximal, - ThumbDistal, - ThumbTip, - IndexMetacarpal, - IndexProximal, - IndexIntermediate, - IndexDistal, - IndexTip, - MiddleMetacarpal, - MiddleProximal, - MiddleIntermediate, - MiddleDistal, - MiddleTip, - RingMetacarpal, - RingProximal, - RingIntermediate, - RingDistal, - RingTip, - LittleMetacarpal, - LittleProximal, - LittleIntermediate, - LittleDistal, - LittleTip -}; - -const int32 EHandKeypointCount = static_cast(EHandKeypoint::LittleTip) + 1; - -``` - -So, getting the any joint's position or rotation is as easy as casting the enum value and passing it as the array index. - -```cpp - FXRMotionControllerData MotionControllerData; - const bool bGotMotionControllerData = FSGXRTracker::GetMotionControllerData( - GetWorld(), EControllerHand::Left, MotionControllerData); - - // Return if the struct data is invalid! - if (!bGotMotionControllerData || !MotionControllerData.bValid) - { - return; - } - - // Return if the device is not being tracked! - if (MotionControllerData.TrackingStatus == ETrackingStatus::NotTracked) - { - return; - } - - // Ensure that MotionControllerData.DeviceVisualType is a hand! - if (!ensureAlwaysMsgf(MotionControllerData.DeviceVisualType - == EXRVisualType::Hand, - TEXT("Invalid DeviceVisualType type!"))) - { - } - - // Ensure that MotionControllerData.HandKeyPositions has the position data - // for 26 joints! - if (!ensureAlwaysMsgf(MotionControllerData.HandKeyPositions.Num() - == EHandKeypointCount, - TEXT("Invalid HandKeyPositions count!"))) - { - return; - } - - // Ensure that MotionControllerData.HandKeyRotations has the rotation data - // for 26 joints! - if (!ensureAlwaysMsgf(MotionControllerData.HandKeyRotations.Num() - == EHandKeypointCount, - TEXT("Invalid HandKeyRotations count!"))) - { - return; - } - - static constexpr int32 PalmIndex = static_cast(EHandKeypoint::Palm); - - const FVector& PalmPosition{ - MotionControllerData.HandKeyPositions[PalmIndex] - }; - const FRotator& PalmRotation{ - MotionControllerData.HandKeyRotations[PalmIndex].Rotator() - }; -``` - -The equivalent Blueprint code for the above looks something like this: - -![Get a joint position and rotation from FXRMotionControllerData in Blueprint](consuming-fxrmotioncontrollerdata-blueprint-get-joint-position-rotation.png "Get a joint position and rotation from FXRMotionControllerData in Blueprint") - -OK, now that we've got a glimpse of how the virtual hand's joint data could be processed we are going to draw and animate a virtual hand in both [Blueprint](blueprint.md) and [C++](cpp.md) in the upcoming sections. diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/blueprint.md b/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/blueprint.md deleted file mode 100644 index e677d6c..0000000 --- a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/blueprint.md +++ /dev/null @@ -1,65 +0,0 @@ -# Consuming FXRMotionControllerData in Blueprint - -> [!IMPORTANT] -> Unreal Engine versions `5.2`, `5.3`, and `5.4` are limited to -> `FXRMotionControllerData` since at the time of their release no -> `FXRHandTrackingState` was available. -> Also please keep in mind that, while `FXRMotionControllerData` is pretty much -> usable and functional in Unreal Engine `5.5`, it is recommended to utilize -> `FXRHandTrackingState` instead. This is because this version of UE has -> deprecated `FXRMotionControllerData` in favor of the -> `FXRMotionControllerState` and `FXRHandTrackingState` structs. Prior to -> version `5.5`, `FXRMotionControllerData` handled both motion controller and -> hand tracking data. From `5.5` onward, these responsibilities have been -> separated into the two distinct structs, providing clearer and more -> specialized handling of each. - -Before continuing this section, please ensure you've studied the [Consuming FXRMotionControllerData](./) section, first. - -## Drawing and Animating Virtual Hands - -1. Create a new Virtual Reality project based [the Unreal VR Template](https://dev.epicgames.com/documentation/en-us/unreal-engine/vr-template-in-unreal-engine). - -2. Make sure the [SenseGlove UnrealEngine plugin is installed and enabled](/getting-started/installation.md) inside your new project. - -![Enabling the SenseGlove Unreal Engine Plugin](enabling-senseglove-unrealp-engine-plugin.png "Enabling the SenseGlove Unreal Engine Plugin") - -3. You could use either hand-tracking or a SenseGlove device as the input data, or both of the inside the same project. Whether you would like to use hand-tracking or a SenseGlove device, please make sure the required steps are taken for each of those first. - -4. You could add the required Blueprint code for drawing virtual hands to either your Level Buleprint or the VRPawn Blueprint Class located at `/Content/VRTemplate/Blueprints/VRPawn`. In this guide we are going to add the code to our VRPawn. - -5. Add a new function named `Draw Hand` with an input parameter of type `EController Hand` named `Hand`. - -![Adding the Blueprint Draw Hand function](consuming-fxrmotioncontrollerdata-blueprint-add-draw-hand-function.png "Adding the Blueprint Draw Hand function") - -6. Inside this function's event graph add a `Get Motion Controller Data` node from `SenseGlove > Tracking > XR Tracker > Get Motion Controller Data`. - -![Adding the Get Motion Controller Data node](consuming-fxrmotioncontrollerdata-blueprint-add-get-motion-controller-data-node.png "Adding the Get Motion Controller Data node") - -7. Then connect the functions `Hand` input parameter to the `Get Motion Controller Data`'s `Hand` input and right-click on the `OutMotionControllerData` parameter and use the `Break XRMotionControllerData` node to break the struct to it's fields. - -![Breaking the XR Motion Controller Data node](consuming-fxrmotioncontrollerdata-blueprint-break-xr-motion-controller-data.png "Breaking the XR Motion Controller Data node") - -8. After this, we need to perform data validation by checking the return status of the `Get Motion Controller Data` function and `FXRMotionControllerData`'s `Valid` field. Then, we check if the motion controller device is being tracked and indeed coming from a hand-tracking source. And, finally, we check whether we have the positions and rotations for exactly `26` joints or not. - -![FXRMotionControllerData validation](consuming-fxrmotioncontrollerdata-blueprint-validation.png "FXRMotionControllerData validation") - -9. OK, now it's time to draw the joints! If we check out the SenseGlove Debug module's draw option, we notice there are various ways to draw the debug virtual hand. Drawing a cube or a gizmo per joint, or draw the whole hand all at once by passing the retrieved `FXRMotionControllerData` to the `DebugVirtualHand::Draw` function! But, since the point of this tutorial is to learn how to consume the `FXRMotionControllerData` we ignore the last option. Between the debug cubes or gizmos, we are going to choose the gizmos since they better represent the rotations than the cubes. - -![Some options for drawing a debug virtual hand](consuming-fxrmotioncontrollerdata-blueprint-debug-virtual-hand-draw-options.png "Some options for drawing a debug virtual hand") - -10. In the last step inside the `Draw Hand` function, in order to draw a virtual hand with `26` joints, we have to first iterate through either of the `Hand Key Positions` or `Hand Key Rotations` arrays from the `FXRMotionControllerData` struct. Since we made sure both arrays have `26` elements before we reached this step, it's safe to just iterate over one and use the `Array Index` inside a `For Each Loop` or a `For Loop` to access the position and rotation of every joint. Then we use each array `Get (a ref)` method to access the position and rotation data inside the loop and call the `Draw` function from `SenseGlove > Debug > Gizmo` per every joint. Please note that there are two `Draw` functions and the only difference between the two is that one accepts an `FQuat` and the other a `FRotator` for its `Rotation` input parameter. In this case, we use the `FQuat` variant to avoid an extra conversion to `FRotator`. Also, please adjust the `Thickness` option for the `Settings` parameter from `1.0` to `0.2`, as the default value might be too thick for drawing a joint gizmo. - -![Drawing a debug gizmo per each hand's joint](consuming-fxrmotioncontrollerdata-blueprint-draw-debug-gizmo-per-joint.png "Drawing a debug gizmo per each hand's joint") - -11. Well, now the full implementation for the `Draw Hand` function insde the `VRPawn` should look something like this: - -![VRPawn Draw Hand function final implementation](consuming-fxrmotioncontrollerdata-blueprint-draw-hand-function-implementation.png "VRPawn Draw Hand function final implementation") - -12. Finally, go back to `VRPawn`'s event graph and the following code to the `Tick` event. Basically what we do here is call our newly implemented `Draw Hand` twice, once for each hand. - -![Attempt to draw the left and right virtual hands every frame from the VR Pawn Tick event](consuming-fxrmotioncontrollerdata-blueprint-vrpawn-draw-virtual-hands-every-frame.png "Attempt to draw the left and right virtual hands every frame from the VR Pawn Tick event") - -13. Now, go back to the `VRTemplateMap` and use the VR Preview button to run the game. If everything's done correctly, you should be able to see the virtual hands inside your VR simulation. - -![FXRMotionControllerData animated debug virtual hands](../consuming-fxrhandtrackingstate-fxrmotioncontrollerdata-animated-debug-virtual-hands.gif "FXRMotionControllerData animated debug virtual hands") diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-add-draw-hand-function.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-add-draw-hand-function.png deleted file mode 100644 index 3c886ae..0000000 --- a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-add-draw-hand-function.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c3d8703b8bc80da4320bece6800694e3e23184415b205590ae598eec2af65d22 -size 331543 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-add-get-motion-controller-data-node.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-add-get-motion-controller-data-node.png deleted file mode 100644 index c4b22fe..0000000 --- a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-add-get-motion-controller-data-node.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:141c1530a7d685777ac4c199f9939f6a4077cef7f69c198779bea38c75eae54c -size 121048 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-break-xr-motion-controller-data.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-break-xr-motion-controller-data.png deleted file mode 100644 index 28af692..0000000 --- a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-break-xr-motion-controller-data.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:712930fb7858e31a4d35707de545f359b05432f4d9c3b5b27ac24f3353c6c0ac -size 113995 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-debug-virtual-hand-draw-options.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-debug-virtual-hand-draw-options.png deleted file mode 100644 index bddb99b..0000000 --- a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-debug-virtual-hand-draw-options.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c6be29be07f0c88334d51ab4ebe428e154bc82350e5a01209569a0e33e8e00dd -size 25411 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-draw-debug-gizmo-per-joint.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-draw-debug-gizmo-per-joint.png deleted file mode 100644 index 46b09c0..0000000 --- a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-draw-debug-gizmo-per-joint.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2cfc41b6232d056dd5d94b96f32c59fbd7c8194d783adb5319aeca0044b1e15e -size 363903 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-draw-hand-function-implementation.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-draw-hand-function-implementation.png deleted file mode 100644 index 5249e5a..0000000 --- a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-draw-hand-function-implementation.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b0c01f481179dedaad17724f074fa83f6fce010affd2533600231f602a97008d -size 521212 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-get-joint-position-rotation.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-get-joint-position-rotation.png deleted file mode 100644 index 6fc28d1..0000000 --- a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-get-joint-position-rotation.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:741fd7256ab9f9fd45db535a58fb0248fb0621f23917fb2418333f9595bd8394 -size 372361 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-representation.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-representation.png deleted file mode 100644 index 1cad022..0000000 --- a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-representation.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f028afcb4e7b021700b9dae7c480ff71ec645a5e24512b4b223dd818c1c3d3d7 -size 54379 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-validation.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-validation.png deleted file mode 100644 index 2867b07..0000000 --- a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-validation.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ebd49fd6327f7f1151ee32642ab27d9c7f731717917ac7163d2ee32567a029d5 -size 299424 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-vrpawn-draw-virtual-hands-every-frame.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-vrpawn-draw-virtual-hands-every-frame.png deleted file mode 100644 index 856f121..0000000 --- a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-blueprint-vrpawn-draw-virtual-hands-every-frame.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5abcc48443d71288701c6a3137881e969f269e35e54f9ca3b2e9bcded090afbe -size 259642 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-cpp-add-class-choose-name.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-cpp-add-class-choose-name.png deleted file mode 100644 index 15cab89..0000000 --- a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-cpp-add-class-choose-name.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2cde517c4eb6ba807f24b7f3b861c62b69501ac4ea94b9e6d1d112af860619ab -size 35036 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-cpp-add-class-choose-parent.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-cpp-add-class-choose-parent.png deleted file mode 100644 index eb02fdd..0000000 --- a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-cpp-add-class-choose-parent.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:48f0228ee4da1dee629e65f71fefcbe00ab5a52afa8685a3549fc9a4b0143534 -size 38449 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-cpp-new-class.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-cpp-new-class.png deleted file mode 100644 index 8c2e223..0000000 --- a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-cpp-new-class.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7f5c77bab4ac3926bc4292203a1c5684928eb7915e9278739e0f532b9e3b04a1 -size 145613 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-cpp-reparent-debug-pawn.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-cpp-reparent-debug-pawn.png deleted file mode 100644 index d04f9b4..0000000 --- a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-cpp-reparent-debug-pawn.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:72e5a568596914ccda9e964387c4bda765707c1bace599f0f89b5aed9cf75df6 -size 8368 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-cpp-reparent.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-cpp-reparent.png deleted file mode 100644 index a394160..0000000 --- a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-cpp-reparent.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3bd9b7c5dafd7ff61cb091851f007ae35745201146fe356b3451b704243a92f3 -size 46779 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-cpp-verify-parent-class.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-cpp-verify-parent-class.png deleted file mode 100644 index d06d9fe..0000000 --- a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/consuming-fxrmotioncontrollerdata-cpp-verify-parent-class.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:16686ddeefb5375f4e3ed668ebdb61263bf3b98e8bec428b8edf915f75e467df -size 24869 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/cpp.md b/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/cpp.md deleted file mode 100644 index 140105b..0000000 --- a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/cpp.md +++ /dev/null @@ -1,266 +0,0 @@ -# Consuming FXRMotionControllerData in C++ - -> [!IMPORTANT] -> Unreal Engine versions `5.2`, `5.3`, and `5.4` are limited to -> `FXRMotionControllerData` since at the time of their release no -> `FXRHandTrackingState` was available. -> Also please keep in mind that, while `FXRMotionControllerData` is pretty much -> usable and functional in Unreal Engine `5.5`, it is recommended to utilize -> `FXRHandTrackingState` instead. This is because this version of UE has -> deprecated `FXRMotionControllerData` in favor of the -> `FXRMotionControllerState` and `FXRHandTrackingState` structs. Prior to -> version `5.5`, `FXRMotionControllerData` handled both motion controller and -> hand tracking data. From `5.5` onward, these responsibilities have been -> separated into the two distinct structs, providing clearer and more -> specialized handling of each. - -Before continuing this section, please ensure you've first studied the [Consuming FXRMotionControllerData](./) section. - -## Drawing and Animating Virtual Hands - -1. Create a new Virtual Reality project based [the Unreal VR Template](https://dev.epicgames.com/documentation/en-us/unreal-engine/vr-template-in-unreal-engine). - -2. Make sure the [SenseGlove UnrealEngine plugin is installed and enabled](/getting-started/installation.md) inside your new project. - -![Enabling the SenseGlove Unreal Engine Plugin](enabling-senseglove-unrealp-engine-plugin.png "Enabling the SenseGlove Unreal Engine Plugin") - -3. You could use either hand-tracking or a SenseGlove device as the input data, or both of the inside the same project. Whether you would like to use hand-tracking or a SenseGlove device, please make sure the required steps are taken for each of those first. - -4. From the `Tools` menu choose `New C++ class...`. - -![Creating a new C++ class](consuming-fxrmotioncontrollerdata-cpp-new-class.png "Creating a new C++ class") - -5. Choose the Unreal Engine's `APawn` class as the parent class for the new C++ pawn class. - -![Choosing APawn as the parent class](consuming-fxrmotioncontrollerdata-cpp-add-class-choose-name.png "Choosing APawn as the parent class") - -6. Name the new pawn class `DebugPawn`. - -![Naming the new C++ class DebugPawn](consuming-fxrmotioncontrollerdata-cpp-add-class-choose-parent.png "Naming the new C++ class DebugPawn") - -7. Since we have created a new C++ class, this converts the current Blueprint VRTemplateMap project to a C++ one. That's why the Unreal Editor will give us a few prompts regarding opening the project in the default IDE and rebuilding the code. It might be simpler to just close the editor, then rebuild the source code inside your favorite IDE, and then start the editor with the converted project again. - -8. Find and open the VRPawn Blueprint Class located at `/Content/VRTemplate/Blueprints/VRPawn` inside the Blueprint Editor and from the `File` menu choose the `Reparent Blueprint` class. - -![Reparenting the VRPawn Blueprint class](consuming-fxrmotioncontrollerdata-cpp-reparent.png "Reparenting the VRPawn Blueprint class") - -9. In the new `Reparent blueprint` window choose `DebugPawn` as the new parent. - -![Reparenting the VRPawn Blueprint class to ADebugPawn](consuming-fxrmotioncontrollerdata-cpp-reparent-debug-pawn.png "Reparenting the VRPawn Blueprint class to ADebugPawn") - -10. By looking at the `Parent Class` label located under the Blueprint Editor window control buttons verify that the `ADebugPawn` class has been set as the new parent. - -![Veifying whether the VRPawn Blueprint class set to ADebugPawn or not](consuming-fxrmotioncontrollerdata-cpp-verify-parent-class.png "Veifying whether the VRPawn Blueprint class set to ADebugPawn or not") - -11. Locate the project's main Build file, in our case `VirtualHandCpp/Source/VirtualHandCpp/VirtualHandCpp.Build.cs` and add the `InputDevice`, `OpenXRHMD`, `SenseGloveBuildHacks`, `SenseGloveDebug`, `SenseGloveSettings`, and `SenseGloveTracking` modules as either a private or public dependency. - -```csharp -// Fill out your copyright notice in the Description page of Project Settings. - -using UnrealBuildTool; - -public class VirtualHandCpp : ModuleRules -{ - public VirtualHandCpp(ReadOnlyTargetRules Target) : base(Target) - { - PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; - - PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" }); - - PrivateDependencyModuleNames.AddRange(new string[] - { - "InputDevice", - "OpenXRHMD", - "SenseGloveBuildHacks", - "SenseGloveDebug", - "SenseGloveSettings", - "SenseGloveTracking" - }); - - // Uncomment if you are using Slate UI - // PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" }); - - // Uncomment if you are using online features - // PrivateDependencyModuleNames.Add("OnlineSubsystem"); - - // To include OnlineSubsystemSteam, add it to the plugins section in your uproject file with the Enabled attribute set to true - } -} -``` - -12. Locate the C++ header and source file for the `ADebugPawn` inside the project in your C++ IDE. In our case they are located at `VirtualHandCpp/Source/VirtualHandCpp/DebugPawn.h` and `VirtualHandCpp/Source/VirtualHandCpp/DebugPawn.cpp`. - -13. Modify the `DebugPawn.h` header file to look like this: - -```cpp -// Fill out your copyright notice in the Description page of Project Settings. - -#pragma once - -#include "CoreMinimal.h" -#include "GameFramework/Pawn.h" - -#include "SGSettings/SGDebugGizmoSettings.h" - -#include "DebugPawn.generated.h" - -UCLASS() -class VIRTUALHANDCPP_API ADebugPawn : public APawn -{ - GENERATED_BODY() - -private: - // The virtual hand drawing settings. - UPROPERTY(EditDefaultsOnly, Category="DebugPawn", - meta=(AllowPrivateAccess="false")) - FSGDebugGizmoSettings HandDrawingSettings; - -public: - // Sets default values for this pawn's properties - ADebugPawn(); - -protected: - // Called when the game starts or when spawned - virtual void BeginPlay() override; - -public: - // Called every frame - virtual void Tick(float DeltaTime) override; - - // Called to bind functionality to input - virtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override; - -private: - // The method responsible for drawing a virtual hand. - void DrawHand(EControllerHand Hand) const; -}; -``` - -14. Modify the `DebugPawn.cpp` implementation file to look like this: - - -```cpp -// Fill out your copyright notice in the Description page of Project Settings. - - -#include "DebugPawn.h" - -#include "SGDebug/SGDebugGizmo.h" -#include "SGTracking/SGXRTracker.h" - -// Sets default values -ADebugPawn::ADebugPawn() -{ - // Set this pawn to call Tick() every frame. You can turn this off to improve performance if you don't need it. - PrimaryActorTick.bCanEverTick = true; - - // Set the default virtual hand drawing settings. - HandDrawingSettings = FSGDebugGizmoSettings{ - 1.0f, - FColor{255, 0, 0, 255}, - FColor{0, 255, 0, 255}, - FColor{0, 0, 255, 255}, - false, - 1.1f, - 0, - 0.2f, - }; -} - -// Called when the game starts or when spawned -void ADebugPawn::BeginPlay() -{ - Super::BeginPlay(); -} - -// Called every frame -void ADebugPawn::Tick(float DeltaTime) -{ - Super::Tick(DeltaTime); - - // Attempt at drawing the left/right virtual hands every frame. - DrawHand(EControllerHand::Left); - DrawHand(EControllerHand::Right); -} - -// Called to bind functionality to input -void ADebugPawn::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) -{ - Super::SetupPlayerInputComponent(PlayerInputComponent); -} - -void ADebugPawn::DrawHand(const EControllerHand Hand) const -{ - // Get the world and cache it, if it's null we return early. - UWorld* World{GetWorld()}; - if (!IsValid(World)) - { - return; - } - - FXRMotionControllerData MotionControllerData; - const bool bGotMotionControllerData = FSGXRTracker::GetMotionControllerData( - World, Hand, MotionControllerData); - - // Return if the struct data is invalid! - if (!bGotMotionControllerData || !MotionControllerData.bValid) - { - return; - } - - // Return if the device is not being tracked! - if (MotionControllerData.TrackingStatus == ETrackingStatus::NotTracked) - { - return; - } - - // Ensure that MotionControllerData.DeviceVisualType is a hand! - if (!ensureAlwaysMsgf(MotionControllerData.DeviceVisualType - == EXRVisualType::Hand, - TEXT("Invalid DeviceVisualType type!"))) - { - } - - // Ensure that MotionControllerData.HandKeyPositions has the position data - // for 26 joints! - if (!ensureAlwaysMsgf(MotionControllerData.HandKeyPositions.Num() - == EHandKeypointCount, - TEXT("Invalid HandKeyPositions count!"))) - { - return; - } - - // Ensure that MotionControllerData.HandKeyRotations has the rotation data - // for 26 joints! - if (!ensureAlwaysMsgf(MotionControllerData.HandKeyRotations.Num() - == EHandKeypointCount, - TEXT("Invalid HandKeyRotations count!"))) - { - return; - } - - // Iterate over the hand joint positions and rotations! - for (int32 JointIndex = 0; JointIndex < EHandKeypointCount; ++JointIndex) - { - const FVector& JointPosition{ - MotionControllerData.HandKeyPositions[JointIndex] - }; - const FQuat& JointRotation{ - MotionControllerData.HandKeyRotations[JointIndex] - }; - - // Draw a single joint's gizmo! - // Please note that we could alternatively: - // Use FSGDebugCube::Draw() to draw a cube. - // Or use the FSGDebugVirtualHand::Draw() method and pass the - // MotionControllerData directly to draw the virtual hand - // all at once without iterating the joints. But, that's not - // goal of this tutorial. - FSGDebugGizmo::Draw(World, JointPosition, JointRotation, HandDrawingSettings); - } -} -``` - -15. Now, rebuild the source code and go back to the `VRTemplateMap`, then use the VR Preview button to run the game. If everything's done correctly, you should be able to see the virtual hands inside your VR simulation. - -![FXRMotionControllerData animated debug virtual hands](../consuming-fxrhandtrackingstate-fxrmotioncontrollerdata-animated-debug-virtual-hands.gif "FXRMotionControllerData animated debug virtual hands") diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/enabling-senseglove-unrealp-engine-plugin.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/enabling-senseglove-unrealp-engine-plugin.png deleted file mode 100644 index 8bc7134..0000000 --- a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/consuming-fxrmotioncontrollerdata/enabling-senseglove-unrealp-engine-plugin.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4bc8ff35df13ef30212e5cd69c23556f429041bb141bce64cbce9366c27f8071 -size 48777 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/third-party-integrations/README.md b/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/third-party-integrations/README.md index 6e8d8f0..be26038 100644 --- a/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/third-party-integrations/README.md +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/openxr/third-party-integrations/README.md @@ -41,7 +41,7 @@ As the SenseGlove Unreal Engine Plugin is fully OpenXR-compliant, it provides Op > need to figure out how to manually apply the appropriate offsets within your > chosen OpenXR hand interaction system. > -> For example, the VRE plugin provide similar configurations in their plugin's +> For example, the VRE plugin provides similar configurations in their plugin's > settings section. For more information refer to the > [Changing Wrist-Tracker Offsets](#changing-wrist-tracker-offsets) section > below. diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/README.md b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/README.md new file mode 100644 index 0000000..bd389c3 --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/README.md @@ -0,0 +1,41 @@ +# Roll Your Own Customized Hand Manipulation and Interaction System + +The default hand interaction system shipped with the **SenseGlove Unreal Engine Plugin** consists of various components, including `SGPawn`, `SGPlayerController`, `SGVirtualHandComponent`, `SGGrabComponent`, `SGTouchComponent`, and others. This system is very easy to get started with and is thoroughly documented throughout this handbook. + +However, this simplicity comes at a cost: limited functionality. At SenseGlove, we prioritize usability and practicality. That said, developing a comprehensive hand interaction system that suits every possible use case is not an easy task. For example, projects such as the [VR Expansion Plugin (VRE)](https://vreue4.com/) — an Epic MegaGrants recipient — have been in development for over a decade, and development is still ongoing. Naturally, such depth also comes with a trade-off: a steep learning curve and reduced beginner-friendliness. + +To bridge this gap and serve different groups of users, we provide the `SGPawn` system as a simple, intentionally limited, and beginner-friendly default solution that allows anyone to get up and running quickly. + +At the same time, to support intermediate and advanced users, we have aimed for full OpenXR compatibility, opening the door to a wide range of advanced possibilities. Once enabled and loaded in Unreal Engine, the SenseGlove Unreal Engine Plugin registers itself as an `OpenXRHandTracking` provider. This makes it a fully compatible, drop-in replacement for Epic’s **OpenXRHandTracking** plugin. + +As a result, [it can integrate seamlessly with any third-party system or plugin that consumes OpenXR hand-tracking data](../openxr/third-party-integrations/). Because the SenseGlove plugin is fully OpenXR-compliant, it provides hand-tracking data in the expected OpenXR format and becomes the active provider within Unreal. If your existing interaction system (for example, the VRE plugin) already relies on OpenXR hand-tracking, SenseGlove can function as a direct tracking source instead of a physical hand. + +Furthermore, the SenseGlove OpenXR backend allows you to [develop and build your own hand interaction system from scratch](../openxr/third-party-tutorials/). This system can operate either via standard OpenXR hand-tracking or with a SenseGlove device interchangeably. + +## Comparison of Available Approaches + +The following table provides an overview and comparison of different hand interaction approaches available within the SenseGlove Unreal Engine Plugin ecosystem when it comes to hand-interaction systems: + +| | **Built-in?** | **Works out of the box?** | **Beginner-friendly?** | **Learning Curve** | **Featureful** | **Customizable?** | **Supports Custom Gestures?** | +|-------------------------------------|---------------|------------------------------------|--------------------------------------------------|-----------------------------|--------------------------------------------------------------------------|-----------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------| +| **SGPawn** | ✅ Yes | ✅ Yes | ✅ Most beginer-friendly | ✅ Very easy | ⚠️ Very basic | ⚠️ Very limited | ❌ Not yet, maybe added in the future | +| **SenseGlove OpenXR** | ✅ Yes | ❌ Requires Blueprint or C++ coding | ✅ Requires a few hours of watching tutotrials | ✅ Moderate | ❌ You need to develop your own features and functionalities from scratch | ✅ Your imagination, creativity, and skill level are your limits | ✅ You have to implement your own recognition logic; example pinch detection algorithm is taught in the tutorial series | +| **VR Expansion Plugin** | ❌ No | ⚠️ Partially – requires setup | ❌ Best suited for intermediate or advanced users | ⚠️ Steep | ✅ Diverse features and functionalities | ✅ Highly customizable | ✅ Via custom logic | +| **Other OpenXR-compatible Plugins** | ❌ No | ❓ Check their documentation | ❓ Check their documentation | ❓ Check their documentation | ❓ Check their documentation | ❓ Check their documentation | ❓ Check their documentation | + +## Going Beyond SGPawn + +In the following sections, we will cover: + +- [**The Puppeteer (Controller) / Puppet (Pawn) Architecture**](./sgpawn-events-puppeteer-puppet-architecture/): how to customize and control `SGPawn` through events. +- [**SGHandTrackerComponent**](./sghandtrackercomponent/): how to obtain and consume SenseGlove hand-tracking data, the easy way. +- [**SGHapticsComponent**](./sghapticscomponent/): how to add haptic feedback to your own or third-party hand interaction systems. + +We have also covered more in-depth and advanced topics in other parts of this handbook, available in the following sections: + +- [**OpenXR**](../advanced-topics/openxr/): an introduction to OpenXR fundamentals in Unreal Engine. + - [**Consuming FXRHandTrackingState**](../advanced-topics/openxr/consuming-fxrhandtrackingstate/): explains the data layout of Unreal Engine’s `FXRHandTrackingState`. + - [**Blueprint**](../advanced-topics/openxr/consuming-fxrhandtrackingstate/blueprint.md): demonstrates how to use `FXRHandTrackingState` data and render a debug hand in Blueprint. + - [**C++**](../advanced-topics/openxr/consuming-fxrhandtrackingstate/cpp.md): demonstrates how to use `FXRHandTrackingState` data and render a debug hand in C++. + - [**Third-Party Integrations**](../advanced-topics/openxr/third-party-integrations/): provides a sample Unreal Engine `5.4` project demonstrating how to integrate SenseGlove with the VR Expansion (VRE) Plugin. + - [**Third-Party Tutorials**](../advanced-topics/openxr/third-party-tutorials/):— a tutorial series that guides you from beginner to advanced level in using `FXRHandTrackingState` to build your own hand interaction system by animating virtual hand meshes. diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghandtrackercomponent/README.md b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghandtrackercomponent/README.md new file mode 100644 index 0000000..7a6f488 --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghandtrackercomponent/README.md @@ -0,0 +1,78 @@ +# SGHandTrackerComponent + +Since [`v2.1.0`](../../../appendix/changelog.html#210---2024-08-16), the first version to introduce OpenXR support, the **SenseGlove Unreal Engine Plugin** has provided a convenient way to retrieve `FXRHandTrackingState` for SenseGlove devices. This eliminated the need to manually calculate and apply [SenseGlove wrist-tracker settings and offsets](../../../plugin-configuration/plugin-settings/tracking/wrist-tracking/), or to fetch the `Project Settings > SenseGlove > Tracking Settings > Wrist Tracking Settings` and pass them to `GetWristLocation()` in an additional step, [as described in the relevant documentation](../openxr). + +`SGHandTrackerComponent` simplifies this process even further by abstracting all of that away entirely in a high-level manner: + +1. Simply add this component to your Pawn class (or any actor that requires hand-tracking data). +2. Configure and adjust its properties. +3. Retrieve the tracking data with a single function call when needed. + +The SenseGlove UE Plugin automatically handles all required settings and offset calculations for your positional tracking hardware, regardless of whether you are using pure hand tracking or a SenseGlove device. It also provides an optional debug hand for free, allowing you to visualize the hand-tracking data instantly, without writing a single line of code. + +## Adding the Component to Your Actors + +Adding `SGHandTrackerComponent` is straightforward. In the `Components` panel, click the `Add` button and locate it under the `SenseGlove` section: + +![SGHandTrackerComponent - Adding component](sghandtrackercomponent-add-component.png "SGHandTrackerComponent - Adding Component") + +![SGHandTrackerComponent - Added component](sghandtrackercomponent-added-component.png "SGHandTrackerComponent - Added Component") + +## Blueprint Properties + +`SGHandTrackerComponent` exposes the following properties through the `Details` panel in Unreal’s Blueprint Editor: + +![SGHandTrackerComponent - Exposed Blueprint properties accessible via the Details panel](sghandtrackercomponent-details-panel-uproperties.png "SGHandTrackerComponent - Exposed Blueprint properties accessible via the Details panel") + +- `Right`: If enabled, the component tracks and provides hand-tracking data for the **right** hand. If disabled, it tracks the **left** hand instead. +- `Visualize`: If enabled, the component visualizes the hand-tracking data by rendering a debug hand. The appearance of this debug hand can be further customized, as shown below. + +![SGHandTrackerComponent - Debug hand's visualization settings customization](sghapticscomponent-debug-hand-visualization-settings.png "SGHandTrackerComponent - Debug hand's visualization settings customization") + +![SGHandTrackerComponent - Visualized debug virtual hands](../../openxr/consuming-fxrhandtrackingstate-animated-debug-virtual-hands.gif "SGHandTrackerComponent - Visualized debug virtual hands") + +## C++ and Blueprint Functions + +`SGHandTrackerComponent` provdies the following C++ methods: + +```cpp +public: + FORCEINLINE bool IsLeft() const + { + return !IsRight(); + } + + FORCEINLINE bool IsRight() const + { + return bRight; + } + + void SetRight(const bool bInRight); + + FORCEINLINE bool IsVisualized() const + { + return bVisualize; + } + + FORCEINLINE void SetVisualize(const bool bInVisualize) + { + bVisualize = bInVisualize; + } + +public: + const FXRHandTrackingState& GetHandTrackingState() const; +``` + +The same set of functions are also exposed to Blueprint: + +![SGHandTrackerComponent - Blueprint functions](sghandtrackercomponent-functions.png "SGHandTrackerComponent - Blueprint functions") + +## GetHandTrackingState + +The most important function accessible via `SGHandTrackerComponent` is `GetHandTrackingState()`: + +![SGHandTrackerComponent - GetHandTrackingState Blueprint function](sghandtrackercomponent-get-hand-tracking-state.png "SGHandTrackerComponent - GetHandTrackingState Blueprint function") + +This function returns a snapshot of the OpenXR hand-tracking data as an `FXRHandTrackingState` struct. + +For more details on [what this data contains and how to use it, please refer to the Consuming FXRHandTrackingState section](../../../advanced-topics/openxr/consuming-fxrhandtrackingstate/). diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghandtrackercomponent/sghandtrackercomponent-add-component.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghandtrackercomponent/sghandtrackercomponent-add-component.png new file mode 100644 index 0000000..61c2070 --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghandtrackercomponent/sghandtrackercomponent-add-component.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f515de9aabf7d2f48b6290f59e8370060165b9758343b2b1d1588c2c2f09d4b4 +size 154727 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghandtrackercomponent/sghandtrackercomponent-added-component.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghandtrackercomponent/sghandtrackercomponent-added-component.png new file mode 100644 index 0000000..0242201 --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghandtrackercomponent/sghandtrackercomponent-added-component.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:49bc49d96fbd3e25e30574d7dd1e685524fbd25eea99900ad44c011469bcefef +size 108151 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghandtrackercomponent/sghandtrackercomponent-details-panel-uproperties.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghandtrackercomponent/sghandtrackercomponent-details-panel-uproperties.png new file mode 100644 index 0000000..2f7a667 --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghandtrackercomponent/sghandtrackercomponent-details-panel-uproperties.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:446aafae6985feb6c27b8933476612ed68e0e741f25238f7e9f050a11ae3dbf0 +size 4760 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghandtrackercomponent/sghandtrackercomponent-functions.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghandtrackercomponent/sghandtrackercomponent-functions.png new file mode 100644 index 0000000..24b03ec --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghandtrackercomponent/sghandtrackercomponent-functions.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae1f5aec2aa519dd0075fd1d95a7f861c858fc6e8255b1f71ac16056906fe140 +size 60326 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghandtrackercomponent/sghandtrackercomponent-get-hand-tracking-state.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghandtrackercomponent/sghandtrackercomponent-get-hand-tracking-state.png new file mode 100644 index 0000000..cac06d2 --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghandtrackercomponent/sghandtrackercomponent-get-hand-tracking-state.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:49a019e3d4b9a528df5663a7f12f87d6301f83499f2ee0b77fc4f525efa8653e +size 109355 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghandtrackercomponent/sghapticscomponent-debug-hand-visualization-settings.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghandtrackercomponent/sghapticscomponent-debug-hand-visualization-settings.png new file mode 100644 index 0000000..4aa45c0 --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghandtrackercomponent/sghapticscomponent-debug-hand-visualization-settings.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f250f9076fd89cfab358bf5720db18997cca0381199f59b4c434fcd639f8925 +size 28691 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/README.md b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/README.md new file mode 100644 index 0000000..3f5fdf9 --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/README.md @@ -0,0 +1,574 @@ +# SGHapticsComponent + +`SGHapticsComponent`, introduced in the SenseGlove Unreal Engine Plugin `v2.8.0`, provides a highly convenient, high-level interface for sending various types of haptic feedback to a SenseGlove device directly from Unreal Engine. + +Prior to this release, integrating haptic feedback into a custom hand interaction system was possible in several ways: + +- SenseGlove low-level C++ API: + - Via the [SGHandLayer API](https://dev.azure.com/SenseGlove/_git/SenseGlove-Unreal?path=/Source/SenseGloveCore/Public/SGCore/SGHandLayer.h). + - Via the [SGHpaticGlove API](https://dev.azure.com/SenseGlove/_git/SenseGlove-Unreal?path=/Source/SenseGloveCore/Public/SGCore/SGHapticGlove.h). +- SenseGlove Blueprint API: + - Via the [SGHandLayer API](https://dev.azure.com/SenseGlove/_git/SenseGlove-Unreal?path=/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGHandLayerKismetLibrary.h) which provides a higher-level abstraction compared to the `SGHapticGlove` API. + - Via the [SGHapticGlove API](https://dev.azure.com/SenseGlove/_git/SenseGlove-Unreal?path=/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGHapticGloveKismetLibrary.h), + which offers a lower-level interface than the `SGHandLayer` API and requires some boilerplate code to safely obtain an instance of the desired glove (see [Safe and Reliable Glove Access in Blueprint](../../safe-glove-access-blueprint/)). +- Additionally, there is the [`SGTouchComponent`](../../../getting-started/setup-touch-system/), which provides simplified and limited functionality. On its own, it cannot trigger haptics. It is designed to work in conjunction with the stock `SGPlayerController` shipped with the SenseGlove Unreal Engine plugin. + +While all of the above approaches remain fully supported, whether in C++ or Blueprint, `SGHapticsComponent` eliminates some of the caveats associated with them, while still giving you full control in a significantly more convenient and streamlined manner. + +> [!IMPORTANT] +> For more detailed information on +> [Nova 2 Glove Vibration Tips & Tricks](https://senseglove.gitlab.io/SenseGloveDocs/nova2-vibration.html), +> please visit the in-depth guide available on +> [SenseGlove Docs](https://senseglove.gitlab.io/SenseGloveDocs/). +> +> We strongly recommend reviewing that comprehensive upstream haptics documentation, +> as this guide focuses solely on applying haptic feedback from Unreal Engine. +> +> A solid understanding of the SenseGlove haptics API and its hardware capabilities +> will help you follow and apply this guide effectively, while also enabling you +> to troubleshoot haptics-based Unreal Engine projects with confidence. + +## Adding the Component to Your Actors + +Adding `SGHapticsComponent` is straightforward. In the `Components` panel, click the `Add` button and locate it under the `SenseGlove` section: + +![SGHapticsComponent - Adding component](sghapticscomponent-add-component.png "SGHapticsComponent - Adding Component") + +![SGHapticsComponent - Added component](sghapticscomponent-added-component.png "SGHapticsComponent - Added Component") + +## Blueprint Properties + +`SGHapticsComponent` exposes the following properties through the `Details` panel in Unreal’s Blueprint Editor: + +![SGHapticsComponent - Exposed Blueprint properties accessible via the Details panel](sghapticscomponent-details-panel-uproperties.png "SGHapticsComponent - Exposed Blueprint properties accessible via the Details panel") + +- `Right`: If enabled, the component controls haptics feedback for the **right** hand. If disabled, it controls haptics for the **left** hand instead. +- `AutoStopAllHaptics`: If enabled, automatically calls the `StopHaptics()` function when: 1) The component is uninitialized 2) the `EndPlay` event occurs 3) or, the **handedness** changes. This ensures that vibrations won't continue after the simulation ends, or when the active glove it controls, is switched mid-simulation. + +## C++ and Blueprint Functions + +`SGHapticsComponent` provdies the following C++ methods: + +```cpp +public: + FORCEINLINE bool IsLeft() const + { + return !IsRight(); + } + + FORCEINLINE bool IsRight() const + { + return bRight; + } + + void SetRight(const bool bInRight); + + FORCEINLINE bool AutoStopsAllHaptics() const + { + return bAutoStopAllHaptics; + } + + void SetAutoStopAllHaptics(const bool bInAutoStopAllHaptics) + { + bAutoStopAllHaptics = bInAutoStopAllHaptics; + } + +public: + /** + * Stops all Haptic effects if any are currently playing. Useful at the end of simulations or when restarting the + * level. + */ + void StopHaptics(); + + /** + * Stops only vibrations. + */ + void StopVibrations(); + + /** + * Take all active commands in the device queue, compile them into one and send them to the device. + * + * @return Returns true if the message was successfully sent to SenseCom. + */ + bool SendHaptics(); + + /** + * Returns true if the haptic glove supports vibration feedback at the specified location. + * + * @param AtLocation + */ + bool SupportsCustomWaveform(ESGHapticLocation AtLocation) const; + + /** + * Sends a custom waveform to the location specified, provided that the glove has a motor there, and can support + * custom waveforms. + * + * @param OutWaveform + * @param Location + */ + bool SendCustomWaveform(USGCustomWaveform* OutWaveform, ESGHapticLocation Location); + + /** + * Sends a custom waveform to the location specified, provided that the glove has a motor there, and can support + * custom waveforms. + * + * @param Amplitude + * @param Duration + * @param Location + */ + bool SendCustomWaveform(float Amplitude, float Duration, ESGHapticLocation Location); + + /** + * Sends a custom waveform to the location specified, provided that the glove has a motor there, and can support + * custom waveforms. + * + * @param Amplitude + * @param Duration + * @param Frequency + * @param Location + */ + bool SendCustomWaveform(float Amplitude, float Duration, float Frequency, ESGHapticLocation Location); + + /** + * Queue a list of force-feedback levels, between 0.0f and 1.0f. Your list should be sorted from thumb to pinky. + * + * @param Levels01 Array containing the Force-Feedback levels, from 0.0f (no FFB) to 1.0f. A value < 0.0f will be + * ignored. + * + * @remarks Devices that 'only' have on/off FFB will treat any value > 0.0 as 1.0. + */ + bool QueueForceFeedbackLevels(const TArray& Levels01); + + /** + * Set the Force-Feedback value of a particular finger to a specific level + * + * @param Level01 Value will be clamped between [0...1], where 0.0f means no Force-Feedback, and 1.0 means full + * force-feedback. + * @param Finger The finger to which to send the command. + */ + bool QueueForceFeedbackLevel(int32 Finger, float Level01); + + /** + * Queue a list of vibration levels, between 0.0 and 1.0. Your list should be sorted from thumb to pinky. + * + * @param Levels01 Array containing the vibration levels, from 0.0 (no vibration) to 1.0. A value < 0.0f will be + * ignored. + * + * @remarks Devices that 'only' have on/off FFB will treat any value > 0.0 as 1.0. + */ + bool QueueVibroLevels(const TArray& Levels01); + + /** + * Queue a command to set the (continuous) vibration level at a specific location to a set amplitude. + * + * @param Location + * @param Level01 Value will be clamped between [0...1], where 0.0f means no vibration, and 1.0 means full + * vibration. + */ + bool QueueVibroLevel(ESGHapticLocation Location, float Level01); + + /** + * Returns true if the chosen glove supports active contact feedback on the Wrist. + */ + bool SupportsWristSqueeze() const; + + /** + * Queue a command to set the amount of squeeze level (a.k.a. squeeze-feedback) to the desired level + * (0 = no squeeze, 1 = full squeeze) on the wrist, and optionally send it right away. + * + * @param SqueezeLevel01 + * @param bSendImmediate + */ + bool QueueWristSqueeze(float SqueezeLevel01, bool bSendImmediate); +``` + +The same set of functions are also exposed to Blueprint: + +![SGHapticsComponent - Blueprint functions](sghapticscomponent-functions1.png "SGHapticsComponent - Blueprint functions") + +![SGHapticsComponent - Blueprint functions](sghapticscomponent-functions2.png "SGHapticsComponent - Blueprint functions") + +## Quick Blueprint Functions Reference + +Here is a brief at-a-glance reference of all `SGHapticsComponent` Blueprint functions related to haptic feedback. + +### Stop Haptics + +Stops **all active haptic effects** currently playing on the glove. + +This includes: + +- Vibrations. +- Force-feedback (FFB). +- Wrist-squeeze. +- Any queued but unsent haptic commands. + +![SGHapticsComponent - Blueprint function: Stop Haptics](sghapticscomponent-blueprint-function-stop-haptics.png "SGHapticsComponent - Blueprint function: Stop Haptics") + +**Typical Use Cases:** + +- Resetting the glove at the end of a simulation. +- Restarting a level. +- Emergency stop logic. +- Cleaning up when disabling an actor. + +**Returns:** + +This Blueprint node does not return a value. + +### Stop Vibrations + +Stops only **vibration feedback**, without affecting: + +- Force-feedback +- Wrist-squeeze + +![SGHapticsComponent - Blueprint function: Stop Vibrations](sghapticscomponent-blueprint-function-stop-vibrations.png "SGHapticsComponent - Blueprint function: Stop Vibrations") + +**Typical Use Cases:** + +It is useful for example if you want to keep finger resistance active while stopping tactile feedback. + +**Returns:** + +This Blueprint node does not return a value. + +### Send Haptics + +Compiles all currently queued haptic commands and sends them to the glove. + +![SGHapticsComponent - Blueprint function: Send Haptics](sghapticscomponent-blueprint-function-stop-haptics.png "SGHapticsComponent - Blueprint function: Send Haptics") + +The component works using a **queue-based system**: + +1. You queue multiple commands (Force-feedback, Vibro, Wrist, etc..) +2. You call **Send Haptics**. +3. Everything is compiled into one device message. + +**Returns:** + +- `true`: Indicates message has been successfully sent to SenseCom. +- `false`: Failed to send haptics. + +> [!CAUTION] +> Avoid calling `Send Haptics` repeatedly in rapid succession. +> +> For optimal performance, queue all required haptic commands first +> (Force-Feedback, Vibro, Wrist, etc.), then call `Send Haptics` +> **once per logical update cycle**. +> +> Continuously queueing commands and flushing them every frame (or multiple +> times per frame) increases device communication frequency and computational +> overhead. It may also cause Bluetooth instability and, in extreme cases, lead +> to the glove disconnecting. +> +> Instead, batch multiple haptic updates together and send them in a single +> compiled message whenever possible. This reduces processing cost, lowers +> communication load, and results in more stable and efficient haptic +> performance. + +### Supports Custom Waveform + +Checks whether the glove supports **custom waveform vibration** at a specific location. + +![SGHapticsComponent - Blueprint function: Supports Custom Waveform](sghapticscomponent-blueprint-function-supports-custom-waveform.png "SGHapticsComponent - Blueprint function: Supports Custom Waveform") + +**Parameters**: + +- **At Location:** The vibration location to test (e.g., Thumb Tip, Index Tip, Palm Index Side, etc.). + +**Returns:** + +- `true`: Custom waveform is supported. +- `false`: Not supported at this location. + +You can call this before using `Send Custom Waveform` to see if your glove model at the specified location supports vibration. + +### Send Custom Waveform + +Sends a **custom vibration waveform** to a specific haptic location. + +![SGHapticsComponent - Blueprint function: Send Custom Waveform](sghapticscomponent-blueprint-function-send-custom-waveform.png "SGHapticsComponent - Blueprint function: Send Custom Waveform") + +This function has **three overloads** in C++ and is exposed accordingly in Blueprint. + +#### 1) Send a Custom Waveform Asset + +**Parameters:** + +- **OutWaveform:** A predefined waveform asset that allows you to configure additional custom waveform parameters not available in the other two overloads, giving you more fine-grained control over the vibration’s behavior and timing. + +| Name | Unit | Range | Description | +|------------------------|-----------|--------------|-----------------------------------------------------------------------------| +| Amplitude | | 0.0 … 1.0 | Vibration intensity | +| Start Frequency | Hz | 10 … 500 | Vibration Frequency at the start of the vibration | +| End Frequency | Hz | 10 … 500 | Vibration Frequency at the end of the vibration | +| Attack Time | s | 0.0 … 1.0 | Time to reach from 0.0 to Amplitude | +| Sustain Time | s | 0.0 … 1.0 | Time for which the signal will stay at Amplitude | +| Decay Time | s | 0.0 … 1.0 | Time to reach from Amplitude down to 0.0. | +| Pause Time | s | 0.0 … 1.0 | Time between each vibration, when repeating the waveform. | +| Repeat Amount | | 1 .. 100 | How often the waveform is repeated before stopping. | +| Infinite | | True / False | If true, the glove will keep playing this waveform until a new one is played. | +| Waveform Type | EWaveType | 0 .. 5 | The shape of the waveform: Sine / Square / SawUp / SawDown / Triangle / Noise. | +| FrequencySwitchTime* | | 0.0 … 1.0 | At this position in the waveform (0.0 being start, 1.0 being the end), we start multiply the Frequency by FrequencySwitchFactor | +| FrequencySwitchFactor* | | 1.0 .. 3.0 | How much to multiply the frequency by, after FrequencySwitchTime has passed. | + +- **Location:** Where to play the waveform. + +**Returns:** + +- `true`: If command successfully sent. +- `false`: If it fails. + +#### 2) Send Amplitude + Duration + +**Parameters:** + +- **Amplitude:** Vibration strength (0.0 – 1.0). +- **Duration:** Duration in seconds. +- **Location:** Target haptic location. + +**Returns:** + +- `true`: If command successfully sent. +- `false`: If it fails. + +#### 3) Send Amplitude + Duration + Frequency + +**Parameters:** + +- **Amplitude** — Vibration strength (0.0 – 1.0). +- **Duration** — Duration in seconds. +- **Frequency** — Vibration frequency in Hz. +- **Location** — Target haptic location. + +**Returns:** + +- `true`: If command successfully sent. +- `false`: If it fails. + +### Queue Force Feedback Levels + +Queues force-feedback levels for **all fingers** at once. + +![SGHapticsComponent - Blueprint function: Queue Force Feedback Levels](sghapticscomponent-blueprint-function-queue-force-feedback-levels.png "SGHapticsComponent - Blueprint function: Queue Force Feedback Levels") + +**Parameters:** + +- **Levels 01:** Array containing the Force-Feedback levels between `0.0` (no FFB) to `1.0` (full FFB); ordered from **Thumb → Index → Middle → Ring → Pinky**. + +> [!NOTE] +> Force-feedback value behavior: +> +> - `0.0` = No resistance. +> - `1.0` = Full resistance. +> - Values `< 0.0` are ignored. +> - Devices that only support on/off FFB treat any value > `0.0` as full force. + +**Returns:** + +- `true`: If queued successfully. +- `false`: If it fails. + +### Queue Force Feedback Level + +Queues force-feedback on a **particular finger** to a specific level. + +![SGHapticsComponent - Blueprint function: Queue Force Feedback Level](sghapticscomponent-blueprint-function-queue-force-feedback-level.png "SGHapticsComponent - Blueprint function: Queue Force Feedback Level") + +**Parameters:** + +- **Finger:** Index of the finger; indexed from **Thumb → Index → Middle → Ring → Pinky**. +- **Level 01:** Value clamped between `0.0` (no FFB) to `1.0` (full FFB). + +> [!NOTE] +> Force-feedback value behavior: +> +> - `0.0` = No resistance. +> - `1.0` = Full resistance. +> - Values `< 0.0` are ignored. +> - Devices that only support on/off FFB treat any value > `0.0` as full force. + +**Returns:** + +- `true`: If queued successfully. +- `false`: If it fails. + +### Queue Vibro Levels + +> [!IMPORTANT] +> **Legacy Function – Use Custom Waveforms Instead** +> +> `Queue Vibro Levels` is retained for backward compatibility with older API +> releases. +> +> Internally, it delegates to `Send Custom Waveform`, which is the recommended +> method for applying vibrotactile feedback. +> +> For new projects, prefer `Send Custom Waveform`, as it provides more +> fine-grained control over amplitude, frequency, timing, and waveform shaping. + +Queues continuous vibrotactile levels for **all fingers** at once to a set amplitude. + +![SGHapticsComponent - Blueprint function: Queue Vibro Levels](sghapticscomponent-blueprint-function-queue-vibro-levels.png "SGHapticsComponent - Blueprint function: Queue Vibro Levels") + +**Parameters:** + +- **Levels 01:** Array containing the vibro levels between `0.0` (no vibration) to `1.0` (full vibration); ordered from **Thumb → Index → Middle → Ring → Pinky**. + +> [!NOTE] +> Force-feedback value behavior: +> +> - `0.0` = No vibration. +> - `1.0` = Full vibration. +> - Values `< 0.0` are ignored. + +**Returns:** + +- `true`: If queued successfully. +- `false`: If it fails. + +### Queue Vibro Level + +> [!IMPORTANT] +> **Legacy Function – Use Custom Waveforms Instead** +> +> `Queue Vibro Level` is retained for backward compatibility with older API +> releases. +> +> Internally, it delegates to `Send Custom Waveform`, which is the recommended +> method for applying vibrotactile feedback. +> +> For new projects, prefer `Send Custom Waveform`, as it provides more +> fine-grained control over amplitude, frequency, timing, and waveform shaping. + +Queues continuous vibration at a **specific location** to a set amplitude. + +![SGHapticsComponent - Blueprint function: Queue Vibro Level](sghapticscomponent-blueprint-function-queue-vibro-level.png "SGHapticsComponent - Blueprint function: Queue Vibro Level") + +**Parameters:** + +- **Location:** Target location to apply vibration. +- **Level01 (float):** Value clamped between `0.0` (no vibration) to `1.0` (full vibration). + +> [!NOTE] +> Force-feedback value behavior: +> +> - `0.0` = No vibration. +> - `1.0` = Full vibration. +> - Values `< 0.0` are ignored. + +**Returns:** + +- `true`: If queued successfully. +- `false`: If it fails. + +### Supports Wrist Squeeze + +Checks if the connected glove supports **active wrist-squeeze feedback**. + +![SGHapticsComponent - Blueprint function: Supports Wrist Squeeze](sghapticscomponent-blueprint-function-supports-wrist-squeeze.png "SGHapticsComponent - Blueprint function: Supports Wrist Squeeze") + +**Returns:** + +- `true`: If wrist-squeeze is supported. +- `false`: If it's not supported. + +### Queue Wrist Squeeze + +Queues a wrist-squeeze feedback at the desired level, and optionally if chosen, sends it right away. + +![SGHapticsComponent - Blueprint function: Queue Wrist Squeeze](sghapticscomponent-blueprint-function-queue-wrist-squeeze.png "SGHapticsComponent - Blueprint function: Queue Wrist Squeeze") + +**Parameters:** + +- **Squeeze Level 01:** Value clamped between `0.0` (no squeeze) to `1.0` (full squeeze). +- **Send Immediate** If set to `true`, immediately sends the command, otherwise only queues until `Send Haptics` function is called. + +> [!NOTE] +> Wrist-squeeze value behavior: +> +> - `0.0` = No squeeze. +> - `1.0` = Full squeeze. + +> [!CAUTION] +> Avoid using `Send Immediate` unless absolutely necessary. +> +> For optimal performance, queue all haptic commands first and call the +> `Send Haptics` function once after all commands are prepared. +> +> Sending commands immediately increases device communication frequency and +> computational overhead. Batching commands using `Send Haptics` reduces +> processing cost and improves performance. + +**Returns:** + +- `true`: If queued successfully. +- `false`: If it fails. + +## Blueprint Haptics Examples + +Below are practical Blueprint examples demonstrating how to combine the different `SGHapticsComponent` functions into complete interaction flows. + +### Force-Feedback Example + +This example demonstrates: + +- How to queue force-feedback with **full resistance on all fingers**. +- How to flush all queued haptics (including the recently queued force-feedback) using `Send Haptics`. +- How to stop all haptic effects after `2` seconds, if the send operation succeeds. + +![SGHapticsComponent - Blueprint example: Force-feedback](sghapticscomponent-blueprint-example-force-feedback.png "SGHapticsComponent - Blueprint example: Force-feedback") + +In this flow: + +1. Force-feedback levels are queued for all fingers. +2. `Send Haptics` compiles and sends the command to the glove. +3. If successful, `Stop Haptics` is used to clear all active effects after `2` seconds. + +### Vibrotactile Example + +This example demonstrates: + +- How to check if the glove at the current hand supports custom wave forms at the `Plam Pinky Side`. +- If so, it constructs a `SGCustomWaveform` with a duration of `500` milliseconds, amplitude of `1.0` at the frequency of `180.0` (maximum vibration on Nova 2). +- It then sets other parameters such as the `WaveType` to `Square` and the `RepeatAmount` to `10`. +- And, finally sends the custom waveforms to the glove, which is going to stop after `10` times playing. + +This example demonstrates: + +- How to check whether the current glove supports **custom waveforms** at the `Palm Pinky Side` location. +- How to construct a `SGCustomWaveform` with: + - `Duration` → `500 ms` + - `Amplitude` → `1.0` + - `Frequency` → `180.0 Hz` (maximum vibration on Nova 2) +- How to configure additional parameters such as: + - `Wave Type` → `Square` + - `Repeat Amount` → `10` +- How to send the custom waveform to the glove. + +![SGHapticsComponent - Blueprint example: Vibrotactile](sghapticscomponent-blueprint-example-vibrotactile.png "SGHapticsComponent - Blueprint example: Vibrotactile") + +The waveform will automatically stop after playing **10 repetitions**. + +### Wrist-Squeeze Example + +This example demonstrates: + +- How to check whether the connected glove supports **wrist squeeze feedback**. +- How to apply a wrist squeeze at **50% intensity**. +- How to send the command immediately without requiring an additional `Send Haptics` call. + +![SGHapticsComponent - Blueprint example: Wrist-squeeze](sghapticscomponent-blueprint-example-wrist-squeeze.png "SGHapticsComponent - Blueprint example: Wrist-squeeze") + +Because `Send Immediate` is enabled, the squeeze is transmitted instantly instead of being queued. + +> [!CAUTION] +> Avoid using `Send Immediate` unless absolutely necessary. +> +> For optimal performance, queue all haptic commands first and call the +> `Send Haptics` function once after all commands are prepared. +> +> Sending commands immediately increases device communication frequency and +> computational overhead. Batching commands using `Send Haptics` reduces +> processing cost and improves performance. diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-add-component.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-add-component.png new file mode 100644 index 0000000..2808564 --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-add-component.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:670ca3a8b3192dff8b599e0c8b092a196a70a8530accd1a3dd55af1c15f19913 +size 154625 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-added-component.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-added-component.png new file mode 100644 index 0000000..a667d5b --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-added-component.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e5b95b539602a76911a8e0d56f98aa79ac4d0fac92616ba467ad2de597665d0 +size 108308 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-example-force-feedback.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-example-force-feedback.png new file mode 100644 index 0000000..6c46419 --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-example-force-feedback.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:896221a6b3b19e64142054ce7eb836a75d040a6a93cba84ea7832cb896b61c6e +size 236003 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-example-vibrotactile.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-example-vibrotactile.png new file mode 100644 index 0000000..b611015 --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-example-vibrotactile.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79a919584fa979b53b2217044afb08807884661c913b1c9c886fbcb25dbc14d9 +size 242728 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-example-wrist-squeeze.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-example-wrist-squeeze.png new file mode 100644 index 0000000..3f5078b --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-example-wrist-squeeze.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ace4f16b658730becf245b51cbdfe33ab2bfec7c6aa361f3b8e89bf0e7ce90b7 +size 117783 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-force-feedback-level.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-force-feedback-level.png new file mode 100644 index 0000000..39dcbf9 --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-force-feedback-level.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:065e1a49611acbea2255a9483d56113c5d920d7bf421e9e242c7e611a732283b +size 49746 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-force-feedback-levels.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-force-feedback-levels.png new file mode 100644 index 0000000..987b700 --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-force-feedback-levels.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bf0c8a0ffba615e0ec20146e1fdcb312c22191b30799cb3e06098a8de3eebdda +size 41716 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-vibro-level.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-vibro-level.png new file mode 100644 index 0000000..9b448cd --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-vibro-level.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f0f14471a96c11b8982b73ffe6138e204f2f7685875a74f737ed221663139b2 +size 49732 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-vibro-levels.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-vibro-levels.png new file mode 100644 index 0000000..c7023c4 --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-vibro-levels.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eee40220c27f2a8a24aff375487e5651254e2aec7221eff35569289e48dd549f +size 42853 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-wrist-squeeze.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-wrist-squeeze.png new file mode 100644 index 0000000..3d07380 --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-wrist-squeeze.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e62f2b5fce2c4a1217d9efe32491aa4c98190d572a5528cfb274c400917c51f +size 48315 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-send-custom-waveform.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-send-custom-waveform.png new file mode 100644 index 0000000..1c48315 --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-send-custom-waveform.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e553f1c6dc7fc6314981871a4e565aab409e3669fab341f84af13ca828db73a5 +size 225378 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-send-haptics.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-send-haptics.png new file mode 100644 index 0000000..b624f20 --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-send-haptics.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0791c83b919369f619a45d5c7838e7e9d632f17dd1bfb10f81a5463c89b57fca +size 39312 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-stop-haptics.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-stop-haptics.png new file mode 100644 index 0000000..300e121 --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-stop-haptics.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8816581a10c9a392611cedc47581fd01dd732c7d86ca0c7a38a7322d42fd689 +size 32808 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-stop-vibrations.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-stop-vibrations.png new file mode 100644 index 0000000..f174023 --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-stop-vibrations.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b022b34b52e6999b390e1413ccb73f65bc6127f8b613db28c149e1b7adba345 +size 35617 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-supports-custom-waveform.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-supports-custom-waveform.png new file mode 100644 index 0000000..40409ea --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-supports-custom-waveform.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99cdc9068f8ef2536426110efdea997e3f93ed3cee977ad27bf321caea1226be +size 62353 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-supports-wrist-squeeze.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-supports-wrist-squeeze.png new file mode 100644 index 0000000..fc9e7d9 --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-supports-wrist-squeeze.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b76a2e98f000c5d5f6653a704bd628002aa54e99c0deaec4991b427330ab796 +size 38387 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-details-panel-uproperties.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-details-panel-uproperties.png new file mode 100644 index 0000000..cb0b287 --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-details-panel-uproperties.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a7cb8ad0e3e6fc106ac1d94da0f6913502dea846e242933ec7a62eef72c6ade +size 5259 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-functions1.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-functions1.png new file mode 100644 index 0000000..723503e --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-functions1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd043c2bdcc10b8ac51d91db7cc0bbc482003e83f3eda44b9ffde0aaa0681246 +size 85602 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-functions2.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-functions2.png new file mode 100644 index 0000000..573b1b0 --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-functions2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc5186534d6369f2261d51a7ea1bb981b1df5238397f721d6fce6ceca2fe6aa8 +size 88503 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/README.md b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/README.md new file mode 100644 index 0000000..073f521 --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/README.md @@ -0,0 +1,594 @@ +# SGPawn Events: The Puppeteer (Controller) / Puppet (Pawn) Architecture + +The `SGPawn` (SenseGlove Pawn) is intentionally designed as a **data/event-driven puppet**. It detects touch, grab candidates, and hand state, but it does **not make gameplay decisions** on its own. Instead, it delegates the decisions via firing events + +Usually these decisions are delegated to the `SGPlayerController` (or your own controller if you want to customize the behaviors), which acts as the **puppeteer** for SGPawn (the **puppet**): + +- It registers to `SGPawn` events at the `BeginPlay` event. +- It listens to `SGPawn` events. +- It decides when to grab or release when certain conditions are met. +- It applies gameplay logic. +- It drives haptics or other responses. + +That's [how `SGPlayerController` works under the hood](https://dev.azure.com/SenseGlove/_git/SenseGlove-Unreal?path=/Source/SenseGlove/Private/SenseGlove/GameFramework/SGPlayerController.cpp). + +This separation ensures: + +- Clean architecture. +- Full and exnsible customization. +- No hidden behavior inside `SGPawn`. +- Deterministic control over interaction rules. + +## Architecture Overview + +``` +SGPawn ---> Emits State Events ---> SGPlayerController decides what to do +``` + +`SGPawn`: + +- Tracks touch state. +- Tracks grab candidates. +- Tracks grabbed actors. +- Emits events. + +`SGPlayerController`: + +- Subscribes to events. +- Calls `Grab()` / `Release()`. +- Applies custom interaction logic. +- Updates haptics. + +## Exposed Events + +`SGPawn` provides the following event exposed to both C++ and Blueprint: + +- `OnGrabStateUpdated` +- `OnTouchStateUpdated` +- `OnActorGrabbed` +- `OnActorReleased` +- `OnActorBeginTouch` +- `OnActorEndTouch` + +![SGPawn Events](sgpawn-events.png "SGPawn Events]") + +> [!IMPORTANT] +> The current implementation of `SGPawn` relies on `3` grab colliders and `5` +> touch colliders for grab and touch detection. + +![SGPawn Grab and Touch Colliders](sgpawn-grab-touch-colliders.png "SGPawn Grab and Touch Colliders]") + +### On Grab State Updated Event + +This is the **main decision event** for grabbing logic. The Pawn informs you: + +> "Here is the current grab state. You decide what to do." + +It is defined in C++ like this: + +```cpp +DECLARE_EVENT_OneParam(ASGPawn, FGrabStateUpdatedEvent, const FSGGrabState& GrabState); +``` + +In Blueprint, the event appears as shown below: + +![Blueprint Event OnGrabStateUpdated](sgpawn-event-on-grab-state-updated.png "Blueprint Event OnGrabStateUpdated]") + +This event is triggered only when the hand is visible and when any finger on the left or right hand, equipped with a grab collider, begins overlapping (colliding with) or ends overlapping (stops colliding with) an actor that owns an [`SGGrabComponent`](../../../getting-started/setup-grab-release-system/). So in summary it fires when the following conditions are met: + +- The hand is **visible**. +- Any finger (left or right hand) equipped with a **grab collider**: + - **Begins overlapping** (starts colliding with), or + - **Ends overlapping** (stops colliding with). +- The overlapped actor owns an `SGGrabComponent`. + +Subscribers to this event receive a snapshot of the `FSGGrabState` struct. At the moment the event is fired, the struct contains the following data: + +- `Hand`: The `SGVirtualHandComponent` whose grab state was updated due to a finger beginning or ending an overlap with another actor. +- `PreviousHandLocation`: `SGPawn` continuously records hand movement every engine tick. This field stores the hand’s location from the previous tick. It can be used to calculate object velocity or apply impulse forces when an object is thrown. +- `HandVelocityHistory`: A history of previous hand locations, up to `SGPawn::MaxNumberOfHandVelocitySamples`. `MaxNumberOfHandVelocitySamples` is a `UPROPERTY` in `SGPawn` that defaults to `10` but can be adjusted as needed. +- `ActorThumbCanGrab`: The actor currently overlapping with the thumb’s grab collider. If `null`, the thumb is not overlapping any grabbable actor (which means the actor has an `SGGrabComponent`). +- `ActorIndexCanGrab`: The actor currently overlapping with the index finger’s grab collider. If `null`, the index finger is not overlapping any grabbable actor. +- `ActorMiddleCanGrab`: The actor currently overlapping with the middle finger’s grab collider. If `null`, the middle finger is not overlapping any grabbable actor. +- `GrabbedActor`: The actor currently being grabbed by this hand. If `null`, the hand is not grabbing anything at that moment. + +Here is how the current `SGPlayerController` performs grab detection and instructs the `SGPawn` it controls to execute grab and release actions: + +```cpp +void ASGPlayerController::BeginPlay() +{ + Super::BeginPlay(); + + ASGPawn* SGPawn{Cast(GetPawn())}; + if (!ensureAlwaysMsgf(IsValid(SGPawn), TEXT("%s"), TEXT("ERROR: invalid SenseGlove pawn!"))) + { + return; + } + + SGPawn->OnGrabStateUpdated().AddWeakLambda( + this, [= SG_CAPTURE_THIS](const FSGGrabState& GrabState) -> void + { + if (!IsValid(SGPawn)) + { + return; + } + + if (!IsValid(GrabState.Hand)) + { + return; + } + + const bool bHandVisible = GrabState.Hand->IsVisible(); + if (!bHandVisible) + { + if (SGPawn->IsGrabbing(GrabState.Hand)) + { + SGPawn->Release(GrabState.Hand); + } + return; + } + + if (SGPawn->IsGrabbing(GrabState.Hand)) + { + if (!IsValid(GrabState.ActorThumbCanGrab) || + (GrabState.ActorIndexCanGrab != GrabState.ActorThumbCanGrab + && GrabState.ActorMiddleCanGrab != GrabState.ActorThumbCanGrab)) + { + SGPawn->Release(GrabState.Hand); + } + } + else + { + if (SGPawn->CanGrab(GrabState.Hand, GrabState.ActorThumbCanGrab)) + { + SGPawn->Grab(GrabState.Hand, GrabState.ActorThumbCanGrab); + } + } + }); +} +``` + +In this implementation, the `SGPlayerController` listens for grab state updates and determines whether the hand should grab or release an actor based on visibility and finger overlap conditions. + +> [!TIP] +> Haptic feedback is also handled and enforced through `SGPlayerController`. +> You can +> [review the full implementation in the plguin source code for `SGPlayerController`](https://dev.azure.com/SenseGlove/_git/SenseGlove-Unreal?path=/Source/SenseGlove/Private/SenseGlove/GameFramework/SGPlayerController.cpp). +> +> In general, with the current version of the plugin, you can integrate haptic +> feedback into your own hand interaction system in several ways: +> +> - The [`SGHapticsComponent`](../sghapticscomponent/) high-level approach. +> - The SenseGlove C++ API: +> - Via the +> [SGHandLayer API](https://dev.azure.com/SenseGlove/_git/SenseGlove-Unreal?path=/Source/SenseGloveCore/Public/SGCore/SGHandLayer.h). +> - Via the +> [SGHpaticGlove API](https://dev.azure.com/SenseGlove/_git/SenseGlove-Unreal?path=/Source/SenseGloveCore/Public/SGCore/SGHapticGlove.h). +> - The SenseGlove Blueprint API: +> - Via the +> [SGHandLayer API](https://dev.azure.com/SenseGlove/_git/SenseGlove-Unreal?path=/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGHandLayerKismetLibrary.h) which provides a higher-level abstraction compared to the `SGHapticGlove` API. +> - Via the +> [SGHapticGlove API](https://dev.azure.com/SenseGlove/_git/SenseGlove-Unreal?path=/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGHapticGloveKismetLibrary.h), + which offers a lower-level interface than the `SGHandLayer` API and requires some boilerplate code to safely obtain an instance of the desired glove (see [Safe and Reliable Glove Access in Blueprint](../../safe-glove-access-blueprint/)). +> - Additionally, there is the +> [`SGTouchComponent`](../../../getting-started/setup-touch-system/), which +> provides simplified and limited functionality. On its own, it cannot trigger +> haptics. It is designed to work in conjunction with the stock +> `SGPlayerController` shipped with the SenseGlove Unreal Engine plugin. + +### Touch State Updated Event + +This is the **main decision event** for controlling the touch logic. The Pawn informs you: + +> "Here is the current touch state. You decide what to do." + +It is defined in C++ like this: + +```cpp +DECLARE_EVENT_OneParam(ASGPawn, FTouchStateUpdatedEvent, const FSGTouchState& TouchState); +``` + +In Blueprint, the event appears as shown below: + +![Blueprint Event OnTouchStateUpdated](sgpawn-event-on-touch-state-updated.png "Blueprint Event OnTouchStateUpdated]") + +This event is triggered only when the hand is visible and when any finger on the left or right hand, equipped with a grab collider, begins overlapping (colliding with) or ends overlapping (stops colliding with) an actor that owns an [`SGGrabComponent`](../../../getting-started/setup-grab-release-system/). So in summary it fires when the following conditions are met: + +- The hand is **visible**. +- Any finger (left or right hand) equipped with a **touch collider**: + - **Begins overlapping** (starts colliding with), or + - **Ends overlapping** (stops colliding with). +- The overlapped actor owns an `SGTouchComponent`. + +Subscribers to this event receive a snapshot of the `FSGTouchState` struct. At the moment the event is fired, the struct contains the following data: + +- `Hand`: The `SGVirtualHandComponent` whose touch state was updated due to a finger beginning or ending an overlap with another actor. +- `ActorThumbTouching`: The actor currently overlapping with the thumb’s touch collider. If `null`, the thumb is not overlapping any touchable actor (which means the actor has an `SGTouchComponent`). +- `ActorIndexTouching`: The actor currently overlapping with the index’s touch collider. If `null`, the index is not overlapping any touchable actor. +- `ActorMiddleTouching`: The actor currently overlapping with the middle’s touch collider. If `null`, the middle is not overlapping any touchable actor. +- `ActorRingTouching`: The actor currently overlapping with the ring’s touch collider. If `null`, the ring is not overlapping any touchable actor. +- `ActorPinkyTouching`: The actor currently overlapping with the pinky’s touch collider. If `null`, the pinky is not overlapping any touchable actor. + +Here is how the current `SGPlayerController` performs touch detection and instructs the `SGPawn` it controls to apply haptics feedback: + +```cpp +void ASGPlayerController::BeginPlay() +{ + Super::BeginPlay(); + + ASGPawn* SGPawn{Cast(GetPawn())}; + if (!ensureAlwaysMsgf(IsValid(SGPawn), TEXT("%s"), TEXT("ERROR: invalid SenseGlove pawn!"))) + { + return; + } + + SGPawn->OnTouchStateUpdated().AddWeakLambda( + this, [= SG_CAPTURE_THIS](const FSGTouchState& TouchState) -> void + { + if (!IsValid(SGPawn)) + { + return; + } + + if (!IsValid(TouchState.Hand)) + { + return; + } + + const bool bHandVisible = TouchState.Hand->IsVisible(); + if (!bHandVisible) + { + return; + } + + const bool bGloveConnected = TouchState.Hand->IsGloveConnected(); + if (!bGloveConnected) + { + return; + } + + Pimpl->UpdateHapticsFeedback(TouchState); + }); +} +``` + +In this implementation, the `SGPlayerController` listens for touch state updates and determines whether the haptic feedbacks should be applied to the glove on that hand, or not. This decision is determined based on various conditions such as hand visibility and finger overlap conditions. Since each fingers haptic feedback application and the type of haptic feedback is decided individually, for the sake of readability the logic has been offloaded to an `SGPlayerController`'s internal function `Pimpl->UpdateHapticsFeedback()`. For example, it applies vibrotactile feedback to eligible fingers like this: + +In this implementation, the `SGPlayerController` listens for touch state updates and determines whether haptic feedback should be applied to the glove on that hand. This decision is based on several conditions, such as hand visibility and finger overlap states. Since each finger’s haptic feedback and feedback type are evaluated individually, the detailed logic has been offloaded to the internal `SGPlayerController` function `Pimpl->UpdateHapticsFeedback()` for readability and separation of concerns. + +For example, vibrotactile feedback is applied to eligible fingers as follows: + +```cpp +void ASGPlayerController::FImpl::UpdateHapticsFeedback(const FSGTouchState& TouchState) +{ + if (!IsValid(TouchState.Hand)) + { + return; + } + + USGHapticGlove* Glove{TouchState.Hand->GetConnectedGlove()}; + if (!IsValid(Glove)) + { + return; + } + + const bool bGloveConnected = Glove->IsConnected(); + if (!bGloveConnected) + { + return; + } + + // some omitted code due to irrelevance + .... + + // Send Vibrotactile to the thumb finger if it's touching an actor... + if (IsValid(TouchState.ActorThumbTouching)) + { + USGCustomWaveform* CustomWaveform(GetCustomWaveform(TouchState.ActorThumbTouching)); + Glove->SendCustomWaveform(CustomWaveform, ESGHapticLocation::ThumbTip); + } + + // Send Vibrotactile to the index finger if it's touching an actor... + if (IsValid(TouchState.ActorIndexTouching)) + { + USGCustomWaveform* CustomWaveform(GetCustomWaveform(TouchState.ActorIndexTouching)); + Glove->SendCustomWaveform(CustomWaveform, ESGHapticLocation::IndexTip); + } + + // Send Vibrotactile to the middle finger if it's touching an actor... + if (IsValid(TouchState.ActorMiddleTouching)) + { + USGCustomWaveform* CustomWaveform(GetCustomWaveform(TouchState.ActorMiddleTouching)); + Glove->SendCustomWaveform(CustomWaveform, ESGHapticLocation::MiddleTip); + } + + // Send Vibrotactile to the ring finger if it's touching an actor... + if (IsValid(TouchState.ActorRingTouching)) + { + USGCustomWaveform* CustomWaveform(GetCustomWaveform(TouchState.ActorRingTouching)); + Glove->SendCustomWaveform(CustomWaveform, ESGHapticLocation::RingTip); + } + + // Send Vibrotactile to the pinky finger if it's touching an actor... + if (IsValid(TouchState.ActorPinkyTouching)) + { + USGCustomWaveform* CustomWaveform(GetCustomWaveform(TouchState.ActorPinkyTouching)); + Glove->SendCustomWaveform(CustomWaveform, ESGHapticLocation::PinkyTip); + } +} +``` + +As can be seen from the above code, the `SGCustomWaveform` is constructed via a separate helper function: + +```cpp +USGCustomWaveform* ASGPlayerController::FImpl::GetCustomWaveform(const AActor* Actor) +{ + float Amplitude = 0.0f; + float Duration = 0.0f; + float Frequency = 0.0f; + + if (IsValid(Actor)) + { + const USGTouchComponent* TouchComponent{USGTouchComponent::GetTouchComponent(Actor)}; + if (IsValid(TouchComponent)) + { + Amplitude = TouchComponent->GetVibrotactileAmplitude(); + Duration = TouchComponent->GetVibrotactileDuration(); + Frequency = TouchComponent->GetVibrotactileFrequency(); + } + } + + USGCustomWaveform* CustomWaveform{ + USGCustomWaveform::NewCustomWaveform(Owner, Amplitude, Duration, Frequency) + }; + return CustomWaveform; +} +``` + +When it comes to force-feedback, the controller sends force-feedback to all fingers at once, while still constructing the force-feedback levels array via a separate function. `5` elements for `5` fingers indexed from thumb to pinky, where element `0` corresponds to the thumb, `1` to the index finger, and so on, with `4` representing the pinky; [see the `SGTouchComponent` documentation for more details](../../../getting-started/setup-touch-system/). This is how `UpdateHapticsFeedback()` sends force-feedback to the glove: + +```cpp +void ASGPlayerController::FImpl::UpdateHapticsFeedback(const FSGTouchState& TouchState) +{ + if (!IsValid(TouchState.Hand)) + { + return; + } + + USGHapticGlove* Glove{TouchState.Hand->GetConnectedGlove()}; + if (!IsValid(Glove)) + { + return; + } + + const bool bGloveConnected = Glove->IsConnected(); + if (!bGloveConnected) + { + return; + } + + // Queue the Force-Feedback command... + TArray ForceFeedbackLevels{ + GetForceFeedbackLevels( + TouchState.ActorThumbTouching, TouchState.ActorIndexTouching, TouchState.ActorMiddleTouching, + TouchState.ActorRingTouching, TouchState.ActorPinkyTouching) + }; + Glove->QueueForceFeedbackLevels(MoveTemp(ForceFeedbackLevels)); + + // Send the haptics commands! + Glove->SendHaptics(); +} +``` + +Here is the current implementation for `GetForceFeedbackLevels()`: + +```cpp +TArray ASGPlayerController::FImpl::GetForceFeedbackLevels( + const AActor* ActorThumbTouching, + const AActor* ActorIndexTouching, + const AActor* ActorMiddleTouching, + const AActor* ActorRingTouching, + const AActor* ActorPinkyTouching) +{ + const float ThumbForceFeedbackLevel = GetForceFeedbackLevel(ActorThumbTouching); + const float IndexForceFeedbackLevel = GetForceFeedbackLevel(ActorIndexTouching); + const float MiddleForceFeedbackLevel = GetForceFeedbackLevel(ActorMiddleTouching); + const float RingForceFeedbackLevel = GetForceFeedbackLevel(ActorRingTouching); + const float PinkyForceFeedbackLevel = GetForceFeedbackLevel(ActorPinkyTouching); + + const TArray ForceFeedbackLevels{ + ThumbForceFeedbackLevel, + IndexForceFeedbackLevel, + MiddleForceFeedbackLevel, + RingForceFeedbackLevel, + PinkyForceFeedbackLevel, + }; + + return ForceFeedbackLevels; +} +``` + +> [!TIP] +> You can +> [review the full implementation in the plguin source code for `SGPlayerController`](https://dev.azure.com/SenseGlove/_git/SenseGlove-Unreal?path=/Source/SenseGlove/Private/SenseGlove/GameFramework/SGPlayerController.cpp). +> +> In general, with the current version of the plugin, you can integrate haptic +> feedback into your own hand interaction system in several ways: +> +> - The [`SGHapticsComponent`](../sghapticscomponent/) high-level approach. +> - The SenseGlove C++ API: +> - Via the +> [SGHandLayer API](https://dev.azure.com/SenseGlove/_git/SenseGlove-Unreal?path=/Source/SenseGloveCore/Public/SGCore/SGHandLayer.h). +> - Via the +> [SGHpaticGlove API](https://dev.azure.com/SenseGlove/_git/SenseGlove-Unreal?path=/Source/SenseGloveCore/Public/SGCore/SGHapticGlove.h). +> - The SenseGlove Blueprint API: +> [SGHandLayer API](https://dev.azure.com/SenseGlove/_git/SenseGlove-Unreal?path=/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGHandLayerKismetLibrary.h) which provides a higher-level abstraction compared to the `SGHapticGlove` API. +> - Via the +> [SGHapticGlove API](https://dev.azure.com/SenseGlove/_git/SenseGlove-Unreal?path=/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGHapticGloveKismetLibrary.h), + which offers a lower-level interface than the `SGHandLayer` API and requires some boilerplate code to safely obtain an instance of the desired glove (see [Safe and Reliable Glove Access in Blueprint](../../safe-glove-access-blueprint/)). +> - Additionally, there is the +> [`SGTouchComponent`](../../../getting-started/setup-touch-system/), which +> provides simplified and limited functionality. On its own, it cannot trigger +> haptics. It is designed to work in conjunction with the stock +> `SGPlayerController` shipped with the SenseGlove Unreal Engine plugin. + +### Actor Grabbed Event + +This event is triggered whenever a grab is successfully performed by either the left or right hand. Subscribers to this event are notified about **which hand** performed the grab and **which grabbable actor** (an actor that owns an `SGGrabComponent`) was grabbed. + +It is defined in C++ like this: + +```cpp +DECLARE_EVENT_TwoParams(ASGPawn, FActorGrabbedEvent, + const USGVirtualHandComponent* Hand, + const AActor* Actor); +``` + +In Blueprint, the event appears as shown below: + +![Blueprint Event OnActorGrabbed](sgpawn-event-on-actor-grabbed.png "Blueprint Event OnActorGrabbed]") + +### Actor Released Event + +This event is triggered whenever a release is successfully performed by either the left or right hand. Subscribers to this event are notified about **which hand** performed the release and **which grabbable actor** (an actor that owns an `SGGrabComponent`) was released. + +It is defined in C++ like this: + +```cpp +DECLARE_EVENT_TwoParams(ASGPawn, FActorReleasedEvent, + const USGVirtualHandComponent* Hand, + const AActor* Actor); +``` + +In Blueprint, the event appears as shown below: + +![Blueprint Event OnActorReleased](sgpawn-event-on-actor-released.png "Blueprint Event OnActorReleased]") + +### Actor Begin Touch Event + +This event is triggered whenever **any finger** on the left or right hand comes into contact with another actor. Subscribers to this event are notified about **which hand** initiated the overlap and **which touchable actor** (an actor that owns an `SGTouchComponent`) was touched. + +It is defined in C++ like this: + +```cpp +DECLARE_EVENT_TwoParams(ASGPawn, FActorBeginTouchEvent, + const USGVirtualHandComponent* Hand, + const AActor* Actor); +``` + +In Blueprint, the event appears as shown below: + +![Blueprint Event OnActorBeginTouch](sgpawn-event-on-actor-begin-touch.png "Blueprint Event OnActorBeginTouch]") + +### Actor End Touch Event + +This event is triggered whenever **any finger** on the left or right hand ends contact with another actor that was previously touched by that finger. Subscribers to this event are notified about **which hand**'s finger ended the overlap and **which touchable actor** (an actor that owns an `SGTouchComponent`) is no longer being touched by that finger. + +It is defined in C++ like this: + +```cpp +DECLARE_EVENT_TwoParams(ASGPawn, FActorEndTouchEvent, + const USGVirtualHandComponent* Hand, + const AActor* Actor); +``` + +In Blueprint, the event appears as shown below: + +![Blueprint Event OnActorEndTouch](sgpawn-event-on-actor-end-touch.png "Blueprint Event OnActorEndTouch]") + +## SGPawn Grab/Realase-Related Functions + +In addition to the events described above, `SGPawn` provides a set of helper functions related to grabbing and releasing actors. + +These functions allow you to: + +- Check whether a specific hand can grab a given actor. +- Determine whether a hand is currently grabbing an actor. +- Retrieve the currently grabbed actor via an output parameter. +- Trigger grab and release actions programmatically for either hand. + +These helper functions are exposed to both [C++](https://dev.azure.com/SenseGlove/_git/SenseGlove-Unreal?path=/Source/SenseGlove/Public/SenseGlove/GameFramework/SGPawn.h) and [Blueprint](https://dev.azure.com/SenseGlove/_git/SenseGlove-Unreal?path=/Source/SenseGloveKismet/Public/SGKismet/SGPawnKismetLibrary.h): + +```cpp +public: + FORCEINLINE bool CanLeftHandGrab(const AActor* Actor) const + { + return !IsLeftHandGrabbing() && ((IsValid(Actor) && Actor == LeftHandGrabState.ActorThumbCanGrab) + && (Actor == LeftHandGrabState.ActorIndexCanGrab || Actor == LeftHandGrabState.ActorMiddleCanGrab)); + } + + FORCEINLINE bool IsLeftHandGrabbing(const AActor* Actor) const + { + return IsValid(Actor) && LeftHandGrabState.GrabbedActor == Actor; + } + + bool IsLeftHandGrabbing(AActor*& OutActor) const; + + FORCEINLINE bool IsLeftHandGrabbing() const + { + return IsValid(LeftHandGrabState.GrabbedActor); + } + + FORCEINLINE bool CanRightHandGrab(const AActor* Actor) const + { + return !IsRightHandGrabbing() && ((IsValid(Actor) && Actor == RightHandGrabState.ActorThumbCanGrab) + && (Actor == RightHandGrabState.ActorIndexCanGrab || Actor == RightHandGrabState.ActorMiddleCanGrab)); + } + + FORCEINLINE bool IsRightHandGrabbing(const AActor* Actor) const + { + return IsValid(Actor) && RightHandGrabState.GrabbedActor == Actor; + } + + FORCEINLINE bool IsRightHandGrabbing() const + { + return IsValid(RightHandGrabState.GrabbedActor); + } + + bool IsRightHandGrabbing(AActor*& OutActor) const; + + FORCEINLINE bool CanGrab(const USGVirtualHandComponent* Hand, const AActor* Actor) const + { + return Hand == HandRight ? CanRightHandGrab(Actor) : CanLeftHandGrab(Actor); + } + + FORCEINLINE bool IsGrabbing(const USGVirtualHandComponent* Hand, const AActor* Actor) const + { + return Hand == HandRight ? IsRightHandGrabbing(Actor) : IsLeftHandGrabbing(Actor); + } + + bool IsGrabbing(const USGVirtualHandComponent* Hand, AActor*& OutActor) const; + + FORCEINLINE bool IsGrabbing(const USGVirtualHandComponent* Hand) const + { + return Hand == HandRight ? IsRightHandGrabbing() : IsLeftHandGrabbing(); + } + +public: + FORCEINLINE void GrabLeft(AActor* Actor) + { + Grab(HandLeft, Actor); + } + + FORCEINLINE void GrabRight(AActor* Actor) + { + Grab(HandRight, Actor); + } + + void Grab(USGVirtualHandComponent* Hand, AActor* Actor); + + void ReleaseLeft(); + + void ReleaseRight(); + + FORCEINLINE void Release(const USGVirtualHandComponent* Hand) + { + return Hand == HandRight ? ReleaseRight() : ReleaseLeft(); + } +``` + +The same functions can be searched within the Blueprint Editor or accessed under the `SenseGlove > Game Framework > Pawn` category: + +![SGPawn Grab/Realase-Related Blueprint Functions](sgpawn-grab-release-related-functions-1.png "SGPawn Grab/Realase-Related Blueprint Functions]") + +![SGPawn Grab/Realase-Related Blueprint Functions](sgpawn-grab-release-related-functions-2.png "SGPawn Grab/Realase-Related Blueprint Functions]") diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-event-on-actor-begin-touch.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-event-on-actor-begin-touch.png new file mode 100644 index 0000000..6148b56 --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-event-on-actor-begin-touch.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:82df14018d9c9d462a889be06ffb72e97fbafbc9b8e40ca6fc451b02e05f6478 +size 23212 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-event-on-actor-end-touch.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-event-on-actor-end-touch.png new file mode 100644 index 0000000..4f8adb4 --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-event-on-actor-end-touch.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e24648b781d9031e8a5c89698506733c74b92df33b9704d3c83dd4548dcdf71 +size 22521 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-event-on-actor-grabbed.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-event-on-actor-grabbed.png new file mode 100644 index 0000000..b56f052 --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-event-on-actor-grabbed.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9dde976174687c8763595abf441ea2f27b9532522b06c0f6bac3b286b4947bc7 +size 22185 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-event-on-actor-released.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-event-on-actor-released.png new file mode 100644 index 0000000..b5de594 --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-event-on-actor-released.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a6f309fd9ac425a78bda7afb43bb42d5531ec39c32c3614ea6be300948b241e0 +size 22422 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-event-on-grab-state-updated.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-event-on-grab-state-updated.png new file mode 100644 index 0000000..e5da60d --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-event-on-grab-state-updated.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e248495702fbcbdd695d250f23bbb65ea2e24219b59dff4bfb7575889de21dd +size 76148 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-event-on-touch-state-updated.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-event-on-touch-state-updated.png new file mode 100644 index 0000000..c80a394 --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-event-on-touch-state-updated.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:113a91bf0a7af2870baa9f1ae4f6ea2113c399fab77d32b911d5912ee37de0ec +size 69489 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-events.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-events.png new file mode 100755 index 0000000..3ae2ff8 --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-events.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:857b49a75b589aef8618c5e5058b61904d9293b0524323b458fc5a14a1895a7a +size 37989 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-grab-release-related-functions-1.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-grab-release-related-functions-1.png new file mode 100644 index 0000000..a1d2588 --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-grab-release-related-functions-1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:861f6212852e3e5e3518a737e8d63dce410ab35850c29319363f66c302bed33d +size 55041 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-grab-release-related-functions-2.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-grab-release-related-functions-2.png new file mode 100644 index 0000000..66c6b9c --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-grab-release-related-functions-2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0578738b2d4f38cfc90ab2671d474c9ecd216dc0d64c34a92b70fb7dd85862e +size 57360 diff --git a/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-grab-touch-colliders.png b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-grab-touch-colliders.png new file mode 100644 index 0000000..b245f87 --- /dev/null +++ b/Plugins/SenseGlove/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/sgpawn-grab-touch-colliders.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0c3bc0dc61c609f29f30006bbb3c403a2491aa0b78cd37081039c664c81f65b2 +size 188568 diff --git a/Plugins/SenseGlove/Handbook/src/appendix/changelog.md b/Plugins/SenseGlove/Handbook/src/appendix/changelog.md index c7151a6..b6a4d46 100644 --- a/Plugins/SenseGlove/Handbook/src/appendix/changelog.md +++ b/Plugins/SenseGlove/Handbook/src/appendix/changelog.md @@ -5,11 +5,77 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -### [Unreleased] +## [2.8.0] - 2026-02-24 + +This minor release introduces high-level haptics and hand-tracking components, simplifies OpenXR integration around `FXRHandTrackingState`, and removes legacy `FXRMotionControllerData` APIs. It also includes ABI-breaking changes, Unreal Engine deprecations, documentation expansions, and various internal improvements. + +### Added + +- Added a `USGHapticsComponent` to allow sending a variety of haptic feedbacks (force-feedback, vibrotactile, custom waveforms, and wrist-squeeze) to the gloves without touching SenseGlove's low-level API. +- Added a `USGHandTrackerComponent` to allow retrieval or visualization of `FXRHandTrackingState` without relying on low-level SenseGlove API or UE's generic `GetHandTrackingState()` functionality. This is useful when developing a custom hand-interaction system using SenseGlove/UE OpenXR API or interfacing with third-party OpenXR-compatible plugins such as [VR Expansion Plugin (VRE)](https://vreue4.com/). Using this component removes the need to calculate the wrist offsets manually, or an extra call to `USGHapticGlove::GetWristLocation()`, in comparison to when the `FXRHandTrackingState` is retrieved via UE's `GetHandTrackingState()`. +- A new `FSGDebugVirtualHand::Draw()` overload has been added to allow visualizing `FSGDebugGizmoSettings` directly. This is used internally by the new `USGHandTrackerComponent` to visualize its `FXRHandTrackingState` if `bVisualize` is enabled. +- Added a new `FSGHandLayer::GetWristLocation()` overload to allow passing `FRotator`s instead of `FQuat`s as input or output parameters. + +### Fixed + +- Fix some copyright notices with wrong copyright owner. These propably has happend during bulk replaces with class or struct names. +- Additional minor fixes and improvements that may not be listed here. + +### Changed + +- The [rename of `SGDeviceList::SenseCommRunning()` to `SGDeviceList::SenseComRunning()`](https://dev.azure.com/SenseGlove/SenseGlove-Unreal/_git/SenseGlove-Unreal/commit/663ea6a2e7b7d84991005f33ddced8d8abdc11c3?refName=refs/heads/dev&path=/Source/SenseGloveCore/Private/SGCore/SGDeviceList.cpp&_a=contents) — previously listed as part of the [v2.7.0 release](#270---2025-11-18) — was not actually included in the `master` branch due to a missed commit during cherry-picking from `dev` to `master`. Since Microsoft Azure DevOps Repositories tags are always created from `master`, the `v2.7.0`, `v2.7.1`, `v2.7.2`, and `v2.7.3` tags also do not contain this change. The rename is, however, included in the Unreal Engine `5.7`, `5.6`, `5.5`, and `5.4` packages submitted to [Epic's Fab Store](https://www.fab.com/), as those archives were built from their respective engine-specific branches, which already contained the change. The rename is now correctly applied to the `master` branch and the `v2.8.0` tag as part of the `v2.8.0` release. If you are using the source code directly from `master`, or from one of the mentioned `v2.7.x` tags obtained via Microsoft Azure DevOps Repositories (instead of the version distributed via Fab or other engine-specific branches), this introduces an ABI and API breaking change affecting both C++ and Blueprint code if your exsiting plugin version `v2.7.x` does not already include this rename. +- List existing SenseGlove components under `SenseGlove` `ClassGroup` inside Unreal's Blueprint Editor. This chagnes `ClassGroup` for `USGGrabComponent`, `USGTouchComponent`, `USGVirtualHandComponent`, and `USGWristTrackerComponent`. +- Force `USGVirtualHandComponent` and `USGWristTrackerComponent` to update their XR hand-tracking data when their handedness is updated. +- Bumped the SenseGlove Unreal Engine Marketplace Packager to `v0.6.2-b675bab`. +- Bumped the copyright years. + +### Removed + +- Dropped support for Unreal Engine `5.4`, which was already deprecated via the `v2.7.x` release series. +- Dropped support for Epic Native/Cross Toolchains `v22` (previously used for building UE `5.3` and `5.4` Linux dependencies), as they were already deprecated via previous releases. +- Removed support for the deprecated `FXRMotionControllerData`. The plugin now exclusively uses `FXRHandTrackingState` (introduced in Unreal Engine 5.5+ and supported by The SenseGlove Unreal Engine Plugin since [`v2.2.0`](#220---2024-10-22) for OpenXR hand tracking. This affects only projects that directly consume `FXRMotionControllerData` from the SenseGlove plugin in their own custom hand-tracking or interaction systems. Please see [the v2.7.x to v2.8.x migration guide](../misc/upgrade-guide/#upgrading-from-v27x-to-v28x) for more details. +- Removed SenseGlove's `GetMotionControllerData()`; the alternative implementation to `IXTrackingSystem::GetMotionControllerData()`. You can now use SenseGlove's `GetHandTrackingState()` instead of Unreal's `IXTrackingSystem::GetHandTrackingState()` which guarantees the OpenXR hand-tracking data is coming from a SenseGlove device and also takes into account the SenseGlove's wrist-tracker offsets automatically. ### Documentation +- Added a [v2.7.x to v2.8.x migration guide](../misc/upgrade-guide/#upgrading-from-v27x-to-v28x) for transitioning from `FXRMotionControllerData` to `FXRHandTrackingState` for projects that directly consume SenseGlove OpenXR data. +- Added documentation section [Roll Your Own Hand Manipulation System](../advanced-topics/roll-your-own-hand-manipulation-system/). +- Added documentation section [SGPawn Events](../advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/). +- Added documentation section [SGHandTrackerComponent](../advanced-topics/roll-your-own-hand-manipulation-system/sghandtrackercomponent/). +- Added documentation section [SGHapticsComponent](../advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/). +- Updated [Enabling XR_EXT_hand_tracking on VR Headsets](../getting-started/enabling-xr-ext-hand-tracking-vr-headsets/) documentation, replacing `FXRMotionControllerData` usage with `FXRHandTrackingState`. +- Updated [Setup the Virtual Hand Meshes](../getting-started/setup-virtual-hand-meshes/) documentation, replacing `FXRMotionControllerData` usage with `FXRHandTrackingState`. +- Updated [Plugin Configuration > Plugin Settings > Virtual Hand > Mesh](../plugin-configuration/plugin-settings/virtual-hand/mesh.md) documentation, replacing `FXRMotionControllerData` usage with `FXRHandTrackingState`. +- Updated [Advanced Topics > OpenXR](../advanced-topics/openxr/) documentation section with more relevant and plenty of useful information reflecting the recent changes. +- Updated [Advanced Topics > OpenXR > Consuming FXRHandTrackingState](../advanced-topics/openxr/consuming-fxrhandtrackingstate/) documentation section with information reflecting the recent changes. +- Updated [Advanced Topics > OpenXR > Consuming FXRHandTrackingState > Blueprint](../advanced-topics/openxr/consuming-fxrhandtrackingstate/blueprint.html) documentation section with information reflecting the recent changes. +- Updated [Advanced Topics > OpenXR > Consuming FXRHandTrackingState > C++](../advanced-topics/openxr/consuming-fxrhandtrackingstate/cpp.html) documentation section with information reflecting the recent changes. +- Removed the **Consuming FXRMotionControllerData** documentation section as it's no longer relevant. +- Removed the **Consuming FXRMotionControllerData > Blueprint** documentation section as it's no longer relevant. +- Removed the **Consuming FXRMotionControllerData > C++** documentation section as it's no longer relevant. +- Ensure deterministic dependency builds by pinning Rust toolchain. +- Changelog errata fixes. - Minor changelog formatting fixes. +- Additional minor fixes and improvements that may not be listed here. + +## [2.7.3] - 2026-02-17 + +This patch release resolves documentation build pipeline failures by updating broken mdBook tooling. + +### Documentation + +- Bumped [mdBook](https://rust-lang.github.io/mdBook/) to `v0.5.2` +- Bumped the [Michael-F-Bryan/mdbook-epub](https://github.com/Michael-F-Bryan/mdbook-epub) crate to [`21a1c8134134201a2d555313447c96e56e2a8996`](https://github.com/Michael-F-Bryan/mdbook-epub/commit/21a1c8134134201a2d555313447c96e56e2a8996), which addresses issue [#133](https://github.com/Michael-F-Bryan/mdbook-epub/issues/133). This allowed upgrading mdBook from `0.4.49` to `v0.5.2` without breaking images inside the generated ePub version of the handbook. +- Bumped [HollowMan6/mdbook-pdf](https://github.com/HollowMan6/mdbook-pdf) to `v0.1.13`. +- Removed [lambdalisue/rs-mdbook-alerts](https://github.com/lambdalisue/rs-mdbook-alerts) as it's incompatible with mdBook `v0.5.x`. The good news is that mdBook itself is now able to support this feature natively. + +## [2.7.2] - 2026-02-17 + +This patch release resolves build issues affecting Unreal Engine `5.7` on Linux `Arm64` architecture. + +### Fixed + +- Fixed an issue in UE `5.7` projects where Linux `Arm64` builds were incorrectly linking against third-party libraries compiled with Epic Native/Cross Toolchain `v25` (shipped with UE `5.6`), instead of the required Toolchain `v26` binaries (shipped with UE `5.7`). ## [2.7.1] - 2025-12-09 @@ -169,7 +235,7 @@ This minor release delivers broad compatibility, stability, and maintainability - `SGLog` now relies on `TAtomic` for thread-safe initialization. - `SGBackend` now relies on `TAtomic` for thread-safe initialization. - `USGBackend::IsBackendInitialized()` is no longer inlined and the initialization flag has been moved to the private implementation of `USGBackend`. -- Bumped the SenseGlove Unreal Engine Marketplace Packager `v0.6.0-4108c6f`. +- Bumped the SenseGlove Unreal Engine Marketplace Packager to `v0.6.0-4108c6f`. ### Removed @@ -265,7 +331,7 @@ This minor release brings various improvements and, notably, the first version t - Now the motion sources for the wrist-tracking hardware or hand-tracking are queried and populated dynamically rather than relying on the hardcoded `EControllerHand` enum. This allows the SenseGlove Unreal Engine Plugin to integrate better into other plugins such as `ViveOpenXR`, which when enabled, provides many more options as the motion source for their various wrist-tracking hardware. - `FSGWristTrackingSettings::LeftHandMotionSource` and `FSGWristTrackingSettings::RightHandMotionSource` types have changed from `EControllerHand` to `FName`. - Bumped the SenseGlove libraries to `v2.105.3-97ea18cb`. -- Bumped the SenseGlove Unreal Engine Marketplace Packager `v0.5.0-7df1183`. +- Bumped the SenseGlove Unreal Engine Marketplace Packager to `v0.5.0-7df1183`. - Bumped the copyright years. - This is the last release to support Unreal Engine `5.2`. From `v2.5.x` onwards only UE `5.3` and newer will be supported. - The `ESGViveHMDDetectionPriority` enum items have changed and are no longer backward-compatible. diff --git a/Plugins/SenseGlove/Handbook/src/appendix/extra-resources.md b/Plugins/SenseGlove/Handbook/src/appendix/extra-resources.md index 24460db..3d8ef7e 100644 --- a/Plugins/SenseGlove/Handbook/src/appendix/extra-resources.md +++ b/Plugins/SenseGlove/Handbook/src/appendix/extra-resources.md @@ -1,13 +1,13 @@ # Extra Resources -There are various resources available for older versions of the SenseGlove Unreal Engine Plugin prior to `v2.1.x` that might still be partially relevant. These include example projects, demo scenes, and tutorials. Plans are underway to provide new example projects, demo scenes, and tutorials for the latest release. In the meantime, the outdated resources can still be beneficial +There are various resources available for older versions of the SenseGlove Unreal Engine Plugin prior to [`v2.1.x`](changelog.html#210---2024-08-16) that might still be partially relevant. These include example projects, demo scenes, and tutorials. Plans are underway to provide new example projects, demo scenes, and tutorials for the latest release. In the meantime, the outdated resources can still be beneficial ## Examples and Demo Projects -- [A basic OpenXR-compatible Blueprint demo demonstrating basic functionality such as grab/release, touch with buzz and force-feedback, etc (compatible with versions v2.1.0+).](https://dev.azure.com/SenseGlove/_git/SenseGlove-Unreal-SGBasicDemo-OpenXR) -- [A basic Blueprint demo demonstrating basic functionality such as grab/release, touch with buzz and force-feedback, etc (compatible with versions >= v1.4.x and <= v2.0.x).](https://dev.azure.com/SenseGlove/_git/SenseGlove-Unreal-SGBasicDemo) -- [Example C++ API Project (only compatible with early v1.x.x releases)](https://dev.azure.com/SenseGlove/_git/SenseGlove-Unreal-SGPlaygroundCpp) -- [Example Blueprint API Project (only compatible with early v1.x.x releases)](https://dev.azure.com/SenseGlove/_git/SenseGlove-Unreal-SGPlaygroundBP) +- [A basic OpenXR-compatible Blueprint demo demonstrating basic functionality such as grab/release, touch with buzz and force-feedback, etc (compatible with versions `v2.1.0+`).](https://dev.azure.com/SenseGlove/_git/SenseGlove-Unreal-SGBasicDemo-OpenXR) +- [A basic Blueprint demo demonstrating basic functionality such as grab/release, touch with buzz and force-feedback, etc (compatible with versions >= `v1.4.x` and <= `v2.0.x)`.](https://dev.azure.com/SenseGlove/_git/SenseGlove-Unreal-SGBasicDemo) +- [Example C++ API Project (only compatible with early `v1.x.x` releases)](https://dev.azure.com/SenseGlove/_git/SenseGlove-Unreal-SGPlaygroundCpp) +- [Example Blueprint API Project (only compatible with early `v1.x.x` releases)](https://dev.azure.com/SenseGlove/_git/SenseGlove-Unreal-SGPlaygroundBP) ### Third-Party OpenXR Integration Demos diff --git a/Plugins/SenseGlove/Handbook/src/appendix/planned-features-completion-status.md b/Plugins/SenseGlove/Handbook/src/appendix/planned-features-completion-status.md index 619aa28..35cdf88 100644 --- a/Plugins/SenseGlove/Handbook/src/appendix/planned-features-completion-status.md +++ b/Plugins/SenseGlove/Handbook/src/appendix/planned-features-completion-status.md @@ -1,7 +1,8 @@ ## Planned Features Completion Status -### Implemented as of v2.7.x +### Implemented as of v2.8.x +- [X] SenseGlove Unreal Engine Handbook, a comprehensive guide to the SenseGlove Unreal Engine Plugin accessible online via [unreal.docs.senseglove.com](http://unreal.docs.senseglove.com/), and also in PDF and EPUB formats. - [X] Full SenseGlove low-level core API access through Unreal C++. - [X] Full SenseGlove low-level core API access through Blueprint. - [X] DK 1 Support. @@ -41,8 +42,10 @@ - [X] Ability to manage the Engine Scalability Settings through the SenseGlove plugin in order to change the graphics settings on the fly. - [X] Ability to automatically ask for the required permissions on Android when the plugin is enabled in any UE project. - [X] `ViveOpenXR` plugin compatibility. +- [X] A highly convenient OpenXR hand-tracking data provider component to easily feed SenseGlove data to your own custom or third-party hand-manipulation systems. +- [X] A highly convenient haptics component to easily add haptics to your own custom or third-party hand-manipulation systems. -### Upcoming features planned for the v2.7.x release +### Upcoming features planned for the v2.9.x release ### Planned features long-term diff --git a/Plugins/SenseGlove/Handbook/src/appendix/platform-support-matrix.md b/Plugins/SenseGlove/Handbook/src/appendix/platform-support-matrix.md index fffcc1e..6dcf1c2 100644 --- a/Plugins/SenseGlove/Handbook/src/appendix/platform-support-matrix.md +++ b/Plugins/SenseGlove/Handbook/src/appendix/platform-support-matrix.md @@ -2,10 +2,10 @@ | | **Windows (MSVC 2017)** | **Windows (MSVC 2019)** | **Windows (MSVC 2022)** | **Linux x86-64 (Native Toolchain)** | **Linux AArch64 (Native Toolchain)** | **Meta Quest Standalone (Android NDK)** | **HTC VIVE Standalone (Android NDK)** | **Fab** | **Azure DevOps Version** | |:--------:|-------------------------|-------------------------|-------------------------|:-----------------------------------:|:------------------------------------:|:---------------------------------------:|:-------------------------------------:|:--------:|:------------------------:| -| **5.7** | ❌ | ❌ | ✅ v2.7.x | ✅ v2.7.x | ✅ v2.7.x | ✅ v2.7.x (r25b) | ❓ | ✅ v2.7.1 | ✅ v2.7.1 | -| **5.6** | ❌ | ❌ | ✅ v2.7.x | ✅ v2.7.x | ✅ v2.7.x | ✅ v2.7.x (r25b) | ❓ | ✅ v2.7.1 | ✅ v2.7.1 | -| **5.5** | ❌ | ❌ | ✅ v2.7.x | ✅ v2.7.x | ✅ v2.7.x | ✅ v2.7.x (r25b) | ❓ | ✅ v2.7.1 | ✅ v2.7.1 | -| **5.4** | ❌ | ❌ | ⚠️ v2.7.x | ⚠️ v2.7.x | ⚠️ v2.7.x | ⚠️ v2.7.x (r25b) | ⚠️ v2.7.x (r25b) | ⚠️ v2.7.1 | ⚠️ v2.7.1 | +| **5.7** | ❌ | ❌ | ✅ v2.8.x | ✅ v2.8.x | ✅ v2.8.x | ✅ v2.8.x (r25b) | ❓ | ✅ v2.8.0 | ✅ v2.8.0 | +| **5.6** | ❌ | ❌ | ✅ v2.8.x | ✅ v2.8.x | ✅ v2.8.x | ✅ v2.8.x (r25b) | ❓ | ✅ v2.8.0 | ✅ v2.8.0 | +| **5.5** | ❌ | ❌ | ✅ v2.8.x | ✅ v2.8.x | ✅ v2.8.x | ✅ v2.8.x (r25b) | ❓ | ✅ v2.8.0 | ✅ v2.8.0 | +| **5.4** | ❌ | ❌ | ⚠️ v2.7.x | ⚠️ v2.7.x | ⚠️ v2.7.x | ⚠️ v2.7.x (r25b) | ⚠️ v2.7.x (r25b) | ⚠️ v2.7.3 | ⚠️ v2.7.3 | | **5.3** | ❌ | ⚠️ v2.6.x | ⚠️ v2.6.x | ⚠️ v2.6.x | ⚠️ v2.6.x | ⚠️ v2.6.x (r25b) | ⚠️ v2.6.x (r25b) | ⚠️ v2.6.3 | ⚠️ v2.6.3 | | **5.2** | ❌ | ⚠️ v2.4.x | ⚠️ v2.4.x | ⚠️ v2.4.x | ⚠️ v2.4.x | ⚠️ v2.4.x (r25b) | ❓ | ⚠️ v2.4.2 | ⚠️ v2.4.2 | | **5.1** | ❌ | ⚠️ v2.0.x | ⚠️ v2.0.x | ⚠️ v2.0.x | ⚠️ v2.0.x | ⚠️ v2.0.x (r25b) | ❓ | ⚠️ v2.0.0 | ⚠️ v2.0.2 | diff --git a/Plugins/SenseGlove/Handbook/src/getting-started/enabling-xr-ext-hand-tracking-vr-headsets/README.md b/Plugins/SenseGlove/Handbook/src/getting-started/enabling-xr-ext-hand-tracking-vr-headsets/README.md index 59a4b37..d05f90d 100644 --- a/Plugins/SenseGlove/Handbook/src/getting-started/enabling-xr-ext-hand-tracking-vr-headsets/README.md +++ b/Plugins/SenseGlove/Handbook/src/getting-started/enabling-xr-ext-hand-tracking-vr-headsets/README.md @@ -1,11 +1,13 @@ # Enabling XR_EXT_hand_tracking OpenXR Extension on VR Headsets > [!IMPORTANT] -> Starting from version `v2.1.0`, the SenseGlove Unreal Engine Plugin requires -> the `XR_EXT_hand_tracking` OpenXR extension to function. Without this -> OpenXR extension the plugin won't output any glove data. +> Starting from version +> [`v2.1.0`](../../appendix/changelog.html#210---2024-08-16), +> the SenseGlove Unreal Engine Plugin requires the `XR_EXT_hand_tracking` OpenXR +> extension to function. Without this OpenXR extension the plugin won't output +> any glove data. -Since version `v2.1.0`, the SenseGlove Unreal Engine Plugin requires the `XR_EXT_hand_tracking` OpenXR extension to function. Whether you are streaming your immersive 3D VR application from your PC to your VR headset, or deploying it to your VR headset in standalone mode, enabling `XR_EXT_hand_tracking` support, might require additional plugins or settings depending on the HMD's vendor or model. +Since version [`v2.1.0`](../../appendix/changelog.html#210---2024-08-16), the SenseGlove Unreal Engine Plugin requires the `XR_EXT_hand_tracking` OpenXR extension to function. Whether you are streaming your immersive 3D VR application from your PC to your VR headset, or deploying it to your VR headset in standalone mode, enabling `XR_EXT_hand_tracking` support, might require additional plugins or settings depending on the HMD's vendor or model. ## PCVR Mode diff --git a/Plugins/SenseGlove/Handbook/src/getting-started/enabling-xr-ext-hand-tracking-vr-headsets/pcvr-mode/README.md b/Plugins/SenseGlove/Handbook/src/getting-started/enabling-xr-ext-hand-tracking-vr-headsets/pcvr-mode/README.md index b5f0def..0eff855 100644 --- a/Plugins/SenseGlove/Handbook/src/getting-started/enabling-xr-ext-hand-tracking-vr-headsets/pcvr-mode/README.md +++ b/Plugins/SenseGlove/Handbook/src/getting-started/enabling-xr-ext-hand-tracking-vr-headsets/pcvr-mode/README.md @@ -1,6 +1,6 @@ # Enabling XR_EXT_hand_tracking OpenXR Extension on VR Headsets in PCVR Mode -Starting from version `v2.1.0`, the SenseGlove Unreal Engine Plugin requires the `XR_EXT_hand_tracking` OpenXR extension to function. If you are streaming your immersive 3D VR application from your PC to your VR headset, enabling `XR_EXT_hand_tracking` support, requires additional plugins and settings depending on the HMD's vendor or model. +Starting from version [`v2.1.0`](../../../appendix/changelog.html#210---2024-08-16), the SenseGlove Unreal Engine Plugin requires the `XR_EXT_hand_tracking` OpenXR extension to function. If you are streaming your immersive 3D VR application from your PC to your VR headset, enabling `XR_EXT_hand_tracking` support, requires additional plugins and settings depending on the HMD's vendor or model. ## Enabling OpenXR Plugin and Disabling OpenXRHandTracking Plugin @@ -61,7 +61,7 @@ For VIVE headsets relying on the VIVE Business Streaming application, ensure the ![VIVE Business Streaming - Hand tracking - Enabling XR_EXT_hand_tracking and Emulating VIVE Wrist Tracker as VIVE Tracker](vive-business-streaming-hand-tracking.png "VIVE Business Streaming - Hand tracking - Enabling XR_EXT_hand_tracking and Emulating VIVE Wrist Tracker as VIVE Tracker") > [!NOTE] -> Tracking and accessing `FXRMotionControllerData` output from SenseGlove +> Tracking and accessing `FXRHandTrackingState` output from SenseGlove > devices do not require Hand and Body Tracking to be enabled on the HMD device. > Enabling this feature is only necessary if you wish to use hand-tracking as a > fallback option when no glove is connected to your PC. diff --git a/Plugins/SenseGlove/Handbook/src/getting-started/enabling-xr-ext-hand-tracking-vr-headsets/standalone-mode/README.md b/Plugins/SenseGlove/Handbook/src/getting-started/enabling-xr-ext-hand-tracking-vr-headsets/standalone-mode/README.md index e59bb7d..f162734 100644 --- a/Plugins/SenseGlove/Handbook/src/getting-started/enabling-xr-ext-hand-tracking-vr-headsets/standalone-mode/README.md +++ b/Plugins/SenseGlove/Handbook/src/getting-started/enabling-xr-ext-hand-tracking-vr-headsets/standalone-mode/README.md @@ -1,6 +1,6 @@ # Enabling XR_EXT_hand_tracking OpenXR Extension on VR Headsets in Standalone Mode -Starting from version `v2.1.0`, the SenseGlove Unreal Engine Plugin requires the `XR_EXT_hand_tracking` OpenXR extension to function. If you are deploying your immersive 3D VR application to your VR headset in standalone mode, enabling `XR_EXT_hand_tracking` support, requires additional plugins and settings depending on the HMD's vendor or model. +Starting from version [`v2.1.0`](../../../appendix/changelog.html#210---2024-08-16), the SenseGlove Unreal Engine Plugin requires the `XR_EXT_hand_tracking` OpenXR extension to function. If you are deploying your immersive 3D VR application to your VR headset in standalone mode, enabling `XR_EXT_hand_tracking` support, requires additional plugins and settings depending on the HMD's vendor or model. ## Enabling OpenXR Plugin and Disabling OpenXRHandTracking Plugin diff --git a/Plugins/SenseGlove/Handbook/src/getting-started/setup-virtual-hand-meshes/README.md b/Plugins/SenseGlove/Handbook/src/getting-started/setup-virtual-hand-meshes/README.md index 736afe4..ef1df0c 100644 --- a/Plugins/SenseGlove/Handbook/src/getting-started/setup-virtual-hand-meshes/README.md +++ b/Plugins/SenseGlove/Handbook/src/getting-started/setup-virtual-hand-meshes/README.md @@ -282,6 +282,6 @@ Next, navigate to `Project Settings > Plugins > SenseGlove > Virtual Hand Settin - `Left Hand Reference Mesh` - `Right Hand Reference Mesh` -This configuration guarantees that the tracking system correctly interprets the bone transforms of the virtual hand meshes when generating `FXRMotionControllerData`. Additionally, it allows the animation system to accurately use these bone transforms when processing `FXRMotionControllerData` and animating the virtual hand meshes. +This configuration guarantees that the tracking system correctly interprets the bone transforms of the virtual hand meshes when generating `FXRHandTrackingState`. Additionally, it allows the animation system to accurately use these bone transforms when processing `FXRHandTrackingState` and animating the virtual hand meshes. -![The SGPawn and the Plugin Virtual Hand Mesh Settings - Plugin settings](virtual-hand-mesh-settings-plugin.png "[The SGPawn and the Plugin Virtual Hand Mesh Settings - Plugin settings") \ No newline at end of file +![The SGPawn and the Plugin Virtual Hand Mesh Settings - Plugin settings](virtual-hand-mesh-settings-plugin.png "[The SGPawn and the Plugin Virtual Hand Mesh Settings - Plugin settings") diff --git a/Plugins/SenseGlove/Handbook/src/license/senseglove-sdk.md b/Plugins/SenseGlove/Handbook/src/license/senseglove-sdk.md index 1da785b..8be3795 100644 --- a/Plugins/SenseGlove/Handbook/src/license/senseglove-sdk.md +++ b/Plugins/SenseGlove/Handbook/src/license/senseglove-sdk.md @@ -3,7 +3,7 @@ ``` SENSEGLOVE SDK LICENSE -Copyright (c) 2020 - 2025 SenseGlove +Copyright (c) 2020 - 2026 SenseGlove Purchase of the Product does not entitle you to ownership or a license to any software generated by SenseGlove for use with the Product (the “Software”). diff --git a/Plugins/SenseGlove/Handbook/src/license/senseglove-unreal-engine-handbook.md b/Plugins/SenseGlove/Handbook/src/license/senseglove-unreal-engine-handbook.md index f9bbf7d..70ad78f 100644 --- a/Plugins/SenseGlove/Handbook/src/license/senseglove-unreal-engine-handbook.md +++ b/Plugins/SenseGlove/Handbook/src/license/senseglove-unreal-engine-handbook.md @@ -5,7 +5,7 @@ The SenseGlove Unreal Engine Handbook is licensed under the terms of the CC BY ( ``` Attribution 4.0 International -Copyright (c) 2020 - 2025 SenseGlove +Copyright (c) 2020 - 2026 SenseGlove ======================================================================= diff --git a/Plugins/SenseGlove/Handbook/src/license/senseglove-unreal-engine-plugin.md b/Plugins/SenseGlove/Handbook/src/license/senseglove-unreal-engine-plugin.md index cbf4357..3b5345d 100644 --- a/Plugins/SenseGlove/Handbook/src/license/senseglove-unreal-engine-plugin.md +++ b/Plugins/SenseGlove/Handbook/src/license/senseglove-unreal-engine-plugin.md @@ -5,7 +5,7 @@ The SenseGlove Unreal Engine Plugin is licensed under the terms of the MIT Licen ``` MIT License -Copyright (c) 2020 - 2025 SenseGlove +Copyright (c) 2020 - 2026 SenseGlove Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Handbook/src/misc/android-standalone-deployment/README.md b/Plugins/SenseGlove/Handbook/src/misc/android-standalone-deployment/README.md index 7a9582f..01a3c04 100644 --- a/Plugins/SenseGlove/Handbook/src/misc/android-standalone-deployment/README.md +++ b/Plugins/SenseGlove/Handbook/src/misc/android-standalone-deployment/README.md @@ -17,7 +17,7 @@ Here are a few important notes to consider: > [!CAUTION] -> As of the `v2.1.0` release of the SenseGlove Unreal Engine Plugin, the +> As of the [`v2.1.0`](../../appendix/changelog.html#210---2024-08-16) release of the SenseGlove Unreal Engine Plugin, the > `XR_EXT_hand_tracking` OpenXR extension is required for the plugin to > function. Without this OpenXR extension, the plugin won't output any glove > data. diff --git a/Plugins/SenseGlove/Handbook/src/misc/upgrade-guide/README.md b/Plugins/SenseGlove/Handbook/src/misc/upgrade-guide/README.md index d7ae013..4d83663 100644 --- a/Plugins/SenseGlove/Handbook/src/misc/upgrade-guide/README.md +++ b/Plugins/SenseGlove/Handbook/src/misc/upgrade-guide/README.md @@ -1,5 +1,59 @@ # Upgrade Guide +## Upgrading from v2.7.x to v2.8.x + +### Summary of Breaking Changes + +Starting with **SenseGlove Unreal Engine Plugin v2.8.x**, support for `FXRMotionControllerData` has been **removed**. + +Although: + +* Unreal Engine **5.5** and **5.6** still support the deprecated `FXRMotionControllerData`, and +* These engine versions are still supported by plugin v2.8.x, + +the plugin now fully transitions to **`FXRHandTrackingState`**, which is the modern and recommended API introduced in **Unreal Engine 5.5+** for OpenXR hand tracking. + +Additionally: + +* Plugin v2.8.x no longer supports **Unreal Engine 5.4**. +* Because `FXRHandTrackingState` is the forward-compatible OpenXR API, continued support for `FXRMotionControllerData` is no longer maintained in the plugin. + +We have supported `FXRHandTrackingState` since [`v2.2.0` (released 2024-10-22)](../../appendix/changelog.html#220---2024-10-22), and it has been stable in production for several releases. + +## Who Is Affected? + +This change only affects you if: + +* You maintain a **custom hand manipulation or tracking system**, and +* Your implementation directly consumes `FXRMotionControllerData` provided by the SenseGlove plugin. + +If you rely solely on the plugin’s provided components and standard integration workflow, no action is required. + +## Required Migration + +If you are directly consuming `FXRMotionControllerData`, for your project to build or function as expected, you must migrate to: + +``` +FXRHandTrackingState +``` + +The migration is straightforward because both structures represent similar hand tracking data concepts within Unreal’s OpenXR framework. + +A step-by-step explanation of how to work with `FXRHandTrackingState` is available in this third-party tutorial: + +👉 [Introduction to Virtual Reality, OpenXR Hand Tracking, and Gesture Detection in Unreal Engine](../../advanced-topics/openxr/third-party-tutorials/index.html#introduction-to-virtual-reality-openxr-hand-tracking-and-gesture-detection-in-unreal-engine) + +## Why This Change? + +* `FXRMotionControllerData` is deprecated. +* `FXRHandTrackingState` is the future-proof OpenXR hand tracking API. +* The existing Unreal Engine’s OpenXR implementation is centered around `FXRHandTrackingState` and `FXRMotionControllerData` has been completely removed form UE `5.7`+. +* Removing legacy support simplifies the plugin architecture and aligns it with Unreal’s forward direction. + +If you are already using `FXRHandTrackingState` or not directly consuming the OpenXR data, no changes are required when upgrading to v2.8.x. + +## Upgrading from v2.0.x to v2.1.x + The transition from `v2.0.x` to `v2.1.x` introduces [numerous changes](../../appendix/changelog.md), including several breaking changes. The effort required to upgrade your project will vary depending on its complexity and which features of the SenseGlove Unreal Engine Project you are using. However, if you are working with a simple Blueprint project like [SGBasicDemo](https://dev.azure.com/SenseGlove/_git/SenseGlove-Unreal-SGBasicDemo), the upgrade process is quite straightforward. We successfully upgraded SGBasicDemo to [SGBasicDemo-OpenXR](https://dev.azure.com/SenseGlove/_git/SenseGlove-Unreal-SGBasicDemo-OpenXR) by following the procedure outlined below. These are the notable changes that might affect your project: @@ -13,7 +67,8 @@ These are the notable changes that might affect your project: > your project to see if any change affects or breaks your current project. > [!NOTE] -> For upgrading older versions of the plugin to `v2.0.0`, +> For upgrading older versions of the plugin to +> [`v2.0.0`](../../appendix/changelog.html#200---2024-03-22), > [a YouTube tutorial](https://youtu.be/VbWfoep-Hsg) is available. >
> diff --git a/Plugins/SenseGlove/Handbook/src/overview/README.md b/Plugins/SenseGlove/Handbook/src/overview/README.md index d3b17f8..4c8c4f2 100644 --- a/Plugins/SenseGlove/Handbook/src/overview/README.md +++ b/Plugins/SenseGlove/Handbook/src/overview/README.md @@ -75,13 +75,14 @@ Toipcs that do not fall under any specific category: For users familiar with the basics, this section explores advanced features of the plugin: - [Safe Glove Access in Blueprint](../advanced-topics/safe-glove-access-blueprint/) +- [Roll Your Own Hand Manipulation System](../advanced-topics/roll-your-own-hand-manipulation-system/) + - [SGPawn Events](../advanced-topics/roll-your-own-hand-manipulation-system/sgpawn-events-puppeteer-puppet-architecture/) + - [SGHandTrackerComponent](../advanced-topics/roll-your-own-hand-manipulation-system/sghandtrackercomponent/) + - [SGHapticsComponent](../advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/) - [OpenXR](../advanced-topics/openxr/) - [Consuming FXRHandTrackingState](../advanced-topics/openxr/consuming-fxrhandtrackingstate/) - [Blueprint](../advanced-topics/openxr/consuming-fxrhandtrackingstate/blueprint.md) - [C++](../advanced-topics/openxr/consuming-fxrhandtrackingstate/cpp.md) - - [Consuming FXRMotionControllerData](../advanced-topics/openxr/consuming-fxrmotioncontrollerdata/) - - [Blueprint](../advanced-topics/openxr/consuming-fxrmotioncontrollerdata/blueprint.md) - - [C++](../advanced-topics/openxr/consuming-fxrmotioncontrollerdata/cpp.md) - [Third-Party Integrations](../advanced-topics/openxr/third-party-integrations/) - [Third-Party Tutorials](../advanced-topics/openxr/third-party-tutorials/) diff --git a/Plugins/SenseGlove/Handbook/src/plugin-configuration/plugin-settings/virtual-hand/mesh.md b/Plugins/SenseGlove/Handbook/src/plugin-configuration/plugin-settings/virtual-hand/mesh.md index 1caa384..bdfbf73 100644 --- a/Plugins/SenseGlove/Handbook/src/plugin-configuration/plugin-settings/virtual-hand/mesh.md +++ b/Plugins/SenseGlove/Handbook/src/plugin-configuration/plugin-settings/virtual-hand/mesh.md @@ -6,7 +6,7 @@ Utilized by the SenseGlove `Tracking` module to account for the current virtual # LeftHandReferenceMesh -The virtual hand model for the left hand is to be used by the SenseGlove `Tracking` module to generate all the `26` joint data present in the `FXRMotionControllerData`. The main reason the `Tracking` module requires a virtual hand mesh as a reference is the SenseGlove Hand Pose format only provides `15` joints. So, the remaining joint data for `FXRMotionControllerData` are calculated from a virtual hand mesh compatible with the Epic rig and also the values specified by `DistalPhalangesLengthSettings`. Furthermore, when calculating the existing joints data, their current locations and rotations are taken into account in calculating the resulting `FXRMotionControllerData`. +The virtual hand model for the left hand is to be used by the SenseGlove `Tracking` module to generate all the `26` joint data present in the `FXRHandTrackingState`. The main reason the `Tracking` module requires a virtual hand mesh as a reference is the SenseGlove Hand Pose format only provides `15` joints. So, the remaining joint data for `FXRHandTrackingState` are calculated from a virtual hand mesh compatible with the Epic rig and also the values specified by `DistalPhalangesLengthSettings`. Furthermore, when calculating the existing joints data, their current locations and rotations are taken into account in calculating the resulting `FXRHandTrackingState`. By default, no virtual hand mesh is set. @@ -19,7 +19,7 @@ By default, no virtual hand mesh is set. # RightHandReferenceMesh -The virtual hand model for the right hand is to be used by the SenseGlove `Tracking` module to generate all the `26` joint data present in the `FXRMotionControllerData`. The main reason the `Tracking` module requires a virtual hand mesh as a reference is the SenseGlove Hand Pose format only provides `15` joints. So, the remaining joint data for `FXRMotionControllerData` are calculated from a virtual hand mesh compatible with the Epic rig and also the values specified by `DistalPhalangesLengthSettings`. Furthermore, when calculating the existing joints data, their current locations and rotations are taken into account in calculating the resulting `FXRMotionControllerData`. +The virtual hand model for the right hand is to be used by the SenseGlove `Tracking` module to generate all the `26` joint data present in the `FXRHandTrackingState`. The main reason the `Tracking` module requires a virtual hand mesh as a reference is the SenseGlove Hand Pose format only provides `15` joints. So, the remaining joint data for `FXRHandTrackingState` are calculated from a virtual hand mesh compatible with the Epic rig and also the values specified by `DistalPhalangesLengthSettings`. Furthermore, when calculating the existing joints data, their current locations and rotations are taken into account in calculating the resulting `FXRHandTrackingState`. By default, no virtual hand mesh is set. @@ -32,7 +32,7 @@ By default, no virtual hand mesh is set. # DistalPhalangesLengthSettings -The length of distal phalanges that cannot be retrieved from any virtual hand mesh compliant with the Epic standard rig. Also, the SenseGlove Hand Pose format does not provide these. This is used by SenseGlove `Tracking` module to calculate an `FXRMotionControllerData` the all `26` joints. The values you specify here depend on the shape of the virtual hand mesh and the defaults are approximated for the virtual hand model shipped with the Unreal Engine VRTemplate. +The length of distal phalanges that cannot be retrieved from any virtual hand mesh compliant with the Epic standard rig. Also, the SenseGlove Hand Pose format does not provide these. This is used by SenseGlove `Tracking` module to calculate an `FXRHandTrackingState` the all `26` joints. The values you specify here depend on the shape of the virtual hand mesh and the defaults are approximated for the virtual hand model shipped with the Unreal Engine VRTemplate. ## RootBoneRotationCorrection diff --git a/Plugins/SenseGlove/Packager/sgum-packager b/Plugins/SenseGlove/Packager/sgum-packager index ba11387..a19a2d1 100755 --- a/Plugins/SenseGlove/Packager/sgum-packager +++ b/Plugins/SenseGlove/Packager/sgum-packager @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5c514c80e8f4773d98f1ac63bd329be7ea3fac774036354317e48569a3631341 -size 16695588 +oid sha256:42c9655252c9e0f3e76691b7c660e195f32ed2d80756c7906732e740f8b5ecb9 +size 16830756 diff --git a/Plugins/SenseGlove/Packager/sgum-packager.exe b/Plugins/SenseGlove/Packager/sgum-packager.exe index 3c7b021..bf0da7c 100755 --- a/Plugins/SenseGlove/Packager/sgum-packager.exe +++ b/Plugins/SenseGlove/Packager/sgum-packager.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:86fa08a2fd1ae4dedd40359fb2b0b967f561793d8ea8e3b8a0bd74d899715b65 -size 17156096 +oid sha256:79aae478b1c02b8b1c9a829dc3798a7f82c0738cabf207c882bff9a3638a4dad +size 17297408 diff --git a/Plugins/SenseGlove/Packager/sgum-packager.yml b/Plugins/SenseGlove/Packager/sgum-packager.yml index c79d6c6..c88f531 100644 --- a/Plugins/SenseGlove/Packager/sgum-packager.yml +++ b/Plugins/SenseGlove/Packager/sgum-packager.yml @@ -45,7 +45,6 @@ Deploy: - "5.7" - "5.6" - "5.5" - - "5.4" Exclusions: - .git @@ -200,11 +199,6 @@ Rocket: Linux: "/opt/UE55" Windows: "C:\\OPT\\UE_5.5" - - Branch: "5.4" - Path: - Linux: "/opt/UE54" - Windows: "C:\\OPT\\UE_5.4" - NDKPaths: - Branch: "5.7" @@ -222,11 +216,6 @@ Rocket: Linux: "/opt/android/sdk/ndk/25.1.8937393" Windows: "%LOCALAPPDATA%\\Android\\Sdk\\ndk\\25.1.8937393" - - Branch: "5.4" - Path: - Linux: "/opt/android/sdk/ndk/25.1.8937393" - Windows: "%LOCALAPPDATA%\\Android\\Sdk\\ndk\\25.1.8937393" - Rsync: @@ -246,4 +235,4 @@ Rsync: DestinationDirectory: Linux: /tmp/SenseGlove-Unreal/Stage - Windows: "%TEMP%\\SenseGlove-Unreal\\Stage" \ No newline at end of file + Windows: "%TEMP%\\SenseGlove-Unreal\\Stage" diff --git a/Plugins/SenseGlove/SenseGlove.uplugin b/Plugins/SenseGlove/SenseGlove.uplugin index 1d9c1d4..3284fd6 100644 --- a/Plugins/SenseGlove/SenseGlove.uplugin +++ b/Plugins/SenseGlove/SenseGlove.uplugin @@ -1,7 +1,7 @@ { "FileVersion": 3, "Version": 1, - "VersionName": "2.7.1", + "VersionName": "2.8.0", "FriendlyName": "SenseGlove", "Description": "Integrating the SenseGlove haptic controller into Unreal Engine", "Category": "Virtual Reality", diff --git a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove.cpp b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove.cpp index b23d712..ac13303 100644 --- a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove.cpp +++ b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove.h b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove.h index ab121d0..334f908 100644 --- a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove.h +++ b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Animation/SGVirtualHandAnimInstance.cpp b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Animation/SGVirtualHandAnimInstance.cpp index c6a2e7a..a2664fd 100644 --- a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Animation/SGVirtualHandAnimInstance.cpp +++ b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Animation/SGVirtualHandAnimInstance.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Animation/SGVirtualHandAnimInstanceProxy.cpp b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Animation/SGVirtualHandAnimInstanceProxy.cpp index 05c1307..eebcc3c 100644 --- a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Animation/SGVirtualHandAnimInstanceProxy.cpp +++ b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Animation/SGVirtualHandAnimInstanceProxy.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -107,7 +107,6 @@ void FSGVirtualHandAnimInstanceProxy::PreEvaluateAnimation(UAnimInstance* InAnim return; } -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 HandTrackingState = VirtualHand->GetHandTrackingState(); if (!HandTrackingState.bValid) { @@ -115,26 +114,11 @@ void FSGVirtualHandAnimInstanceProxy::PreEvaluateAnimation(UAnimInstance* InAnim } ensureAlwaysMsgf(HandTrackingState.HandKeyLocations.Num() == HandTrackingState.HandKeyRotations.Num(), TEXT("Mismatched hand tracking state locations and rotations!")); -#else /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ - MotionControllerData = VirtualHand->GetMotionControllerData(); - if (!MotionControllerData.bValid) - { - return; - } - ensureAlwaysMsgf(MotionControllerData.HandKeyPositions.Num() == MotionControllerData.HandKeyRotations.Num(), - TEXT("Mismatched motion controller data positions and rotations!")); -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ - BoneNamesMap.Empty(); for (TArray::SizeType HandKeyIndex = 0; - HandKeyIndex < -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 - HandTrackingState.HandKeyRotations.Num() -#else /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ - MotionControllerData.HandKeyRotations.Num() -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ - ; ++HandKeyIndex) + HandKeyIndex < HandTrackingState.HandKeyRotations.Num(); + ++HandKeyIndex) { const FName& BoneName{VirtualHand->GetHandBoneName(HandKeyIndex)}; BoneNamesMap.Add(HandKeyIndex, BoneName); @@ -152,17 +136,10 @@ bool FSGVirtualHandAnimInstanceProxy::Evaluate(FPoseContext& Output) return FAnimInstanceProxy::Evaluate(Output); } -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 if (!HandTrackingState.bValid) { return FAnimInstanceProxy::Evaluate(Output); } -#else /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ - if (!MotionControllerData.bValid) - { - return FAnimInstanceProxy::Evaluate(Output); - } -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ FComponentSpacePoseContext PoseContext{Output.AnimInstanceProxy}; PoseContext.Pose.InitPose(Output.Pose); @@ -187,15 +164,9 @@ bool FSGVirtualHandAnimInstanceProxy::Evaluate(FPoseContext& Output) BoneReference.BoneIndex = BoneIndex; BoneReference.bUseSkeletonIndex = true; -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 const FVector& HandKeyLocation{HandTrackingState.HandKeyLocations[HandKeyIndex]}; const FQuat& HandKeyRotation{HandTrackingState.HandKeyRotations[HandKeyIndex]}; const FTransform HandKeyTransform{HandKeyRotation, HandKeyLocation}; -#else /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ - const FVector& HandKeyPosition{MotionControllerData.HandKeyPositions[HandKeyIndex]}; - const FQuat& HandKeyRotation{MotionControllerData.HandKeyRotations[HandKeyIndex]}; - const FTransform HandKeyTransform{HandKeyRotation, HandKeyPosition}; -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ const FTransform BoneTransform{AnimationBoneCorrectionOffsetTransform * HandKeyTransform}; FRotator BoneRotation{BoneTransform.GetRotation().Rotator()}; diff --git a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Components/SGGrabComponent.cpp b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Components/SGGrabComponent.cpp index 7ed72f5..7a91a65 100644 --- a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Components/SGGrabComponent.cpp +++ b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Components/SGGrabComponent.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Components/SGHandTrackerComponent.cpp b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Components/SGHandTrackerComponent.cpp new file mode 100644 index 0000000..ed889d5 --- /dev/null +++ b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Components/SGHandTrackerComponent.cpp @@ -0,0 +1,181 @@ +/** + * @file + * + * @author Mamadou Babaei + * + * @section LICENSE + * + * (The MIT License) + * + * Copyright (c) 2020 - 2026 SenseGlove + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * @section DESCRIPTION + * + * + */ + + +#include "SenseGlove/Components/SGHandTrackerComponent.h" + +#include "SGDebug/SGDebugVirtualHand.h" +#include "SGTracking/SGXRTracker.h" + +struct USGHandTrackerComponent::FImpl +{ + /************************ + * Static methods + ************************/ + + /************************ + * Member variables + ************************/ + + FXRHandTrackingState HandTrackingState; + + /************************ + * Owner object + ************************/ + + USGHandTrackerComponent* Owner; + + /************************ + * Constructor / Destructor + ************************/ + + explicit FImpl(USGHandTrackerComponent* InOwner); + ~FImpl(); + + /************************ + * Default copy constructor & copy assignment operator + ************************/ + + FImpl(const FImpl& Rhs) = default; + FImpl& operator=(const FImpl& Rhs) = default; + + /************************ + * Methods + ************************/ + + void UpdateXRData(); + + void Visualize() const; +}; + +USGHandTrackerComponent::USGHandTrackerComponent(const FObjectInitializer& ObjectInitializer) + : Super(ObjectInitializer), + Pimpl(TUniquePtr(new FImpl{this}, PimplDeleter)) +{ + PrimaryComponentTick.bTickEvenWhenPaused = false; + PrimaryComponentTick.bCanEverTick = true; + PrimaryComponentTick.bStartWithTickEnabled = true; + bTickInEditor = false; + bNeverNeedsRenderUpdate = true; + bAllowConcurrentTick = true; + + bRight = true; + + bVisualize = false; + VisualizationSettings.Length = 1.0f; + VisualizationSettings.XAxisColor = FColor::Red; + VisualizationSettings.YAxisColor = FColor::Green; + VisualizationSettings.ZAxisColor = FColor::Blue; + VisualizationSettings.bPersistentLines = false; + VisualizationSettings.LifeTimeModifier = 1.1f; + VisualizationSettings.DepthPriority = 0; + VisualizationSettings.Thickness = 0.15f; +} + +void USGHandTrackerComponent::SetRight(const bool bInRight) +{ + bRight = bInRight; + + Pimpl->UpdateXRData(); +} + +void USGHandTrackerComponent::InitializeComponent() +{ + Super::InitializeComponent(); + + Pimpl->UpdateXRData(); +} + +void USGHandTrackerComponent::BeginPlay() +{ + Super::BeginPlay(); + + Pimpl->UpdateXRData(); +} + +void USGHandTrackerComponent::TickComponent( + const float DeltaTime, const ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) +{ + Super::TickComponent(DeltaTime, TickType, ThisTickFunction); + + Pimpl->UpdateXRData(); + + if (IsVisualized()) + { + Pimpl->Visualize(); + } +} + +const FXRHandTrackingState& USGHandTrackerComponent::GetHandTrackingState() const +{ + return Pimpl->HandTrackingState; +} + +USGHandTrackerComponent::FImpl::FImpl(USGHandTrackerComponent* InOwner) + : Owner(InOwner) +{ +} + +USGHandTrackerComponent::FImpl::~FImpl() = default; + +void USGHandTrackerComponent::FImpl::UpdateXRData() +{ + const EControllerHand Hand = Owner->IsRight() ? EControllerHand::Right : EControllerHand::Left; + + FXRHandTrackingState State; + State.bValid = false; + const bool bGotHandTrackingState = + FSGXRTracker::GetHandTrackingState( + Owner, EXRSpaceType::UnrealWorldSpace, Hand, State); + + (void) bGotHandTrackingState; + HandTrackingState = MoveTemp(State); +} + +void USGHandTrackerComponent::FImpl::Visualize() const +{ + const UWorld* World{Owner->GetWorld()}; + + if (!HandTrackingState.bValid) + { + return; + } + + FSGDebugVirtualHand::Draw(World, HandTrackingState, Owner->VisualizationSettings); +} + +void USGHandTrackerComponent::FImplDeleter::operator()(const FImpl* P) const +{ + delete P; +} \ No newline at end of file diff --git a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Components/SGHapticsComponent.cpp b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Components/SGHapticsComponent.cpp new file mode 100644 index 0000000..8d09fa3 --- /dev/null +++ b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Components/SGHapticsComponent.cpp @@ -0,0 +1,276 @@ +/** + * @file + * + * @author Mamadou Babaei + * + * @section LICENSE + * + * (The MIT License) + * + * Copyright (c) 2020 - 2026 SenseGlove + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * @section DESCRIPTION + * + * + */ + + +#include "SenseGlove/Components/SGHapticsComponent.h" + +#include "SGCore/SGCustomWaveform.h" +#include "SGCore/SGHapticGlove.h" +#include "SGCore/SGHandLayer.h" +#include "SGTracking/SGGloveTracker.h" + +struct USGHapticsComponent::FImpl +{ + /************************ + * Static methods + ************************/ + + /************************ + * Owner object + ************************/ + + USGHapticsComponent* Owner; + + /************************ + * Constructor / Destructor + ************************/ + + explicit FImpl(USGHapticsComponent* InOwner); + ~FImpl(); + + /************************ + * Default copy constructor & copy assignment operator + ************************/ + + FImpl(const FImpl& Rhs) = default; + FImpl& operator=(const FImpl& Rhs) = default; + + /************************ + * Methods + ************************/ + + FORCEINLINE USGHapticGlove* GetGlove() const + { + const USGGloveTracker* GloveTracker{USGGloveTracker::GetInstance(Owner->GetOuter())}; + USGHapticGlove* Glove{IsValid(GloveTracker) ? GloveTracker->GetGlove(Owner->IsRight()) : nullptr}; + return Glove; + } + + void AutoStopAllHaptics() const; +}; + +USGHapticsComponent::USGHapticsComponent(const FObjectInitializer& ObjectInitializer) + : Super(ObjectInitializer), + Pimpl(TUniquePtr(new FImpl{this}, PimplDeleter)) +{ + bRight = true; + bAutoStopAllHaptics = true; +} + +void USGHapticsComponent::SetRight(const bool bInRight) +{ + bRight = bInRight; + + if (bAutoStopAllHaptics) + { + Pimpl->AutoStopAllHaptics(); + } +} + +void USGHapticsComponent::UninitializeComponent() +{ + Super::UninitializeComponent(); + + if (bAutoStopAllHaptics) + { + Pimpl->AutoStopAllHaptics(); + } +} + +void USGHapticsComponent::EndPlay(const EEndPlayReason::Type EndPlayReason) +{ + Super::EndPlay(EndPlayReason); + + if (bAutoStopAllHaptics) + { + Pimpl->AutoStopAllHaptics(); + } +} + +void USGHapticsComponent::StopHaptics() +{ + USGHapticGlove* Glove{Pimpl->GetGlove()}; + if (IsValid(Glove) && Glove->IsConnected()) + { + Glove->StopHaptics(); + } +} + +void USGHapticsComponent::StopVibrations() +{ + USGHapticGlove* Glove{Pimpl->GetGlove()}; + if (IsValid(Glove) && Glove->IsConnected()) + { + Glove->StopVibrations(); + } +} + +bool USGHapticsComponent::SendHaptics() +{ + USGHapticGlove* Glove{Pimpl->GetGlove()}; + if (IsValid(Glove) && Glove->IsConnected()) + { + return Glove->SendHaptics(); + } + + return false; +} + +bool USGHapticsComponent::SupportsCustomWaveform(const ESGHapticLocation AtLocation) const +{ + USGHapticGlove* Glove{Pimpl->GetGlove()}; + if (IsValid(Glove) && Glove->IsConnected()) + { + return Glove->SupportsCustomWaveform(AtLocation); + } + + return false; +} + +bool USGHapticsComponent::SendCustomWaveform( + USGCustomWaveform* OutWaveform, const ESGHapticLocation Location) +{ + USGHapticGlove* Glove{Pimpl->GetGlove()}; + if (IsValid(Glove) && Glove->IsConnected()) + { + return Glove->SendCustomWaveform(OutWaveform, Location); + } + + return false; +} + +bool USGHapticsComponent::SendCustomWaveform( + const float Amplitude, const float Duration, const ESGHapticLocation Location) +{ + USGHapticGlove* Glove{Pimpl->GetGlove()}; + if (IsValid(Glove) && Glove->IsConnected()) + { + USGCustomWaveform* Waveform{ + USGCustomWaveform::NewCustomWaveform(GetOuter(), Amplitude, Duration) + }; + return Glove->SendCustomWaveform(MoveTemp(Waveform), Location); + } + + return false; +} + +bool USGHapticsComponent::SendCustomWaveform( + const float Amplitude, const float Duration, const float Frequency, const ESGHapticLocation Location) +{ + USGHapticGlove* Glove{Pimpl->GetGlove()}; + if (IsValid(Glove) && Glove->IsConnected()) + { + USGCustomWaveform* Waveform{ + USGCustomWaveform::NewCustomWaveform(GetOuter(), Amplitude, Duration, Frequency) + }; + return Glove->SendCustomWaveform(MoveTemp(Waveform), Location); + } + + return false; +} + +bool USGHapticsComponent::QueueForceFeedbackLevels(const TArray& Levels01) +{ + USGHapticGlove* Glove{Pimpl->GetGlove()}; + if (IsValid(Glove) && Glove->IsConnected()) + { + return Glove->QueueForceFeedbackLevels(Levels01); + } + + return false; +} + +bool USGHapticsComponent::QueueForceFeedbackLevel(const int32 Finger, const float Level01) +{ + USGHapticGlove* Glove{Pimpl->GetGlove()}; + if (IsValid(Glove) && Glove->IsConnected()) + { + return Glove->QueueForceFeedbackLevel(Finger, Level01); + } + + return false; +} + +bool USGHapticsComponent::QueueVibroLevels(const TArray& Levels01) +{ + USGHapticGlove* Glove{Pimpl->GetGlove()}; + if (IsValid(Glove) && Glove->IsConnected()) + { + return Glove->QueueVibroLevels(Levels01); + } + + return false; +} + +bool USGHapticsComponent::QueueVibroLevel(const ESGHapticLocation Location, const float Level01) +{ + USGHapticGlove* Glove{Pimpl->GetGlove()}; + if (IsValid(Glove) && Glove->IsConnected()) + { + return Glove->QueueVibroLevel(Location, Level01); + } + + return false; +} + +bool USGHapticsComponent::SupportsWristSqueeze() const +{ + return FSGHandLayer::SupportsWristSqueeze(IsRight()); +} + +bool USGHapticsComponent::QueueWristSqueeze(const float SqueezeLevel01, const bool bSendImmediate) +{ + return FSGHandLayer::QueueCommand_WristSqueeze(IsRight(), SqueezeLevel01, bSendImmediate); +} + +USGHapticsComponent::FImpl::FImpl(USGHapticsComponent* InOwner) + : Owner(InOwner) +{ +} + +USGHapticsComponent::FImpl::~FImpl() = default; + +void USGHapticsComponent::FImpl::AutoStopAllHaptics() const +{ + USGHapticGlove* Glove{GetGlove()}; + if (IsValid(Glove) && Glove->IsConnected() && Owner->bAutoStopAllHaptics) + { + Glove->StopHaptics(); + } +} + +void USGHapticsComponent::FImplDeleter::operator()(const FImpl* P) const +{ + delete P; +} \ No newline at end of file diff --git a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Components/SGTouchComponent.cpp b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Components/SGTouchComponent.cpp index e256a03..281e437 100644 --- a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Components/SGTouchComponent.cpp +++ b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Components/SGTouchComponent.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Components/SGVirtualHandComponent.cpp b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Components/SGVirtualHandComponent.cpp index 0e171ad..8297e4b 100644 --- a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Components/SGVirtualHandComponent.cpp +++ b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Components/SGVirtualHandComponent.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -47,7 +47,6 @@ #include "SenseGlove/Animation/SGVirtualHandAnimInstance.h" #include "SenseGlove/Components/SGWristTrackerComponent.h" -#include "SGBuildHacks/SGPlatform.h" #include "SGCore/SGHapticGlove.h" #include "SGDebug/SGDebugVirtualHand.h" #include "SGLog/SGLog.h" @@ -100,13 +99,7 @@ struct USGVirtualHandComponent::FImpl ECollisionEnabled::Type CachedCollisionEnabled; FCollisionResponseContainer CachedCollisionResponse; -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION < 7 - FXRMotionControllerData MotionControllerData; -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION < 7 */ - -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 FXRHandTrackingState HandTrackingState; -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ /************************ * Owner object @@ -166,6 +159,8 @@ struct USGVirtualHandComponent::FImpl void DrawDebugVirtualHand() const; void TriggerHandVisibilityChangedEvent(bool bNewVisibility) const; + + void AutoStopAllHaptics() const; }; FName USGVirtualHandComponent::FImpl::ParseVirtualHandSettingsOverridesPropertyName(const FName& PropertyName) @@ -246,11 +241,7 @@ USGVirtualHandComponent::USGVirtualHandComponent(const FObjectInitializer& Objec Super::SetCollisionResponseToChannel(ECC_Vehicle, ECR_Block); Super::SetCollisionResponseToChannel(ECC_Destructible, ECR_Block); -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 Super::SetAnimInstanceClass(USGVirtualHandAnimInstance::StaticClass()); -#else /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ - Super::SetAnimClass(USGVirtualHandAnimInstance::StaticClass()); -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ bRight = true; @@ -267,6 +258,14 @@ void USGVirtualHandComponent::SetRight(const bool bInRight) { bRight = bInRight; + const bool bAutoStopHaptics = GetVirtualHandSettings().HapticsSettings.bAutoStopAllHapticsOnEndPlay; + if (bAutoStopHaptics) + { + Pimpl->AutoStopAllHaptics(); + } + + Pimpl->UpdateXRData(); + if (!Pimpl->IsUsingUserMesh()) { Pimpl->SetDefaultMesh(); @@ -305,7 +304,6 @@ FSGVirtualHandSettings USGVirtualHandComponent::GetVirtualHandSettings() const return VirtualHandSettings; } -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 void USGVirtualHandComponent::SetAnimInstanceClass(UClass* NewClass) { ensureAlwaysMsgf((TIsDerivedFrom::IsDerived), @@ -313,15 +311,6 @@ void USGVirtualHandComponent::SetAnimInstanceClass(UClass* NewClass) Super::SetAnimInstanceClass(NewClass); } -#else /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ -void USGVirtualHandComponent::SetAnimClass(UClass* NewClass) -{ - ensureAlwaysMsgf((TIsDerivedFrom::IsDerived), - TEXT("The AnimInstance class must be a subclass of USGVirtualHandAnimInstance!")); - - Super::SetAnimClass(NewClass); -} -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ void USGVirtualHandComponent::PostInitProperties() { @@ -372,24 +361,22 @@ void USGVirtualHandComponent::InitializeComponent() { Super::InitializeComponent(); + Pimpl->UpdateXRData(); + if (!Pimpl->IsUsingUserMesh()) { Pimpl->SetDefaultMesh(); } - - Pimpl->UpdateXRData(); } void USGVirtualHandComponent::UninitializeComponent() { Super::UninitializeComponent(); - const USGGloveTracker* GloveTracker{USGGloveTracker::GetInstance(GetOuter())}; - USGHapticGlove* Glove{IsValid(GloveTracker) ? GloveTracker->GetGlove(IsRight()) : nullptr}; const bool bAutoStopHaptics = GetVirtualHandSettings().HapticsSettings.bAutoStopAllHapticsOnEndPlay; - if (IsValid(Glove) && Glove->IsConnected() && bAutoStopHaptics) + if (bAutoStopHaptics) { - Glove->StopHaptics(); + Pimpl->AutoStopAllHaptics(); } } @@ -404,12 +391,10 @@ void USGVirtualHandComponent::EndPlay(const EEndPlayReason::Type EndPlayReason) { Super::EndPlay(EndPlayReason); - const USGGloveTracker* GloveTracker{USGGloveTracker::GetInstance(GetOuter())}; - USGHapticGlove* Glove{IsValid(GloveTracker) ? GloveTracker->GetGlove(IsRight()) : nullptr}; const bool bAutoStopHaptics = GetVirtualHandSettings().HapticsSettings.bAutoStopAllHapticsOnEndPlay; - if (IsValid(Glove) && Glove->IsConnected() && bAutoStopHaptics) + if (bAutoStopHaptics) { - Glove->StopHaptics(); + Pimpl->AutoStopAllHaptics(); } } @@ -471,12 +456,10 @@ USGHapticGlove* USGVirtualHandComponent::GetConnectedGlove() const return Glove; } -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 const FXRHandTrackingState& USGVirtualHandComponent::GetHandTrackingState() const { return Pimpl->HandTrackingState; } -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ const TArray& USGVirtualHandComponent::GetHandBoneNames() const { @@ -749,36 +732,14 @@ void USGVirtualHandComponent::FImpl::UpdateXRData() { const EControllerHand Hand = Owner->IsRight() ? EControllerHand::Right : EControllerHand::Left; -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION < 7 - { - FXRMotionControllerData Data; - Data.bValid = false; + FXRHandTrackingState State; + State.bValid = false; + const bool bGotHandTrackingState = + FSGXRTracker::GetHandTrackingState( + Owner, EXRSpaceType::UnrealWorldSpace, Hand, State); - - - PRAGMA_DISABLE_DEPRECATION_WARNINGS - const bool bGotMotionControllerData = - FSGXRTracker::GetMotionControllerData(Owner, Hand, Data); - PRAGMA_ENABLE_DEPRECATION_WARNINGS - - (void) - bGotMotionControllerData; - MotionControllerData = MoveTemp(Data); - } -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION < 7 */ - -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 - { - FXRHandTrackingState State; - State.bValid = false; - const bool bGotHandTrackingState = - FSGXRTracker::GetHandTrackingState( - Owner, EXRSpaceType::UnrealWorldSpace, Hand, State); - - (void) bGotHandTrackingState; - HandTrackingState = MoveTemp(State); - } -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ + (void) bGotHandTrackingState; + HandTrackingState = MoveTemp(State); } void USGVirtualHandComponent::FImpl::SetVisibility(const bool bInVisible) @@ -799,14 +760,7 @@ void USGVirtualHandComponent::FImpl::SetVisibility(const bool bInVisible) void USGVirtualHandComponent::FImpl::UpdateVisibility() { - const bool bHandDataAvailable = -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 - HandTrackingState.bValid -#else /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ - MotionControllerData.bValid - && MotionControllerData.DeviceVisualType == EXRVisualType::Hand -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ - ; + const bool bHandDataAvailable = HandTrackingState.bValid; const bool bHandVisible = Owner->IsVisible(); const bool bShouldBeVisibleWhenHandDataUnavailable = Owner->GetVirtualHandSettings().bVisibleWhenHandDataUnavailable; @@ -865,23 +819,12 @@ void USGVirtualHandComponent::FImpl::DrawDebugVirtualHand() const return; } -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 if (!HandTrackingState.bValid) { return; } FSGDebugVirtualHand::Draw(World, HandTrackingState, Owner->GetVirtualHandSettings().DebuggingSettings); -#else /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ - - if (!MotionControllerData.bValid - || MotionControllerData.DeviceVisualType == EXRVisualType::Hand) - { - return; - } - - FSGDebugVirtualHand::Draw(World, MotionControllerData, Owner->GetVirtualHandSettings().DebuggingSettings); -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ } void USGVirtualHandComponent::FImpl::TriggerHandVisibilityChangedEvent(const bool bNewVisibility) const @@ -890,6 +833,17 @@ void USGVirtualHandComponent::FImpl::TriggerHandVisibilityChangedEvent(const boo Owner->OnHandVisibilityChanged(bNewVisibility); } +void USGVirtualHandComponent::FImpl::AutoStopAllHaptics() const +{ + const USGGloveTracker* GloveTracker{USGGloveTracker::GetInstance(Owner->GetOuter())}; + USGHapticGlove* Glove{IsValid(GloveTracker) ? GloveTracker->GetGlove(Owner->IsRight()) : nullptr}; + const bool bAutoStopHaptics = Owner->GetVirtualHandSettings().HapticsSettings.bAutoStopAllHapticsOnEndPlay; + if (IsValid(Glove) && Glove->IsConnected() && bAutoStopHaptics) + { + Glove->StopHaptics(); + } +} + void USGVirtualHandComponent::FImplDeleter::operator()(const FImpl* P) const { delete P; diff --git a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Components/SGWristTrackerComponent.cpp b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Components/SGWristTrackerComponent.cpp index 93e9d32..9a034d2 100644 --- a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Components/SGWristTrackerComponent.cpp +++ b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Components/SGWristTrackerComponent.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -37,7 +37,6 @@ #include "IXRTrackingSystem.h" -#include "SGBuildHacks/SGPlatform.h" #include "SGDebug/SGDebugGizmo.h" #include "SGLog/SGLog.h" #include "SGSettings/SGSettings.h" @@ -57,13 +56,7 @@ struct USGWristTrackerComponent::FImpl bool bOverridePluginSettingsPropertyAlreadyModified; -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION < 7 - FXRMotionControllerData MotionControllerData; -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION < 7 */ - -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 FXRHandTrackingState HandTrackingState; -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ /************************ * Owner object @@ -146,7 +139,10 @@ FName USGWristTrackerComponent::FImpl::ParseWristTrackingSettingsOverridesProper void USGWristTrackerComponent::SetRight(const bool bInRight) { bRight = bInRight; + Pimpl->UpdateMotionSource(); + Pimpl->UpdateXRData(); + Pimpl->UpdateWristTrackingData(); } void USGWristTrackerComponent::SetWristTrackingSettingsOverrides( @@ -255,19 +251,10 @@ void USGWristTrackerComponent::EditorTick( Pimpl->UpdateWristTrackingData(); } -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION < 7 -const FXRMotionControllerData& USGWristTrackerComponent::GetMotionControllerData() const -{ - return Pimpl->MotionControllerData; -} -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION < 7 */ - -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 const FXRHandTrackingState& USGWristTrackerComponent::GetHandTrackingState() const { return Pimpl->HandTrackingState; } -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ USGWristTrackerComponent::FImpl::FImpl(USGWristTrackerComponent* InOwner) : bOverridePluginSettingsPropertyAlreadyModified(false), @@ -331,35 +318,14 @@ void USGWristTrackerComponent::FImpl::UpdateXRData() { const EControllerHand Hand = Owner->IsRight() ? EControllerHand::Right : EControllerHand::Left; -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION < 7 - { - FXRMotionControllerData Data; - Data.bValid = false; + FXRHandTrackingState State; + State.bValid = false; + const bool bGotHandTrackingState = + FSGXRTracker::GetHandTrackingState( + Owner, EXRSpaceType::UnrealWorldSpace, Hand, State); - - PRAGMA_DISABLE_DEPRECATION_WARNINGS - const bool bGotMotionControllerData = - FSGXRTracker::GetMotionControllerData(Owner, Hand, Data); - PRAGMA_ENABLE_DEPRECATION_WARNINGS - - (void) - bGotMotionControllerData; - MotionControllerData = MoveTemp(Data); - } -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION < 7 */ - -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 - { - FXRHandTrackingState State; - State.bValid = false; - const bool bGotHandTrackingState = - FSGXRTracker::GetHandTrackingState( - Owner, EXRSpaceType::UnrealWorldSpace, Hand, State); - - (void) bGotHandTrackingState; - HandTrackingState = MoveTemp(State); - } -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ + (void) bGotHandTrackingState; + HandTrackingState = MoveTemp(State); } void USGWristTrackerComponent::FImpl::UpdateWristTrackingData() const diff --git a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Engine/SGGameInstance.cpp b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Engine/SGGameInstance.cpp index 748135e..a8f54d7 100644 --- a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Engine/SGGameInstance.cpp +++ b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Engine/SGGameInstance.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/GameFramework/SGGameModeBase.cpp b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/GameFramework/SGGameModeBase.cpp index a58adc5..13372f6 100644 --- a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/GameFramework/SGGameModeBase.cpp +++ b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/GameFramework/SGGameModeBase.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/GameFramework/SGGameUserSettings.cpp b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/GameFramework/SGGameUserSettings.cpp index 1f399d7..57c5bdb 100644 --- a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/GameFramework/SGGameUserSettings.cpp +++ b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/GameFramework/SGGameUserSettings.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -200,9 +200,7 @@ void USGGameUserSettings::SetEngineScalabilitySettings(ESGEngineScalabilitySetti ScalabilityQuality.SetEffectsQuality(ScalabilityValue); ScalabilityQuality.SetFoliageQuality(ScalabilityValue); ScalabilityQuality.SetShadingQuality(ScalabilityValue); -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 4 ScalabilityQuality.SetLandscapeQuality(ScalabilityValue); -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 4 */ } else { @@ -275,9 +273,7 @@ bool USGGameUserSettings::FImpl::DoesCurrentSettingsMatch(const ESGEngineScalabi const int32 CurrentEffectQuality = Owner->ScalabilityQuality.EffectsQuality; const int32 CurrentFoliageQuality = Owner->ScalabilityQuality.FoliageQuality; const int32 CurrentShadingQuality = Owner->ScalabilityQuality.ShadingQuality; -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 4 const int32 CurrentLandscapeQuality = Owner->ScalabilityQuality.LandscapeQuality; -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 4 */ if (FMath::IsNearlyEqual(CurrentResolutionScaleNormalized, ResolutionScaleNormalized) && CurrentViewDistanceQuality == ScalabilityValue @@ -290,10 +286,7 @@ bool USGGameUserSettings::FImpl::DoesCurrentSettingsMatch(const ESGEngineScalabi && CurrentEffectQuality == ScalabilityValue && CurrentFoliageQuality == ScalabilityValue && CurrentShadingQuality == ScalabilityValue -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 4 - && CurrentLandscapeQuality == ScalabilityValue -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 4 */ - ) + && CurrentLandscapeQuality == ScalabilityValue) { return true; } diff --git a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/GameFramework/SGPawn.cpp b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/GameFramework/SGPawn.cpp index 319adc6..7dacfd3 100644 --- a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/GameFramework/SGPawn.cpp +++ b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/GameFramework/SGPawn.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -2193,13 +2193,7 @@ void ASGPawn::FImpl::RecordHandVelocity(FSGGrabState& GrabState, const float Del { if (GrabState.HandVelocityHistory.IsValidIndex(0)) { - GrabState.HandVelocityHistory.RemoveAt(0, 1, -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 - EAllowShrinking::No -#else /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ - false -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ - ); + GrabState.HandVelocityHistory.RemoveAt(0, 1, EAllowShrinking::No); GrabState.HandVelocityHistory.Emplace(MoveTemp(HandVelocity)); } } diff --git a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/GameFramework/SGPlayerController.cpp b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/GameFramework/SGPlayerController.cpp index 62152f4..a3bc988 100644 --- a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/GameFramework/SGPlayerController.cpp +++ b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/GameFramework/SGPlayerController.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -98,7 +98,7 @@ float ASGPlayerController::FImpl::GetForceFeedbackLevel(const AActor* Actor) { if (IsValid(Actor)) { - const USGTouchComponent* TouchComponent = USGTouchComponent::GetTouchComponent(Actor); + const USGTouchComponent* TouchComponent{USGTouchComponent::GetTouchComponent(Actor)}; if (IsValid(TouchComponent)) { return TouchComponent->GetForceFeedbackLevel(); @@ -142,7 +142,7 @@ void ASGPlayerController::BeginPlay() { Super::BeginPlay(); - ASGPawn* SGPawn = Cast(GetPawn()); + ASGPawn* SGPawn{Cast(GetPawn())}; if (!ensureAlwaysMsgf(IsValid(SGPawn), TEXT("%s"), TEXT("ERROR: invalid SenseGlove pawn!"))) { return; @@ -233,7 +233,7 @@ USGCustomWaveform* ASGPlayerController::FImpl::GetCustomWaveform(const AActor* A if (IsValid(Actor)) { - const USGTouchComponent* TouchComponent = USGTouchComponent::GetTouchComponent(Actor); + const USGTouchComponent* TouchComponent{USGTouchComponent::GetTouchComponent(Actor)}; if (IsValid(TouchComponent)) { Amplitude = TouchComponent->GetVibrotactileAmplitude(); @@ -250,14 +250,12 @@ USGCustomWaveform* ASGPlayerController::FImpl::GetCustomWaveform(const AActor* A void ASGPlayerController::FImpl::UpdateHapticsFeedback(const FSGTouchState& TouchState) { - static const TArray VibrotactileOffCommand{0.0f, 0.0f, 0.0, 0.0, 0.0f}; - if (!IsValid(TouchState.Hand)) { return; } - USGHapticGlove* Glove = TouchState.Hand->GetConnectedGlove(); + USGHapticGlove* Glove{TouchState.Hand->GetConnectedGlove()}; if (!IsValid(Glove)) { return; diff --git a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Haptics/SGGrabState.cpp b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Haptics/SGGrabState.cpp index 895eb3e..e0ce638 100644 --- a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Haptics/SGGrabState.cpp +++ b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Haptics/SGGrabState.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Haptics/SGTouchState.cpp b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Haptics/SGTouchState.cpp index 3b5601b..d3ac11b 100644 --- a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Haptics/SGTouchState.cpp +++ b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGlove/Haptics/SGTouchState.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGloveModule.cpp b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGloveModule.cpp index 550bfdd..566542a 100644 --- a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGloveModule.cpp +++ b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGloveModule.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGloveModule.h b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGloveModule.h index 63e0b89..63c0e62 100644 --- a/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGloveModule.h +++ b/Plugins/SenseGlove/Source/SenseGlove/Private/SenseGloveModule.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Animation/SGVirtualHandAnimInstance.h b/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Animation/SGVirtualHandAnimInstance.h index fe4e44c..9438aa4 100644 --- a/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Animation/SGVirtualHandAnimInstance.h +++ b/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Animation/SGVirtualHandAnimInstance.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Animation/SGVirtualHandAnimInstanceProxy.h b/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Animation/SGVirtualHandAnimInstanceProxy.h index 4e74335..39afb44 100644 --- a/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Animation/SGVirtualHandAnimInstanceProxy.h +++ b/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Animation/SGVirtualHandAnimInstanceProxy.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -68,11 +68,7 @@ private: bool bVirtualHandVisible; bool bMarkRenderStateDirty; -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 FXRHandTrackingState HandTrackingState; -#else /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ - FXRMotionControllerData MotionControllerData; -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ TMap::SizeType, FName> BoneNamesMap; @@ -109,17 +105,10 @@ protected: return bMarkRenderStateDirty; } -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 FORCEINLINE const FXRHandTrackingState& GetHandTrackingState() const { return HandTrackingState; } -#else /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ - FORCEINLINE const FXRMotionControllerData& GetMotionControllerData() const - { - return MotionControllerData; - } -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ FORCEINLINE const TMap::SizeType, FName>& GetBoneNamesMap() const { diff --git a/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Components/SGGrabComponent.h b/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Components/SGGrabComponent.h index f1e1929..56ffeff 100644 --- a/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Components/SGGrabComponent.h +++ b/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Components/SGGrabComponent.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -44,7 +44,7 @@ class AActor; -UCLASS(Blueprintable, BlueprintType, meta=(BlueprintSpawnableComponent)) +UCLASS(Blueprintable, BlueprintType, ClassGroup=(SenseGlove), meta=(BlueprintSpawnableComponent)) class SENSEGLOVE_API USGGrabComponent : public USceneComponent { GENERATED_UCLASS_BODY() diff --git a/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Components/SGHandTrackerComponent.h b/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Components/SGHandTrackerComponent.h new file mode 100644 index 0000000..67a5d2b --- /dev/null +++ b/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Components/SGHandTrackerComponent.h @@ -0,0 +1,119 @@ +/** +* @file + * + * @author Mamadou Babaei + * + * @section LICENSE + * + * (The MIT License) + * + * Copyright (c) 2020 - 2026 SenseGlove + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * @section DESCRIPTION + * + * + */ + + +#pragma once + +#include "Components/SceneComponent.h" +#include "HeadMountedDisplayTypes.h" +#include "Templates/UniquePtr.h" + +#include "SGSettings/SGVirtualHandSettings.h" + +#include "SGHandTrackerComponent.generated.h" + +class AActor; + +UCLASS(Blueprintable, BlueprintType, ClassGroup=(SenseGlove), meta=(BlueprintSpawnableComponent)) +class SENSEGLOVE_API USGHandTrackerComponent : public USceneComponent +{ + GENERATED_UCLASS_BODY() + +private: + /** + * Determines whether this component tracks the right or the left hand. + */ + UPROPERTY(EditAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false")) + bool bRight; + + /** + * If enabled, visualizes the XR hand-tracking data using debug gizmos. + */ + UPROPERTY(EditAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false")) + bool bVisualize; + + /** + * XR hand-tracking data will be visualized only if bVisualize is enabled. + */ + UPROPERTY(EditAnywhere, Category="SenseGlove", + meta=(AllowPrivateAccess="false", + EditCondition="bVisualize", EditConditionHides)) + FSGDebugGizmoSettings VisualizationSettings; + +private: + struct FImpl; + + struct FImplDeleter + { + void operator()(const FImpl* P) const; + }; + + TUniquePtr Pimpl; + FImplDeleter PimplDeleter; + +public: + FORCEINLINE bool IsLeft() const + { + return !IsRight(); + } + + FORCEINLINE bool IsRight() const + { + return bRight; + } + + void SetRight(const bool bInRight); + + FORCEINLINE bool IsVisualized() const + { + return bVisualize; + } + + FORCEINLINE void SetVisualize(const bool bInVisualize) + { + bVisualize = bInVisualize; + } + +public: + virtual void InitializeComponent() override; + + virtual void BeginPlay() override; + + virtual void TickComponent(float DeltaTime, + enum ELevelTick TickType, + FActorComponentTickFunction* ThisTickFunction) override; + +public: + const FXRHandTrackingState& GetHandTrackingState() const; +}; \ No newline at end of file diff --git a/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Components/SGHapticsComponent.h b/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Components/SGHapticsComponent.h new file mode 100644 index 0000000..9f5855c --- /dev/null +++ b/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Components/SGHapticsComponent.h @@ -0,0 +1,215 @@ +/** + * @file + * + * @author Mamadou Babaei + * + * @section LICENSE + * + * (The MIT License) + * + * Copyright (c) 2020 - 2026 SenseGlove + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * @section DESCRIPTION + * + * + */ + + +#pragma once + +#include "Components/SceneComponent.h" +#include "Templates/UniquePtr.h" + +#include "SGTypes/SGCoreTypes.h" + +#include "SGHapticsComponent.generated.h" + +class AActor; + +class USGCustomWaveform; + +UCLASS(Blueprintable, BlueprintType, ClassGroup=(SenseGlove), meta=(BlueprintSpawnableComponent)) +class SENSEGLOVE_API USGHapticsComponent : public USceneComponent +{ + GENERATED_UCLASS_BODY() + +private: + /** + * Determines whether this component operates on the right or the left hand. + */ + UPROPERTY(EditAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false")) + bool bRight; + + /** + * If enabled, forces all haptics to stop automatically on the UninitializeComponent or EndPlay events, or when the + * handedness changes. This is useful for situations where the simulation has ended, but ongoing haptic feedback + * might remain active on the glove indefinitely. By default, this setting is enabled. + */ + UPROPERTY(EditAnywhere, Category="SenseGlove", meta=(AllowPrivateAccess="false")) + bool bAutoStopAllHaptics; + +private: + struct FImpl; + + struct FImplDeleter + { + void operator()(const FImpl* P) const; + }; + + TUniquePtr Pimpl; + FImplDeleter PimplDeleter; + +public: + FORCEINLINE bool IsLeft() const + { + return !IsRight(); + } + + FORCEINLINE bool IsRight() const + { + return bRight; + } + + void SetRight(const bool bInRight); + + FORCEINLINE bool AutoStopsAllHaptics() const + { + return bAutoStopAllHaptics; + } + + void SetAutoStopAllHaptics(const bool bInAutoStopAllHaptics) + { + bAutoStopAllHaptics = bInAutoStopAllHaptics; + } + +public: + virtual void UninitializeComponent() override; + + virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override; + +public: + /** + * Stops all Haptic effects if any are currently playing. Useful at the end of simulations or when restarting the + * level. + */ + void StopHaptics(); + + /** + * Stops only vibrations. + */ + void StopVibrations(); + + /** + * Take all active commands in the device queue, compile them into one and send them to the device. + * + * @return Returns true if the message was successfully sent to SenseCom. + */ + bool SendHaptics(); + + /** + * Returns true if the haptic glove supports vibration feedback at the specified location. + * + * @param AtLocation + */ + bool SupportsCustomWaveform(ESGHapticLocation AtLocation) const; + + /** + * Sends a custom waveform to the location specified, provided that the glove has a motor there, and can support + * custom waveforms. + * + * @param OutWaveform + * @param Location + */ + bool SendCustomWaveform(USGCustomWaveform* OutWaveform, ESGHapticLocation Location); + + /** + * Sends a custom waveform to the location specified, provided that the glove has a motor there, and can support + * custom waveforms. + * + * @param Amplitude + * @param Duration + * @param Location + */ + bool SendCustomWaveform(float Amplitude, float Duration, ESGHapticLocation Location); + + /** + * Sends a custom waveform to the location specified, provided that the glove has a motor there, and can support + * custom waveforms. + * + * @param Amplitude + * @param Duration + * @param Frequency + * @param Location + */ + bool SendCustomWaveform(float Amplitude, float Duration, float Frequency, ESGHapticLocation Location); + + /** + * Queue a list of force-feedback levels, between 0.0f and 1.0f. Your list should be sorted from thumb to pinky. + * + * @param Levels01 Array containing the Force-Feedback levels, from 0.0f (no FFB) to 1.0f. A value < 0.0f will be + * ignored. + * + * @remarks Devices that 'only' have on/off FFB will treat any value > 0.0 as 1.0. + */ + bool QueueForceFeedbackLevels(const TArray& Levels01); + + /** + * Set the Force-Feedback value of a particular finger to a specific level + * + * @param Level01 Value will be clamped between [0...1], where 0.0f means no Force-Feedback, and 1.0 means full + * force-feedback. + * @param Finger The finger to which to send the command. + */ + bool QueueForceFeedbackLevel(int32 Finger, float Level01); + + /** + * Queue a list of vibration levels, between 0.0 and 1.0. Your list should be sorted from thumb to pinky. + * + * @param Levels01 Array containing the vibration levels, from 0.0 (no vibration) to 1.0. A value < 0.0f will be + * ignored. + * + * @remarks Devices that 'only' have on/off FFB will treat any value > 0.0 as 1.0. + */ + bool QueueVibroLevels(const TArray& Levels01); + + /** + * Queue a command to set the (continuous) vibration level at a specific location to a set amplitude. + * + * @param Location + * @param Level01 Value will be clamped between [0...1], where 0.0f means no vibration, and 1.0 means full + * vibration. + */ + bool QueueVibroLevel(ESGHapticLocation Location, float Level01); + + /** + * Returns true if the chosen glove supports active contact feedback on the Wrist. + */ + bool SupportsWristSqueeze() const; + + /** + * Queue a command to set the amount of squeeze level (a.k.a. squeeze-feedback) to the desired level + * (0 = no squeeze, 1 = full squeeze) on the wrist, and optionally send it right away. + * + * @param SqueezeLevel01 + * @param bSendImmediate + */ + bool QueueWristSqueeze(float SqueezeLevel01, bool bSendImmediate); +}; \ No newline at end of file diff --git a/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Components/SGTouchComponent.h b/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Components/SGTouchComponent.h index 3f66560..ffdb887 100644 --- a/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Components/SGTouchComponent.h +++ b/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Components/SGTouchComponent.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -42,7 +42,7 @@ class AActor; -UCLASS(Blueprintable, BlueprintType, meta=(BlueprintSpawnableComponent)) +UCLASS(Blueprintable, BlueprintType, ClassGroup=(SenseGlove), meta=(BlueprintSpawnableComponent)) class SENSEGLOVE_API USGTouchComponent : public USceneComponent { GENERATED_UCLASS_BODY() diff --git a/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Components/SGVirtualHandComponent.h b/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Components/SGVirtualHandComponent.h index a5b6391..93e5465 100644 --- a/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Components/SGVirtualHandComponent.h +++ b/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Components/SGVirtualHandComponent.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -59,7 +59,7 @@ class USkeletalMesh; class USGHapticGlove; class USGWristTrackerComponent; -UCLASS(Config=Engine, Blueprintable, ClassGroup=(Rendering, Common), hidecategories=(Object, "Mesh|SkeletalAsset"), +UCLASS(Config=Engine, Blueprintable, ClassGroup=(SenseGlove), hidecategories=(Object, "Mesh|SkeletalAsset"), editinlinenew, meta=(BlueprintSpawnableComponent)) class SENSEGLOVE_API USGVirtualHandComponent : public USkeletalMeshComponent { @@ -146,11 +146,7 @@ public: } public: -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 - virtual void SetAnimInstanceClass(class UClass* NewClass) override; -#else /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ - virtual void SetAnimClass(class UClass* NewClass) override; -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ + virtual void SetAnimInstanceClass(UClass* NewClass) override; virtual void PostInitProperties() override; @@ -181,9 +177,7 @@ public: bool IsGloveConnected() const; USGHapticGlove* GetConnectedGlove() const; -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 const FXRHandTrackingState& GetHandTrackingState() const; -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ public: const TArray& GetHandBoneNames() const; diff --git a/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Components/SGWristTrackerComponent.h b/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Components/SGWristTrackerComponent.h index 62bb106..713d9b9 100644 --- a/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Components/SGWristTrackerComponent.h +++ b/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Components/SGWristTrackerComponent.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -48,7 +48,7 @@ #include "SGWristTrackerComponent.generated.h" -UCLASS(Blueprintable, ClassGroup = MotionController, meta = (BlueprintSpawnableComponent)) +UCLASS(Blueprintable, ClassGroup=(SenseGlove), meta = (BlueprintSpawnableComponent)) class SENSEGLOVE_API USGWristTrackerComponent : public UMotionControllerComponent { GENERATED_UCLASS_BODY() @@ -165,7 +165,5 @@ protected: FActorComponentTickFunction* ThisTickFunction); public: -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 const FXRHandTrackingState& GetHandTrackingState() const; -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ }; \ No newline at end of file diff --git a/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Engine/SGGameInstance.h b/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Engine/SGGameInstance.h index 5fe02ae..fde4966 100644 --- a/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Engine/SGGameInstance.h +++ b/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Engine/SGGameInstance.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/GameFramework/SGGameModeBase.h b/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/GameFramework/SGGameModeBase.h index c59b736..c8d61b4 100644 --- a/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/GameFramework/SGGameModeBase.h +++ b/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/GameFramework/SGGameModeBase.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/GameFramework/SGGameUserSettings.h b/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/GameFramework/SGGameUserSettings.h index 43caf66..6a035a1 100644 --- a/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/GameFramework/SGGameUserSettings.h +++ b/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/GameFramework/SGGameUserSettings.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/GameFramework/SGPawn.h b/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/GameFramework/SGPawn.h index 0f40d59..6fe93db 100644 --- a/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/GameFramework/SGPawn.h +++ b/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/GameFramework/SGPawn.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/GameFramework/SGPlayerController.h b/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/GameFramework/SGPlayerController.h index 2ddb9e6..e5d585f 100644 --- a/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/GameFramework/SGPlayerController.h +++ b/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/GameFramework/SGPlayerController.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Haptics/SGGrabState.h b/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Haptics/SGGrabState.h index 9c15b53..26b647c 100644 --- a/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Haptics/SGGrabState.h +++ b/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Haptics/SGGrabState.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Haptics/SGTouchState.h b/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Haptics/SGTouchState.h index 9e80aae..737cc09 100644 --- a/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Haptics/SGTouchState.h +++ b/Plugins/SenseGlove/Source/SenseGlove/Public/SenseGlove/Haptics/SGTouchState.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGlove/SenseGlove.Build.cs b/Plugins/SenseGlove/Source/SenseGlove/SenseGlove.Build.cs index bd1bdd7..f28fb12 100644 --- a/Plugins/SenseGlove/Source/SenseGlove/SenseGlove.Build.cs +++ b/Plugins/SenseGlove/Source/SenseGlove/SenseGlove.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveAndroid/Private/SGAndroid/SGAndroidPermissions.cpp b/Plugins/SenseGlove/Source/SenseGloveAndroid/Private/SGAndroid/SGAndroidPermissions.cpp index 72e9198..7ef857f 100644 --- a/Plugins/SenseGlove/Source/SenseGloveAndroid/Private/SGAndroid/SGAndroidPermissions.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveAndroid/Private/SGAndroid/SGAndroidPermissions.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveAndroid/Private/SGAndroid/SGConnectJNI.cpp b/Plugins/SenseGlove/Source/SenseGloveAndroid/Private/SGAndroid/SGConnectJNI.cpp index 8bfc444..3e3c129 100644 --- a/Plugins/SenseGlove/Source/SenseGloveAndroid/Private/SGAndroid/SGConnectJNI.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveAndroid/Private/SGAndroid/SGConnectJNI.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveAndroid/Private/SGAndroid/SGCoreJNI.cpp b/Plugins/SenseGlove/Source/SenseGloveAndroid/Private/SGAndroid/SGCoreJNI.cpp index f0f2718..997658f 100644 --- a/Plugins/SenseGlove/Source/SenseGloveAndroid/Private/SGAndroid/SGCoreJNI.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveAndroid/Private/SGAndroid/SGCoreJNI.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveAndroid/Private/SenseGloveAndroid.cpp b/Plugins/SenseGlove/Source/SenseGloveAndroid/Private/SenseGloveAndroid.cpp index d1b4ea4..5c44fdf 100644 --- a/Plugins/SenseGlove/Source/SenseGloveAndroid/Private/SenseGloveAndroid.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveAndroid/Private/SenseGloveAndroid.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveAndroid/Private/SenseGloveAndroid.h b/Plugins/SenseGlove/Source/SenseGloveAndroid/Private/SenseGloveAndroid.h index a30ce66..65941e7 100644 --- a/Plugins/SenseGlove/Source/SenseGloveAndroid/Private/SenseGloveAndroid.h +++ b/Plugins/SenseGlove/Source/SenseGloveAndroid/Private/SenseGloveAndroid.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveAndroid/Private/SenseGloveAndroidModule.cpp b/Plugins/SenseGlove/Source/SenseGloveAndroid/Private/SenseGloveAndroidModule.cpp index f126d5d..df60612 100644 --- a/Plugins/SenseGlove/Source/SenseGloveAndroid/Private/SenseGloveAndroidModule.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveAndroid/Private/SenseGloveAndroidModule.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveAndroid/Private/SenseGloveAndroidModule.h b/Plugins/SenseGlove/Source/SenseGloveAndroid/Private/SenseGloveAndroidModule.h index d930683..0e3d38d 100644 --- a/Plugins/SenseGlove/Source/SenseGloveAndroid/Private/SenseGloveAndroidModule.h +++ b/Plugins/SenseGlove/Source/SenseGloveAndroid/Private/SenseGloveAndroidModule.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveAndroid/Public/SGAndroid/SGAndroidPermissions.h b/Plugins/SenseGlove/Source/SenseGloveAndroid/Public/SGAndroid/SGAndroidPermissions.h index 2b31bc8..59d4506 100644 --- a/Plugins/SenseGlove/Source/SenseGloveAndroid/Public/SGAndroid/SGAndroidPermissions.h +++ b/Plugins/SenseGlove/Source/SenseGloveAndroid/Public/SGAndroid/SGAndroidPermissions.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveAndroid/Public/SGAndroid/SGConnectJNI.h b/Plugins/SenseGlove/Source/SenseGloveAndroid/Public/SGAndroid/SGConnectJNI.h index 0588326..11b6143 100644 --- a/Plugins/SenseGlove/Source/SenseGloveAndroid/Public/SGAndroid/SGConnectJNI.h +++ b/Plugins/SenseGlove/Source/SenseGloveAndroid/Public/SGAndroid/SGConnectJNI.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveAndroid/Public/SGAndroid/SGCoreJNI.h b/Plugins/SenseGlove/Source/SenseGloveAndroid/Public/SGAndroid/SGCoreJNI.h index fac1b0e..5a1c7b7 100644 --- a/Plugins/SenseGlove/Source/SenseGloveAndroid/Public/SGAndroid/SGCoreJNI.h +++ b/Plugins/SenseGlove/Source/SenseGloveAndroid/Public/SGAndroid/SGCoreJNI.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveAndroid/SenseGloveAndroid.Build.cs b/Plugins/SenseGlove/Source/SenseGloveAndroid/SenseGloveAndroid.Build.cs index 9064d4b..2d9d59a 100644 --- a/Plugins/SenseGlove/Source/SenseGloveAndroid/SenseGloveAndroid.Build.cs +++ b/Plugins/SenseGlove/Source/SenseGloveAndroid/SenseGloveAndroid.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveAndroid/SenseGloveAndroid_UPL.xml b/Plugins/SenseGlove/Source/SenseGloveAndroid/SenseGloveAndroid_UPL.xml index bcf9ad5..88621c6 100644 --- a/Plugins/SenseGlove/Source/SenseGloveAndroid/SenseGloveAndroid_UPL.xml +++ b/Plugins/SenseGlove/Source/SenseGloveAndroid/SenseGloveAndroid_UPL.xml @@ -7,7 +7,7 @@ (The MIT License) - Copyright (c) 2020 - 2025 SenseGlove + Copyright (c) 2020 - 2026 SenseGlove Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBackend/Private/SGBackend/SGBackend.cpp b/Plugins/SenseGlove/Source/SenseGloveBackend/Private/SGBackend/SGBackend.cpp index d2508db..37170cc 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBackend/Private/SGBackend/SGBackend.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBackend/Private/SGBackend/SGBackend.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBackend/Private/SenseGloveBackend.cpp b/Plugins/SenseGlove/Source/SenseGloveBackend/Private/SenseGloveBackend.cpp index 3d97f18..65d88da 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBackend/Private/SenseGloveBackend.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBackend/Private/SenseGloveBackend.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBackend/Private/SenseGloveBackend.h b/Plugins/SenseGlove/Source/SenseGloveBackend/Private/SenseGloveBackend.h index a30ce66..65941e7 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBackend/Private/SenseGloveBackend.h +++ b/Plugins/SenseGlove/Source/SenseGloveBackend/Private/SenseGloveBackend.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBackend/Private/SenseGloveBackendModule.cpp b/Plugins/SenseGlove/Source/SenseGloveBackend/Private/SenseGloveBackendModule.cpp index 7eb6bb9..da04478 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBackend/Private/SenseGloveBackendModule.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBackend/Private/SenseGloveBackendModule.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBackend/Private/SenseGloveBackendModule.h b/Plugins/SenseGlove/Source/SenseGloveBackend/Private/SenseGloveBackendModule.h index 4814e9d..c32d0f8 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBackend/Private/SenseGloveBackendModule.h +++ b/Plugins/SenseGlove/Source/SenseGloveBackend/Private/SenseGloveBackendModule.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBackend/Public/SGBackend/SGBackend.h b/Plugins/SenseGlove/Source/SenseGloveBackend/Public/SGBackend/SGBackend.h index b165f2d..63fcefa 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBackend/Public/SGBackend/SGBackend.h +++ b/Plugins/SenseGlove/Source/SenseGloveBackend/Public/SGBackend/SGBackend.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBackend/SenseGloveBackend.Build.cs b/Plugins/SenseGlove/Source/SenseGloveBackend/SenseGloveBackend.Build.cs index eaab1c6..d6a4970 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBackend/SenseGloveBackend.Build.cs +++ b/Plugins/SenseGlove/Source/SenseGloveBackend/SenseGloveBackend.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBackendKismet/Private/SGBackendKismet/SGBackendKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveBackendKismet/Private/SGBackendKismet/SGBackendKismetLibrary.cpp index fcd234f..3704ada 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBackendKismet/Private/SGBackendKismet/SGBackendKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBackendKismet/Private/SGBackendKismet/SGBackendKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBackendKismet/Private/SenseGloveBackendKismet.cpp b/Plugins/SenseGlove/Source/SenseGloveBackendKismet/Private/SenseGloveBackendKismet.cpp index 7f31765..711bf39 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBackendKismet/Private/SenseGloveBackendKismet.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBackendKismet/Private/SenseGloveBackendKismet.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBackendKismet/Private/SenseGloveBackendKismet.h b/Plugins/SenseGlove/Source/SenseGloveBackendKismet/Private/SenseGloveBackendKismet.h index a30ce66..65941e7 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBackendKismet/Private/SenseGloveBackendKismet.h +++ b/Plugins/SenseGlove/Source/SenseGloveBackendKismet/Private/SenseGloveBackendKismet.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBackendKismet/Private/SenseGloveBackendKismetModule.cpp b/Plugins/SenseGlove/Source/SenseGloveBackendKismet/Private/SenseGloveBackendKismetModule.cpp index f7b7fb1..b35c113 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBackendKismet/Private/SenseGloveBackendKismetModule.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBackendKismet/Private/SenseGloveBackendKismetModule.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBackendKismet/Private/SenseGloveBackendKismetModule.h b/Plugins/SenseGlove/Source/SenseGloveBackendKismet/Private/SenseGloveBackendKismetModule.h index 9f2bf22..d1dc974 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBackendKismet/Private/SenseGloveBackendKismetModule.h +++ b/Plugins/SenseGlove/Source/SenseGloveBackendKismet/Private/SenseGloveBackendKismetModule.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBackendKismet/Public/SGBackendKismet/SGBackendKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveBackendKismet/Public/SGBackendKismet/SGBackendKismetLibrary.h index debc48b..cf807a8 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBackendKismet/Public/SGBackendKismet/SGBackendKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveBackendKismet/Public/SGBackendKismet/SGBackendKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBackendKismet/SenseGloveBackendKismet.Build.cs b/Plugins/SenseGlove/Source/SenseGloveBackendKismet/SenseGloveBackendKismet.Build.cs index 6c76bcf..09393c7 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBackendKismet/SenseGloveBackendKismet.Build.cs +++ b/Plugins/SenseGlove/Source/SenseGloveBackendKismet/SenseGloveBackendKismet.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGDisable_C4263.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGDisable_C4263.cpp index 7ae3b0f..8a88f91 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGDisable_C4263.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGDisable_C4263.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGDisable_C4264.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGDisable_C4264.cpp index b1b0614..330adc9 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGDisable_C4264.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGDisable_C4264.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGDisable_C4706.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGDisable_C4706.cpp index 592dd8f..d09f0c3 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGDisable_C4706.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGDisable_C4706.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGDisable_C4800.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGDisable_C4800.cpp index f248423..f3da0ee 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGDisable_C4800.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGDisable_C4800.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Connect_Android.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Connect_Android.cpp index 5fe97cd..8023405 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Connect_Android.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Connect_Android.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Connect_SGConnect.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Connect_SGConnect.cpp index 370b2ad..6a8b739 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Connect_SGConnect.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Connect_SGConnect.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Anatomy.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Anatomy.cpp index a77f626..2c5221f 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Anatomy.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Anatomy.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Android.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Android.cpp index 6479ef1..fe2de45 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Android.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Android.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_BasicHandModel.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_BasicHandModel.cpp index 70c3d48..34cb7f0 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_BasicHandModel.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_BasicHandModel.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_BetaDevice.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_BetaDevice.cpp index 1ae0f66..b282f84 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_BetaDevice.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_BetaDevice.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_CustomWaveform.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_CustomWaveform.cpp index fb132fa..3fe2d73 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_CustomWaveform.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_CustomWaveform.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_DeviceList.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_DeviceList.cpp index 710d3e7..ae36f3c 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_DeviceList.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_DeviceList.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_DeviceModel.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_DeviceModel.cpp index 2d190b6..f2bc54b 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_DeviceModel.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_DeviceModel.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Fingers.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Fingers.cpp index 39b07e7..9c4a84e 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Fingers.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Fingers.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_HandInterpolator.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_HandInterpolator.cpp index 8c9475c..31c94ee 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_HandInterpolator.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_HandInterpolator.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_HandLayer.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_HandLayer.cpp index 24ff7fc..fba9c91 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_HandLayer.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_HandLayer.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_HandPose.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_HandPose.cpp index 4233b7c..0c7182e 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_HandPose.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_HandPose.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_HapticChannelInfo.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_HapticChannelInfo.cpp index 7d34acd..2eb35ab 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_HapticChannelInfo.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_HapticChannelInfo.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_HapticGlove.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_HapticGlove.cpp index 9a2e680..f2f0bb0 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_HapticGlove.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_HapticGlove.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_InterpolationSet.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_InterpolationSet.cpp index 45518f0..2eb09b5 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_InterpolationSet.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_InterpolationSet.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_JointKinematics.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_JointKinematics.cpp index f1d86cf..0463bba 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_JointKinematics.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_JointKinematics.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Library.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Library.cpp index 01e9319..0eafdcc 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Library.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Library.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_NormalizationState.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_NormalizationState.cpp index ebfe9ec..7352146 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_NormalizationState.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_NormalizationState.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Nova2Glove.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Nova2Glove.cpp index 964f96f..984ec57 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Nova2Glove.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Nova2Glove.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Nova2GloveSensorData.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Nova2GloveSensorData.cpp index 5776641..1f1742c 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Nova2GloveSensorData.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Nova2GloveSensorData.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_NovaGlove.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_NovaGlove.cpp index 10de8f6..ff9ef06 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_NovaGlove.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_NovaGlove.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_NovaGloveInfo.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_NovaGloveInfo.cpp index 26aca11..63e3630 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_NovaGloveInfo.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_NovaGloveInfo.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_NovaGloveSensorData.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_NovaGloveSensorData.cpp index b93c5aa..203ad79 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_NovaGloveSensorData.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_NovaGloveSensorData.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_NovaGloveVars.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_NovaGloveVars.cpp index e13f197..d09177a 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_NovaGloveVars.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_NovaGloveVars.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Quat.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Quat.cpp index 6832bac..563f5cd 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Quat.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Quat.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SGDevice.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SGDevice.cpp index b444ee6..6896df6 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SGDevice.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SGDevice.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SenseCom.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SenseCom.cpp index 5360b66..101fdb2 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SenseCom.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SenseCom.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SenseGlove.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SenseGlove.cpp index 2a73e76..4d5f13c 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SenseGlove.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SenseGlove.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SenseGloveInfo.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SenseGloveInfo.cpp index f0d591f..e3886a4 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SenseGloveInfo.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SenseGloveInfo.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SenseGlovePose.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SenseGlovePose.cpp index 0d794d8..e5fa570 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SenseGlovePose.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SenseGlovePose.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SenseGloveSensorData.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SenseGloveSensorData.cpp index feafb37..f2cbcae 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SenseGloveSensorData.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SenseGloveSensorData.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SenseGloveSensorNormalizer.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SenseGloveSensorNormalizer.cpp index d4fbba2..184dbe8 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SenseGloveSensorNormalizer.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SenseGloveSensorNormalizer.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SenseGloveThumperCommand.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SenseGloveThumperCommand.cpp index 3889007..bcee462 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SenseGloveThumperCommand.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SenseGloveThumperCommand.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SenseGloveVars.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SenseGloveVars.cpp index ed802c8..ed47f75 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SenseGloveVars.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SenseGloveVars.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SensorNormalization.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SensorNormalization.cpp index e368026..bf9f2b0 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SensorNormalization.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_SensorNormalization.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_ThresholdCommand.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_ThresholdCommand.cpp index 6722a2b..9d91033 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_ThresholdCommand.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_ThresholdCommand.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Tracking.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Tracking.cpp index dcba2ce..3292eac 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Tracking.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Tracking.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Vect3D.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Vect3D.cpp index f08c097..0ebc601 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Vect3D.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Core_Vect3D.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Windows.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Windows.cpp index 1e89223..3cb3c29 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Windows.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGInclude_Windows.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGPlatform.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGPlatform.cpp index c808010..54a3546 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGPlatform.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGPlatform.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGRestore_C4263.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGRestore_C4263.cpp index cc9c9b2..733b282 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGRestore_C4263.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGRestore_C4263.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGRestore_C4264.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGRestore_C4264.cpp index c47d6a9..e58a9c1 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGRestore_C4264.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGRestore_C4264.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGRestore_C4706.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGRestore_C4706.cpp index e50941a..7c46b70 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGRestore_C4706.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGRestore_C4706.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGRestore_C4800.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGRestore_C4800.cpp index fe59e4a..2348547 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGRestore_C4800.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGRestore_C4800.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGRestore_TEXT.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGRestore_TEXT.cpp index 33b8fd8..d83316e 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGRestore_TEXT.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGRestore_TEXT.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGRestore_check.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGRestore_check.cpp index dd3dde6..b831046 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGRestore_check.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGRestore_check.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGUndef_TEXT.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGUndef_TEXT.cpp index c2b7a11..6c06aa2 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGUndef_TEXT.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGUndef_TEXT.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGUndef_check.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGUndef_check.cpp index c51272e..b348b91 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGUndef_check.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SGBuildHacks/SGUndef_check.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SenseGloveBuildHacks.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SenseGloveBuildHacks.cpp index cc6552e..7445886 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SenseGloveBuildHacks.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SenseGloveBuildHacks.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SenseGloveBuildHacks.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SenseGloveBuildHacks.h index a30ce66..65941e7 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SenseGloveBuildHacks.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SenseGloveBuildHacks.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SenseGloveBuildHacksModule.cpp b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SenseGloveBuildHacksModule.cpp index 01fbd1b..6503576 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SenseGloveBuildHacksModule.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SenseGloveBuildHacksModule.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SenseGloveBuildHacksModule.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SenseGloveBuildHacksModule.h index 14aff2c..d6cd433 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SenseGloveBuildHacksModule.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Private/SenseGloveBuildHacksModule.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGDisable_C4263.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGDisable_C4263.h index db29e07..83637bc 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGDisable_C4263.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGDisable_C4263.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGDisable_C4264.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGDisable_C4264.h index 429bbe8..4d9b661 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGDisable_C4264.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGDisable_C4264.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGDisable_C4706.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGDisable_C4706.h index ed7f27d..d57ea0b 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGDisable_C4706.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGDisable_C4706.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGDisable_C4800.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGDisable_C4800.h index a7a19fb..c07ad4e 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGDisable_C4800.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGDisable_C4800.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGDisable_Woverloaded_virtual.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGDisable_Woverloaded_virtual.h index eca25ba..6eff6d3 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGDisable_Woverloaded_virtual.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGDisable_Woverloaded_virtual.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Connect_Android.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Connect_Android.h index d2f5f22..f176b31 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Connect_Android.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Connect_Android.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Connect_SGConnect.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Connect_SGConnect.h index f6bc301..33d3cf7 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Connect_SGConnect.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Connect_SGConnect.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Anatomy.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Anatomy.h index 376e45e..be18f61 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Anatomy.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Anatomy.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Android.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Android.h index b733981..9f7ef53 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Android.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Android.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_BasicHandModel.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_BasicHandModel.h index b9bfa21..fa706bf 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_BasicHandModel.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_BasicHandModel.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_BetaDevice.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_BetaDevice.h index 88763e8..20aa4df 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_BetaDevice.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_BetaDevice.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_CustomWaveform.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_CustomWaveform.h index 20efe30..68acf7a 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_CustomWaveform.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_CustomWaveform.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_DeviceList.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_DeviceList.h index 72583ba..83ffa0f 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_DeviceList.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_DeviceList.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_DeviceModel.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_DeviceModel.h index 3ffc13a..0ef2004 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_DeviceModel.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_DeviceModel.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Fingers.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Fingers.h index 47d3b9d..8ee4c31 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Fingers.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Fingers.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_HandInterpolator.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_HandInterpolator.h index a23783a..2f5d16f 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_HandInterpolator.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_HandInterpolator.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_HandLayer.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_HandLayer.h index 57d6998..51b14b6 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_HandLayer.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_HandLayer.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_HandPose.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_HandPose.h index 3c57130..f2b68e5 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_HandPose.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_HandPose.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_HapticChannelInfo.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_HapticChannelInfo.h index 7009350..568d0d7 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_HapticChannelInfo.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_HapticChannelInfo.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_HapticGlove.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_HapticGlove.h index 4350335..b317fe0 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_HapticGlove.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_HapticGlove.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_InterpolationSet.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_InterpolationSet.h index d11727d..cb2ea9c 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_InterpolationSet.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_InterpolationSet.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_JointKinematics.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_JointKinematics.h index baf6f63..236db4c 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_JointKinematics.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_JointKinematics.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Library.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Library.h index 67bb695..62be080 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Library.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Library.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_NormalizationState.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_NormalizationState.h index 9a555e4..327b290 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_NormalizationState.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_NormalizationState.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Nova2Glove.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Nova2Glove.h index 75e8d2b..cf48469 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Nova2Glove.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Nova2Glove.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Nova2GloveSensorData.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Nova2GloveSensorData.h index c799756..9625b8f 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Nova2GloveSensorData.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Nova2GloveSensorData.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_NovaGlove.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_NovaGlove.h index 98ad88c..90a0a71 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_NovaGlove.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_NovaGlove.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_NovaGloveInfo.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_NovaGloveInfo.h index e380770..d51c047 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_NovaGloveInfo.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_NovaGloveInfo.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_NovaGloveSensorData.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_NovaGloveSensorData.h index dfabe1f..d2b6da2 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_NovaGloveSensorData.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_NovaGloveSensorData.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_NovaGloveVars.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_NovaGloveVars.h index ff3812c..62b5bfd 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_NovaGloveVars.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_NovaGloveVars.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Quat.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Quat.h index 17fdb40..782e179 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Quat.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Quat.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SGDevice.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SGDevice.h index 37469a2..033fa42 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SGDevice.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SGDevice.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SenseCom.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SenseCom.h index d02fcd9..13bb71c 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SenseCom.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SenseCom.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SenseGlove.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SenseGlove.h index 365a84c..28bb950 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SenseGlove.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SenseGlove.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SenseGloveInfo.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SenseGloveInfo.h index bfe3dc5..83b8f02 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SenseGloveInfo.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SenseGloveInfo.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SenseGlovePose.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SenseGlovePose.h index c5918a2..c8f7a03 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SenseGlovePose.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SenseGlovePose.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SenseGloveSensorData.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SenseGloveSensorData.h index c0a8765..97c489e 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SenseGloveSensorData.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SenseGloveSensorData.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SenseGloveSensorNormalizer.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SenseGloveSensorNormalizer.h index ebbdd8a..efed8b4 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SenseGloveSensorNormalizer.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SenseGloveSensorNormalizer.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SenseGloveThumperCommand.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SenseGloveThumperCommand.h index 9649c22..194cdc2 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SenseGloveThumperCommand.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SenseGloveThumperCommand.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SenseGloveVars.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SenseGloveVars.h index 659832a..b13785f 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SenseGloveVars.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SenseGloveVars.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SensorNormalization.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SensorNormalization.h index 585795e..c1a05d1 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SensorNormalization.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_SensorNormalization.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_ThresholdCommand.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_ThresholdCommand.h index 6b99ff5..a5f9987 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_ThresholdCommand.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_ThresholdCommand.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Tracking.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Tracking.h index 71131aa..9ef7e0a 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Tracking.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Tracking.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Vect3D.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Vect3D.h index 75f1372..c5f2b25 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Vect3D.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Core_Vect3D.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Windows.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Windows.h index f541665..3bc3ccb 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Windows.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGInclude_Windows.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGPlatform.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGPlatform.h index 1b24c25..5d04183 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGPlatform.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGPlatform.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGRestore_C4263.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGRestore_C4263.h index ff6a9ef..4280249 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGRestore_C4263.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGRestore_C4263.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGRestore_C4264.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGRestore_C4264.h index 7d62c25..bca11f6 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGRestore_C4264.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGRestore_C4264.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGRestore_C4706.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGRestore_C4706.h index 691df74..22b7cdb 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGRestore_C4706.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGRestore_C4706.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGRestore_C4800.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGRestore_C4800.h index 3636312..5168120 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGRestore_C4800.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGRestore_C4800.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGRestore_TEXT.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGRestore_TEXT.h index bce7b28..be50411 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGRestore_TEXT.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGRestore_TEXT.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGRestore_Woverloaded_virtual.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGRestore_Woverloaded_virtual.h index 527b67c..bfbd7b1 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGRestore_Woverloaded_virtual.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGRestore_Woverloaded_virtual.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGRestore_check.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGRestore_check.h index 3435e68..97253ef 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGRestore_check.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGRestore_check.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGUndef_TEXT.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGUndef_TEXT.h index 5ea77a4..b3ea3fe 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGUndef_TEXT.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGUndef_TEXT.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGUndef_check.h b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGUndef_check.h index 9b4d014..d4e729d 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGUndef_check.h +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/Public/SGBuildHacks/SGUndef_check.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/SenseGloveBuildHacks.Build.cs b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/SenseGloveBuildHacks.Build.cs index a01bad6..6265ba7 100644 --- a/Plugins/SenseGlove/Source/SenseGloveBuildHacks/SenseGloveBuildHacks.Build.cs +++ b/Plugins/SenseGlove/Source/SenseGloveBuildHacks/SenseGloveBuildHacks.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveConnect/Private/SGConnect/SGConnect.cpp b/Plugins/SenseGlove/Source/SenseGloveConnect/Private/SGConnect/SGConnect.cpp index b6fd6ec..d38c2e4 100644 --- a/Plugins/SenseGlove/Source/SenseGloveConnect/Private/SGConnect/SGConnect.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveConnect/Private/SGConnect/SGConnect.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveConnect/Private/SenseGloveConnect.cpp b/Plugins/SenseGlove/Source/SenseGloveConnect/Private/SenseGloveConnect.cpp index c82e6b1..da75815 100644 --- a/Plugins/SenseGlove/Source/SenseGloveConnect/Private/SenseGloveConnect.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveConnect/Private/SenseGloveConnect.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveConnect/Private/SenseGloveConnect.h b/Plugins/SenseGlove/Source/SenseGloveConnect/Private/SenseGloveConnect.h index a30ce66..65941e7 100644 --- a/Plugins/SenseGlove/Source/SenseGloveConnect/Private/SenseGloveConnect.h +++ b/Plugins/SenseGlove/Source/SenseGloveConnect/Private/SenseGloveConnect.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveConnect/Private/SenseGloveConnectModule.cpp b/Plugins/SenseGlove/Source/SenseGloveConnect/Private/SenseGloveConnectModule.cpp index 639a017..3db07cf 100644 --- a/Plugins/SenseGlove/Source/SenseGloveConnect/Private/SenseGloveConnectModule.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveConnect/Private/SenseGloveConnectModule.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveConnect/Private/SenseGloveConnectModule.h b/Plugins/SenseGlove/Source/SenseGloveConnect/Private/SenseGloveConnectModule.h index 9e60c00..1bb278f 100644 --- a/Plugins/SenseGlove/Source/SenseGloveConnect/Private/SenseGloveConnectModule.h +++ b/Plugins/SenseGlove/Source/SenseGloveConnect/Private/SenseGloveConnectModule.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveConnect/Public/SGConnect/SGConnect.h b/Plugins/SenseGlove/Source/SenseGloveConnect/Public/SGConnect/SGConnect.h index f8c7ebb..1bbd5aa 100644 --- a/Plugins/SenseGlove/Source/SenseGloveConnect/Public/SGConnect/SGConnect.h +++ b/Plugins/SenseGlove/Source/SenseGloveConnect/Public/SGConnect/SGConnect.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveConnect/SenseGloveConnect.Build.cs b/Plugins/SenseGlove/Source/SenseGloveConnect/SenseGloveConnect.Build.cs index ea17dd2..d5fb6bd 100644 --- a/Plugins/SenseGlove/Source/SenseGloveConnect/SenseGloveConnect.Build.cs +++ b/Plugins/SenseGlove/Source/SenseGloveConnect/SenseGloveConnect.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveConnectImpl/Private/SGConnectImpl/SGConnectImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveConnectImpl/Private/SGConnectImpl/SGConnectImpl.cpp index 91b9a1a..adc14dd 100644 --- a/Plugins/SenseGlove/Source/SenseGloveConnectImpl/Private/SGConnectImpl/SGConnectImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveConnectImpl/Private/SGConnectImpl/SGConnectImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveConnectImpl/Private/SGConnectImpl/SGExportedFunctions.cpp b/Plugins/SenseGlove/Source/SenseGloveConnectImpl/Private/SGConnectImpl/SGExportedFunctions.cpp index 43f3f3f..ff8c427 100644 --- a/Plugins/SenseGlove/Source/SenseGloveConnectImpl/Private/SGConnectImpl/SGExportedFunctions.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveConnectImpl/Private/SGConnectImpl/SGExportedFunctions.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveConnectImpl/Private/SenseGloveConnectImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveConnectImpl/Private/SenseGloveConnectImpl.cpp index 4fa7a72..c8dffbe 100644 --- a/Plugins/SenseGlove/Source/SenseGloveConnectImpl/Private/SenseGloveConnectImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveConnectImpl/Private/SenseGloveConnectImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveConnectImpl/Private/SenseGloveConnectImpl.h b/Plugins/SenseGlove/Source/SenseGloveConnectImpl/Private/SenseGloveConnectImpl.h index ab121d0..334f908 100644 --- a/Plugins/SenseGlove/Source/SenseGloveConnectImpl/Private/SenseGloveConnectImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveConnectImpl/Private/SenseGloveConnectImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveConnectImpl/Private/SenseGloveConnectImplModule.cpp b/Plugins/SenseGlove/Source/SenseGloveConnectImpl/Private/SenseGloveConnectImplModule.cpp index a655c9a..9a05858 100644 --- a/Plugins/SenseGlove/Source/SenseGloveConnectImpl/Private/SenseGloveConnectImplModule.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveConnectImpl/Private/SenseGloveConnectImplModule.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveConnectImpl/Private/SenseGloveConnectImplModule.h b/Plugins/SenseGlove/Source/SenseGloveConnectImpl/Private/SenseGloveConnectImplModule.h index cb0d0d9..a065f74 100644 --- a/Plugins/SenseGlove/Source/SenseGloveConnectImpl/Private/SenseGloveConnectImplModule.h +++ b/Plugins/SenseGlove/Source/SenseGloveConnectImpl/Private/SenseGloveConnectImplModule.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveConnectImpl/Public/SGConnectImpl/SGConnectImpl.h b/Plugins/SenseGlove/Source/SenseGloveConnectImpl/Public/SGConnectImpl/SGConnectImpl.h index c1fdc89..06e8ba7 100644 --- a/Plugins/SenseGlove/Source/SenseGloveConnectImpl/Public/SGConnectImpl/SGConnectImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveConnectImpl/Public/SGConnectImpl/SGConnectImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveConnectImpl/Public/SGConnectImpl/SGExportedFunctions.h b/Plugins/SenseGlove/Source/SenseGloveConnectImpl/Public/SGConnectImpl/SGExportedFunctions.h index 0355d5b..7783f31 100644 --- a/Plugins/SenseGlove/Source/SenseGloveConnectImpl/Public/SGConnectImpl/SGExportedFunctions.h +++ b/Plugins/SenseGlove/Source/SenseGloveConnectImpl/Public/SGConnectImpl/SGExportedFunctions.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveConnectImpl/SenseGloveConnectImpl.Build.cs b/Plugins/SenseGlove/Source/SenseGloveConnectImpl/SenseGloveConnectImpl.Build.cs index 022eafe..6eff591 100644 --- a/Plugins/SenseGlove/Source/SenseGloveConnectImpl/SenseGloveConnectImpl.Build.cs +++ b/Plugins/SenseGlove/Source/SenseGloveConnectImpl/SenseGloveConnectImpl.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveConnectKismet/Private/SGConnectKismet/SGConnectKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveConnectKismet/Private/SGConnectKismet/SGConnectKismetLibrary.cpp index 188d34c..6810b21 100644 --- a/Plugins/SenseGlove/Source/SenseGloveConnectKismet/Private/SGConnectKismet/SGConnectKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveConnectKismet/Private/SGConnectKismet/SGConnectKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveConnectKismet/Private/SenseGloveConnectKismet.cpp b/Plugins/SenseGlove/Source/SenseGloveConnectKismet/Private/SenseGloveConnectKismet.cpp index 0447835..1edb8b3 100644 --- a/Plugins/SenseGlove/Source/SenseGloveConnectKismet/Private/SenseGloveConnectKismet.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveConnectKismet/Private/SenseGloveConnectKismet.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveConnectKismet/Private/SenseGloveConnectKismet.h b/Plugins/SenseGlove/Source/SenseGloveConnectKismet/Private/SenseGloveConnectKismet.h index ab121d0..334f908 100644 --- a/Plugins/SenseGlove/Source/SenseGloveConnectKismet/Private/SenseGloveConnectKismet.h +++ b/Plugins/SenseGlove/Source/SenseGloveConnectKismet/Private/SenseGloveConnectKismet.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveConnectKismet/Private/SenseGloveConnectKismetModule.cpp b/Plugins/SenseGlove/Source/SenseGloveConnectKismet/Private/SenseGloveConnectKismetModule.cpp index 9b2ceda..7090b21 100644 --- a/Plugins/SenseGlove/Source/SenseGloveConnectKismet/Private/SenseGloveConnectKismetModule.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveConnectKismet/Private/SenseGloveConnectKismetModule.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveConnectKismet/Private/SenseGloveConnectKismetModule.h b/Plugins/SenseGlove/Source/SenseGloveConnectKismet/Private/SenseGloveConnectKismetModule.h index 7119d32..7ecc214 100644 --- a/Plugins/SenseGlove/Source/SenseGloveConnectKismet/Private/SenseGloveConnectKismetModule.h +++ b/Plugins/SenseGlove/Source/SenseGloveConnectKismet/Private/SenseGloveConnectKismetModule.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveConnectKismet/Public/SGConnectKismet/SGConnectKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveConnectKismet/Public/SGConnectKismet/SGConnectKismetLibrary.h index f0a65bd..0ffce20 100644 --- a/Plugins/SenseGlove/Source/SenseGloveConnectKismet/Public/SGConnectKismet/SGConnectKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveConnectKismet/Public/SGConnectKismet/SGConnectKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveConnectKismet/SenseGloveConnectKismet.Build.cs b/Plugins/SenseGlove/Source/SenseGloveConnectKismet/SenseGloveConnectKismet.Build.cs index 64311e3..4ee28e4 100644 --- a/Plugins/SenseGlove/Source/SenseGloveConnectKismet/SenseGloveConnectKismet.Build.cs +++ b/Plugins/SenseGlove/Source/SenseGloveConnectKismet/SenseGloveConnectKismet.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGAnatomy.cpp b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGAnatomy.cpp index 36c41dd..bc02ec4 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGAnatomy.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGAnatomy.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGBasicHandModel.cpp b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGBasicHandModel.cpp index cc213ab..1312d4b 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGBasicHandModel.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGBasicHandModel.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGBetaDevice.cpp b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGBetaDevice.cpp index afe362c..47336f7 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGBetaDevice.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGBetaDevice.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGCore.cpp b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGCore.cpp index e14e126..bdb356b 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGCore.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGCore.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGCustomWaveform.cpp b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGCustomWaveform.cpp index a773e32..31f8afd 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGCustomWaveform.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGCustomWaveform.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGDevice.cpp b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGDevice.cpp index 5139684..b8253fd 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGDevice.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGDevice.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGDeviceImplCast.cpp b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGDeviceImplCast.cpp index bbc9adb..0e40107 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGDeviceImplCast.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGDeviceImplCast.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGDeviceImplCast.h b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGDeviceImplCast.h index 01c39cf..8e870d9 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGDeviceImplCast.h +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGDeviceImplCast.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGDeviceList.cpp b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGDeviceList.cpp index 53d3469..18d2771 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGDeviceList.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGDeviceList.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGDeviceModel.cpp b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGDeviceModel.cpp index b0ad963..3e91620 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGDeviceModel.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGDeviceModel.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGHandInterpolator.cpp b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGHandInterpolator.cpp index 5f0bbf7..fb2acc2 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGHandInterpolator.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGHandInterpolator.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGHandLayer.cpp b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGHandLayer.cpp index 7c06b49..77324b1 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGHandLayer.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGHandLayer.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -132,6 +132,25 @@ void FSGHandLayer::GetWristLocation( OutWristRotation = MoveTemp(OutWristRotationContainer.Quat); } +void FSGHandLayer::GetWristLocation( + const bool bRightHanded, const FVector& ReferencePosition, const FRotator& ReferenceRotation, + ESGPositionalTrackingHardware TrackingHardware, FVector& OutWristPosition, FRotator& OutWristRotation) +{ + FSGIC_FVector ReferencePositionContainer{ReferencePosition}; + FSGIC_FQuat ReferenceRotationContainer{ReferenceRotation.Quaternion()}; + FSGIC_ESGPositionalTrackingHardware TrackingHardwareContainer{TrackingHardware}; + FSGIC_FVector OutWristPositionContainer; + FSGIC_FQuat OutWristRotationContainer; + + SGCoreImpl_FSGHandLayerImpl_GetWristLocation( + bRightHanded, &ReferencePositionContainer, &ReferenceRotationContainer, + &TrackingHardwareContainer, + &OutWristPositionContainer, &OutWristRotationContainer); + + OutWristPosition = MoveTemp(OutWristPositionContainer.Vector); + OutWristRotation = OutWristRotationContainer.Quat.Rotator(); +} + void FSGHandLayer::StopAllHaptics(const bool bRightHanded) { SGCoreImpl_FSGHandLayerImpl_StopAllHaptics(bRightHanded); diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGHandPose.cpp b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGHandPose.cpp index 3d29229..b56e1cd 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGHandPose.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGHandPose.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGHapticChannelInfo.cpp b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGHapticChannelInfo.cpp index 3607601..e5cabe1 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGHapticChannelInfo.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGHapticChannelInfo.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGHapticGlove.cpp b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGHapticGlove.cpp index 0ea57fc..ffc2e7e 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGHapticGlove.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGHapticGlove.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGInterpolationSet.cpp b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGInterpolationSet.cpp index 23e8528..05e7803 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGInterpolationSet.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGInterpolationSet.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGInterpolationSetArray.cpp b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGInterpolationSetArray.cpp index c214563..216def7 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGInterpolationSetArray.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGInterpolationSetArray.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGJointKinematics.cpp b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGJointKinematics.cpp index 83b7360..a6cd376 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGJointKinematics.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGJointKinematics.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGLibrary.cpp index 98d4549..0a605e2 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGNova2Glove.cpp b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGNova2Glove.cpp index 74bf19f..b721e81 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGNova2Glove.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGNova2Glove.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGNova2GloveSensorData.cpp b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGNova2GloveSensorData.cpp index 5679459..4b24795 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGNova2GloveSensorData.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGNova2GloveSensorData.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGNovaGlove.cpp b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGNovaGlove.cpp index 7d44102..88d50e2 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGNovaGlove.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGNovaGlove.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGNovaGloveInfo.cpp b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGNovaGloveInfo.cpp index 1b93b42..21beece 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGNovaGloveInfo.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGNovaGloveInfo.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGNovaGloveSensorData.cpp b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGNovaGloveSensorData.cpp index f52483f..314cd1a 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGNovaGloveSensorData.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGNovaGloveSensorData.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 NovaGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGSenseCom.cpp b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGSenseCom.cpp index 6e8cac6..5550796 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGSenseCom.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGSenseCom.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGSenseGlove.cpp b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGSenseGlove.cpp index 8f3f7ac..578d67f 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGSenseGlove.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGSenseGlove.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGSenseGloveInfo.cpp b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGSenseGloveInfo.cpp index 6896994..a437c8c 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGSenseGloveInfo.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGSenseGloveInfo.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGSenseGlovePose.cpp b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGSenseGlovePose.cpp index 1538431..5271c09 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGSenseGlovePose.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGSenseGlovePose.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGSenseGloveSensorData.cpp b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGSenseGloveSensorData.cpp index 0afb95f..e97afbc 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGSenseGloveSensorData.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGSenseGloveSensorData.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGSenseGloveSensorNormalizer.cpp b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGSenseGloveSensorNormalizer.cpp index eeac88c..f2663c2 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGSenseGloveSensorNormalizer.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGSenseGloveSensorNormalizer.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGSenseGloveVars.cpp b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGSenseGloveVars.cpp index 25bbd30..b2d925c 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGSenseGloveVars.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGSenseGloveVars.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGSensorNormalization.cpp b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGSensorNormalization.cpp index 709b3a4..3b0b383 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGSensorNormalization.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGSensorNormalization.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGThresholdCommand.cpp b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGThresholdCommand.cpp index d830531..72c8e84 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGThresholdCommand.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGThresholdCommand.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGTracking.cpp b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGTracking.cpp index 0cb8cfe..41c6da8 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGTracking.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SGCore/SGTracking.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SenseGloveCore.cpp b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SenseGloveCore.cpp index ef04dd8..de2b93c 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SenseGloveCore.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SenseGloveCore.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SenseGloveCore.h b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SenseGloveCore.h index ab121d0..334f908 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SenseGloveCore.h +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SenseGloveCore.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SenseGloveCoreModule.cpp b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SenseGloveCoreModule.cpp index 4b8c876..3162ac8 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SenseGloveCoreModule.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SenseGloveCoreModule.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SenseGloveCoreModule.h b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SenseGloveCoreModule.h index 40b5dbc..5fbaba8 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Private/SenseGloveCoreModule.h +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Private/SenseGloveCoreModule.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGAnatomy.h b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGAnatomy.h index 0a870b1..8fc19c9 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGAnatomy.h +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGAnatomy.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGBasicHandModel.h b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGBasicHandModel.h index 12f3ad1..0fa89d7 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGBasicHandModel.h +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGBasicHandModel.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGBetaDevice.h b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGBetaDevice.h index 5e9ce71..8c16b8f 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGBetaDevice.h +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGBetaDevice.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGCore.h b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGCore.h index 2e7fad6..72edc2e 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGCore.h +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGCore.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGCustomWaveform.h b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGCustomWaveform.h index 882f9a7..bcb583f 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGCustomWaveform.h +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGCustomWaveform.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGDevice.h b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGDevice.h index 2c1a32f..5d89196 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGDevice.h +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGDevice.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGDeviceList.h b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGDeviceList.h index 25d7cc4..f2e20b6 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGDeviceList.h +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGDeviceList.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGDeviceModel.h b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGDeviceModel.h index 950ad1d..ffef385 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGDeviceModel.h +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGDeviceModel.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGHandInterpolator.h b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGHandInterpolator.h index 6c24101..1201822 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGHandInterpolator.h +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGHandInterpolator.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGHandLayer.h b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGHandLayer.h index 4c571ff..a534871 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGHandLayer.h +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGHandLayer.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -42,6 +42,7 @@ #include "Containers/UnrealString.h" #include "HAL/Platform.h" #include "Math/Quat.h" +#include "Math/Rotator.h" #include "Math/Vector.h" #include "UObject/ObjectMacros.h" @@ -148,6 +149,22 @@ public: ESGPositionalTrackingHardware TrackingHardware, FVector& OutWristPosition, FQuat& OutWristRotation); + /** + * Calculate the Wrist Location of the chosen hand, based on a reference location and tracking hardware. + * + * @param bRightHanded + * @param ReferencePosition + * @param ReferenceRotation + * @param TrackingHardware + * @param OutWristPosition + * @param OutWristRotation + */ + static void GetWristLocation( + bool bRightHanded, + const FVector& ReferencePosition, const FRotator& ReferenceRotation, + ESGPositionalTrackingHardware TrackingHardware, + FVector& OutWristPosition, FRotator& OutWristRotation); + /** * Stop all haptics on the chosen hand. * diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGHandPose.h b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGHandPose.h index 6a1d215..2da53b7 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGHandPose.h +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGHandPose.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGHapticChannelInfo.h b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGHapticChannelInfo.h index 15e9d9d..0dad222 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGHapticChannelInfo.h +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGHapticChannelInfo.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGHapticGlove.h b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGHapticGlove.h index 73b7430..2a0bdef 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGHapticGlove.h +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGHapticGlove.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGInterpolationSet.h b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGInterpolationSet.h index 690bdcc..86e657a 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGInterpolationSet.h +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGInterpolationSet.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGInterpolationSetArray.h b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGInterpolationSetArray.h index 5a3dcba..9e6f11a 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGInterpolationSetArray.h +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGInterpolationSetArray.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGJointKinematics.h b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGJointKinematics.h index 5814f5d..0cfc8c6 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGJointKinematics.h +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGJointKinematics.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGLibrary.h b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGLibrary.h index 3bf90bf..2a10aa5 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGNova2Glove.h b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGNova2Glove.h index 6bb50e9..6f07973 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGNova2Glove.h +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGNova2Glove.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGNova2GloveSensorData.h b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGNova2GloveSensorData.h index 50a2909..097fb57 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGNova2GloveSensorData.h +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGNova2GloveSensorData.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGNovaGlove.h b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGNovaGlove.h index 69c32c2..0401bc1 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGNovaGlove.h +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGNovaGlove.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGNovaGloveInfo.h b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGNovaGloveInfo.h index 1fa5c9d..adf00e3 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGNovaGloveInfo.h +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGNovaGloveInfo.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGNovaGloveSensorData.h b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGNovaGloveSensorData.h index 9b7ecb2..73b117f 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGNovaGloveSensorData.h +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGNovaGloveSensorData.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 NovaGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGSenseCom.h b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGSenseCom.h index 549fffa..4be2172 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGSenseCom.h +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGSenseCom.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGSenseGlove.h b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGSenseGlove.h index cafe7da..8642747 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGSenseGlove.h +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGSenseGlove.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGSenseGloveInfo.h b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGSenseGloveInfo.h index 153fb3a..e57882a 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGSenseGloveInfo.h +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGSenseGloveInfo.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGSenseGlovePose.h b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGSenseGlovePose.h index ebf6a0e..bc16e6c 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGSenseGlovePose.h +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGSenseGlovePose.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGSenseGloveSensorData.h b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGSenseGloveSensorData.h index de7fe88..e5bece8 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGSenseGloveSensorData.h +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGSenseGloveSensorData.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGSenseGloveSensorNormalizer.h b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGSenseGloveSensorNormalizer.h index 317491a..55670f6 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGSenseGloveSensorNormalizer.h +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGSenseGloveSensorNormalizer.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGSenseGloveVars.h b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGSenseGloveVars.h index 90d7980..3cfd5a2 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGSenseGloveVars.h +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGSenseGloveVars.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGSensorNormalization.h b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGSensorNormalization.h index f2f676c..1c3a25b 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGSensorNormalization.h +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGSensorNormalization.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGThresholdCommand.h b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGThresholdCommand.h index c38b6b4..02dfa29 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGThresholdCommand.h +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGThresholdCommand.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGTracking.h b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGTracking.h index b416fce..3b1d277 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGTracking.h +++ b/Plugins/SenseGlove/Source/SenseGloveCore/Public/SGCore/SGTracking.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCore/SenseGloveCore.Build.cs b/Plugins/SenseGlove/Source/SenseGloveCore/SenseGloveCore.Build.cs index 1b5e987..848c517 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCore/SenseGloveCore.Build.cs +++ b/Plugins/SenseGlove/Source/SenseGloveCore/SenseGloveCore.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGAnatomyImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGAnatomyImpl.cpp index 6dbbf83..a5d84d8 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGAnatomyImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGAnatomyImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGBasicHandModelImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGBasicHandModelImpl.cpp index 5ab9698..82065d3 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGBasicHandModelImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGBasicHandModelImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGBetaDeviceImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGBetaDeviceImpl.cpp index 2895f30..a971b3b 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGBetaDeviceImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGBetaDeviceImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGCoreEnumCast.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGCoreEnumCast.cpp index c293fbd..bbfd52c 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGCoreEnumCast.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGCoreEnumCast.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGCoreEnumCast.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGCoreEnumCast.h index 19d7da7..a112d9f 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGCoreEnumCast.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGCoreEnumCast.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGCustomWaveformImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGCustomWaveformImpl.cpp index 4b78ca3..e0f8e1a 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGCustomWaveformImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGCustomWaveformImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGDeviceImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGDeviceImpl.cpp index fe737cb..af008b9 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGDeviceImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGDeviceImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGDeviceListImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGDeviceListImpl.cpp index 62ae031..62cb742 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGDeviceListImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGDeviceListImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGDeviceModelImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGDeviceModelImpl.cpp index 5c04ce5..d63dddb 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGDeviceModelImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGDeviceModelImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGExportedFunctions.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGExportedFunctions.cpp index 366d49c..ffee3bd 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGExportedFunctions.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGExportedFunctions.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGHandInterpolatorImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGHandInterpolatorImpl.cpp index 3e7d84b..a5f2e1e 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGHandInterpolatorImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGHandInterpolatorImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGHandLayerImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGHandLayerImpl.cpp index 32f208c..bac41d9 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGHandLayerImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGHandLayerImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGHandPoseImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGHandPoseImpl.cpp index f944f2b..e257078 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGHandPoseImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGHandPoseImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGHapticChannelInfoImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGHapticChannelInfoImpl.cpp index 7467070..34cb674 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGHapticChannelInfoImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGHapticChannelInfoImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseChannelInfo + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGHapticGloveImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGHapticGloveImpl.cpp index ef7d567..1d3212f 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGHapticGloveImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGHapticGloveImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGInterpolationSetImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGInterpolationSetImpl.cpp index 9953710..4f82b2b 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGInterpolationSetImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGInterpolationSetImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGJointKinematicsImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGJointKinematicsImpl.cpp index 02bd85f..24b8369 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGJointKinematicsImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGJointKinematicsImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGLibraryImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGLibraryImpl.cpp index 3b2a7df..18862db 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGLibraryImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGLibraryImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGNova2GloveImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGNova2GloveImpl.cpp index 8fa556c..b610786 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGNova2GloveImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGNova2GloveImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGNova2GloveSensorDataImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGNova2GloveSensorDataImpl.cpp index 172b7c2..92914b0 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGNova2GloveSensorDataImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGNova2GloveSensorDataImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGNovaGloveImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGNovaGloveImpl.cpp index ad55d9f..d9ab3ba 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGNovaGloveImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGNovaGloveImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 NovaGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGNovaGloveInfoImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGNovaGloveInfoImpl.cpp index 62e0a87..50bdbb3 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGNovaGloveInfoImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGNovaGloveInfoImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 NovaGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGNovaGloveSensorDataImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGNovaGloveSensorDataImpl.cpp index 3fa39f0..9a9c38a 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGNovaGloveSensorDataImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGNovaGloveSensorDataImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 NovaGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGQuatImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGQuatImpl.cpp index 9b96c18..2a3105d 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGQuatImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGQuatImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGQuatImpl.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGQuatImpl.h index b23f25d..937dfc4 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGQuatImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGQuatImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseComImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseComImpl.cpp index e40c826..27bde8a 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseComImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseComImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveImpl.cpp index 2884cfa..7026310 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveInfoImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveInfoImpl.cpp index 54de664..d3b166a 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveInfoImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveInfoImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGlovePoseImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGlovePoseImpl.cpp index 8deb64b..3469171 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGlovePoseImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGlovePoseImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveSensorDataImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveSensorDataImpl.cpp index b95aa6c..a6cd8c2 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveSensorDataImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveSensorDataImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveSensorNormalizerImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveSensorNormalizerImpl.cpp index b706b1b..8569cda 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveSensorNormalizerImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveSensorNormalizerImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveVarsImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveVarsImpl.cpp index 7997485..24c70a4 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveVarsImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveVarsImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSensorNormalizationImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSensorNormalizationImpl.cpp index 4bba558..99b5717 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSensorNormalizationImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSensorNormalizationImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGThresholdCommandImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGThresholdCommandImpl.cpp index 2119154..dd633df 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGThresholdCommandImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGThresholdCommandImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGTrackingImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGTrackingImpl.cpp index 992914a..66863ea 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGTrackingImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGTrackingImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGVect3DImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGVect3DImpl.cpp index d570083..99569bb 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGVect3DImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGVect3DImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGVect3DImpl.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGVect3DImpl.h index 18ee73f..cc5b595 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGVect3DImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGVect3DImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SenseGloveCoreImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SenseGloveCoreImpl.cpp index 10de9d8..8eb1f90 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SenseGloveCoreImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SenseGloveCoreImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SenseGloveCoreImpl.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SenseGloveCoreImpl.h index a30ce66..65941e7 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SenseGloveCoreImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SenseGloveCoreImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SenseGloveCoreImplModule.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SenseGloveCoreImplModule.cpp index ea08923..5afcc59 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SenseGloveCoreImplModule.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SenseGloveCoreImplModule.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SenseGloveCoreImplModule.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SenseGloveCoreImplModule.h index 471cb7f..fac2e67 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SenseGloveCoreImplModule.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Private/SenseGloveCoreImplModule.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGAnatomyImpl.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGAnatomyImpl.h index 10f8e51..b5eb7ea 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGAnatomyImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGAnatomyImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGBasicHandModelImpl.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGBasicHandModelImpl.h index 2f748de..424367c 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGBasicHandModelImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGBasicHandModelImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGBetaDeviceImpl.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGBetaDeviceImpl.h index e46092f..cf0f6ea 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGBetaDeviceImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGBetaDeviceImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGCustomWaveformImpl.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGCustomWaveformImpl.h index 3124a4d..d3f9a29 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGCustomWaveformImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGCustomWaveformImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGDeviceImpl.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGDeviceImpl.h index 5094b65..ac7e191 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGDeviceImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGDeviceImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGDeviceListImpl.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGDeviceListImpl.h index 9a95b68..46f8b03 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGDeviceListImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGDeviceListImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGDeviceModelImpl.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGDeviceModelImpl.h index 5e18cb8..e10a299 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGDeviceModelImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGDeviceModelImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGExportedFunctions.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGExportedFunctions.h index 0a8da04..8fe71d6 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGExportedFunctions.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGExportedFunctions.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGHandInterpolatorImpl.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGHandInterpolatorImpl.h index a450b7c..85af4df 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGHandInterpolatorImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGHandInterpolatorImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGHandLayerImpl.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGHandLayerImpl.h index 0dbcda3..78482d5 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGHandLayerImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGHandLayerImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGHandPoseImpl.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGHandPoseImpl.h index e669561..0e43b8c 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGHandPoseImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGHandPoseImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGHapticChannelInfoImpl.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGHapticChannelInfoImpl.h index 2f0c245..69a9d19 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGHapticChannelInfoImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGHapticChannelInfoImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGHapticGloveImpl.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGHapticGloveImpl.h index e15a860..236acbf 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGHapticGloveImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGHapticGloveImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGInterpolationSetImpl.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGInterpolationSetImpl.h index a632e24..76637b9 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGInterpolationSetImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGInterpolationSetImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGJointKinematicsImpl.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGJointKinematicsImpl.h index b4ac26a..b5a268b 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGJointKinematicsImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGJointKinematicsImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGLibraryImpl.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGLibraryImpl.h index 36e180d..9abbeab 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGLibraryImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGLibraryImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGNova2GloveImpl.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGNova2GloveImpl.h index 79c38f5..af1fb66 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGNova2GloveImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGNova2GloveImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGNova2GloveSensorDataImpl.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGNova2GloveSensorDataImpl.h index 1828f63..f326833 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGNova2GloveSensorDataImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGNova2GloveSensorDataImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGNovaGloveImpl.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGNovaGloveImpl.h index 31e81b0..f3ff6f8 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGNovaGloveImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGNovaGloveImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 NovaGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGNovaGloveInfoImpl.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGNovaGloveInfoImpl.h index f5c82e0..95ebf52 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGNovaGloveInfoImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGNovaGloveInfoImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 NovaGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGNovaGloveSensorDataImpl.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGNovaGloveSensorDataImpl.h index 4325fea..545e64e 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGNovaGloveSensorDataImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGNovaGloveSensorDataImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 NovaGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGSenseComImpl.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGSenseComImpl.h index f32f8a7..20ba435 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGSenseComImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGSenseComImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGSenseGloveImpl.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGSenseGloveImpl.h index f4c9fb3..2455d8e 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGSenseGloveImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGSenseGloveImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGSenseGloveInfoImpl.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGSenseGloveInfoImpl.h index c757059..939cc13 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGSenseGloveInfoImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGSenseGloveInfoImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGSenseGlovePoseImpl.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGSenseGlovePoseImpl.h index f398ba1..b31ac12 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGSenseGlovePoseImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGSenseGlovePoseImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGSenseGloveSensorDataImpl.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGSenseGloveSensorDataImpl.h index 65727e0..88a6c33 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGSenseGloveSensorDataImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGSenseGloveSensorDataImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGSenseGloveSensorNormalizerImpl.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGSenseGloveSensorNormalizerImpl.h index 1b957e5..01ac6d8 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGSenseGloveSensorNormalizerImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGSenseGloveSensorNormalizerImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGSenseGloveVarsImpl.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGSenseGloveVarsImpl.h index 2a4777f..730e7dc 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGSenseGloveVarsImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGSenseGloveVarsImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGSensorNormalizationImpl.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGSensorNormalizationImpl.h index 3c1840d..a05a0ef 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGSensorNormalizationImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGSensorNormalizationImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGThresholdCommandImpl.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGThresholdCommandImpl.h index ebc381a..de30db9 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGThresholdCommandImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGThresholdCommandImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGTrackingImpl.h b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGTrackingImpl.h index fcd0148..3847ce0 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGTrackingImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGTrackingImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/SenseGloveCoreImpl.Build.cs b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/SenseGloveCoreImpl.Build.cs index 9ca1582..6f87f2a 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreImpl/SenseGloveCoreImpl.Build.cs +++ b/Plugins/SenseGlove/Source/SenseGloveCoreImpl/SenseGloveCoreImpl.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGAnatomyKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGAnatomyKismetLibrary.cpp index 4b824ee..59593d7 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGAnatomyKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGAnatomyKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGBasicHandModelKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGBasicHandModelKismetLibrary.cpp index a415b92..b5b3d26 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGBasicHandModelKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGBasicHandModelKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGBetaDeviceKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGBetaDeviceKismetLibrary.cpp index c14992f..c0c16f6 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGBetaDeviceKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGBetaDeviceKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGCustomWaveformKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGCustomWaveformKismetLibrary.cpp index 31ae72c..a9f7beb 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGCustomWaveformKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGCustomWaveformKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGDeviceKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGDeviceKismetLibrary.cpp index 2cc02bd..9c14052 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGDeviceKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGDeviceKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGDeviceListKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGDeviceListKismetLibrary.cpp index c9e65e6..a297dc3 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGDeviceListKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGDeviceListKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGDeviceModelKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGDeviceModelKismetLibrary.cpp index 0aac9d3..9f416c5 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGDeviceModelKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGDeviceModelKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGHandInterpolatorKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGHandInterpolatorKismetLibrary.cpp index 711b11d..1d574d6 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGHandInterpolatorKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGHandInterpolatorKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGHandLayerKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGHandLayerKismetLibrary.cpp index 2a58133..9a54e13 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGHandLayerKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGHandLayerKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -91,10 +91,21 @@ bool USGHandLayerKismetLibrary::GetHandPose(UObject* WorldContextObject, return FSGHandLayer::GetHandPose(WorldContextObject, bRightHanded, OutHandPose); } -void USGHandLayerKismetLibrary::GetWristLocation(const bool bRightHanded, - const FVector& ReferencePosition, const FQuat& ReferenceRotation, - const ESGPositionalTrackingHardware TrackingHardware, - FVector& OutWristPosition, FQuat& OutWristRotation) +void USGHandLayerKismetLibrary::GetWristLocation_bRH_FQuat_RR_TH_OutWP_OutWR( + const bool bRightHanded, + const FVector& ReferencePosition, const FQuat& ReferenceRotation, + ESGPositionalTrackingHardware TrackingHardware, + FVector& OutWristPosition, FQuat& OutWristRotation) +{ + FSGHandLayer::GetWristLocation(bRightHanded, ReferencePosition, ReferenceRotation, TrackingHardware, + OutWristPosition, OutWristRotation); +} + +void USGHandLayerKismetLibrary::GetWristLocation_bRH_RP_FRotator_RR_TH_OutWP_OutWR( + const bool bRightHanded, + const FVector& ReferencePosition, const FRotator& ReferenceRotation, + ESGPositionalTrackingHardware TrackingHardware, + FVector& OutWristPosition, FRotator& OutWristRotation) { FSGHandLayer::GetWristLocation(bRightHanded, ReferencePosition, ReferenceRotation, TrackingHardware, OutWristPosition, OutWristRotation); diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGHandPoseKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGHandPoseKismetLibrary.cpp index 983849f..d2dfcc5 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGHandPoseKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGHandPoseKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGHapticChannelInfoKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGHapticChannelInfoKismetLibrary.cpp index 11ce486..c3dd5ad 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGHapticChannelInfoKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGHapticChannelInfoKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGHapticGloveKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGHapticGloveKismetLibrary.cpp index d777e01..0a494f3 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGHapticGloveKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGHapticGloveKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGInterpolationSetKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGInterpolationSetKismetLibrary.cpp index ad8d779..1320ac0 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGInterpolationSetKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGInterpolationSetKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGJointKinematicsKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGJointKinematicsKismetLibrary.cpp index f9a9e66..a8073dc 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGJointKinematicsKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGJointKinematicsKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGLibraryKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGLibraryKismetLibrary.cpp index 4847361..1831725 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGLibraryKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGLibraryKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGNova2GloveKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGNova2GloveKismetLibrary.cpp index bb2f7ed..0366b0f 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGNova2GloveKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGNova2GloveKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGNova2GloveSensorDataKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGNova2GloveSensorDataKismetLibrary.cpp index ea317d7..d83513e 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGNova2GloveSensorDataKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGNova2GloveSensorDataKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGNovaGloveInfoKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGNovaGloveInfoKismetLibrary.cpp index 6dc4c4f..31a820c 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGNovaGloveInfoKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGNovaGloveInfoKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGNovaGloveKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGNovaGloveKismetLibrary.cpp index 2a4fc59..deeefb5 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGNovaGloveKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGNovaGloveKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 NovaGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGNovaGloveSensorDataKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGNovaGloveSensorDataKismetLibrary.cpp index 3dd3647..f4f411e 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGNovaGloveSensorDataKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGNovaGloveSensorDataKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSenseComKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSenseComKismetLibrary.cpp index ec0bfd6..5c27d3e 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSenseComKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSenseComKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSenseGloveInfoKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSenseGloveInfoKismetLibrary.cpp index e86e36b..f4359db 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSenseGloveInfoKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSenseGloveInfoKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSenseGloveKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSenseGloveKismetLibrary.cpp index 11892d9..31841bc 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSenseGloveKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSenseGloveKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSenseGlovePoseKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSenseGlovePoseKismetLibrary.cpp index 6505520..637f059 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSenseGlovePoseKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSenseGlovePoseKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSenseGloveSensorDataKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSenseGloveSensorDataKismetLibrary.cpp index 19d1359..0c68e77 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSenseGloveSensorDataKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSenseGloveSensorDataKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSenseGloveSensorNormalizerKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSenseGloveSensorNormalizerKismetLibrary.cpp index ac5132c..ad78150 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSenseGloveSensorNormalizerKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSenseGloveSensorNormalizerKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSenseGloveVarsKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSenseGloveVarsKismetLibrary.cpp index 59a0982..043cc82 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSenseGloveVarsKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSenseGloveVarsKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSensorNormalizationKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSensorNormalizationKismetLibrary.cpp index 79a0cda..e0fc7d0 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSensorNormalizationKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSensorNormalizationKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGThresholdCommandKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGThresholdCommandKismetLibrary.cpp index a264414..1a5970e 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGThresholdCommandKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGThresholdCommandKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGTrackingKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGTrackingKismetLibrary.cpp index ac758a8..260370e 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGTrackingKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGTrackingKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SenseGloveCoreKismet.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SenseGloveCoreKismet.cpp index 6317233..6d635d9 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SenseGloveCoreKismet.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SenseGloveCoreKismet.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SenseGloveCoreKismet.h b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SenseGloveCoreKismet.h index ab121d0..334f908 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SenseGloveCoreKismet.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SenseGloveCoreKismet.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SenseGloveCoreKismetModule.cpp b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SenseGloveCoreKismetModule.cpp index d0523b5..ec67878 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SenseGloveCoreKismetModule.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SenseGloveCoreKismetModule.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SenseGloveCoreKismetModule.h b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SenseGloveCoreKismetModule.h index fef1146..8cc1584 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SenseGloveCoreKismetModule.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Private/SenseGloveCoreKismetModule.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGAnatomyKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGAnatomyKismetLibrary.h index 92bbc06..611d086 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGAnatomyKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGAnatomyKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGBasicHandModelKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGBasicHandModelKismetLibrary.h index 6f25354..0e84968 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGBasicHandModelKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGBasicHandModelKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGBetaDeviceKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGBetaDeviceKismetLibrary.h index 63cf460..4f2a697 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGBetaDeviceKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGBetaDeviceKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGCustomWaveformKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGCustomWaveformKismetLibrary.h index 44c7f58..18b93dc 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGCustomWaveformKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGCustomWaveformKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGDeviceKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGDeviceKismetLibrary.h index f9baac9..069e855 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGDeviceKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGDeviceKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGDeviceListKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGDeviceListKismetLibrary.h index 7fc7a44..269a75d 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGDeviceListKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGDeviceListKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGDeviceModelKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGDeviceModelKismetLibrary.h index d8bd497..610efa8 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGDeviceModelKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGDeviceModelKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGHandInterpolatorKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGHandInterpolatorKismetLibrary.h index 67dbc12..4b28526 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGHandInterpolatorKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGHandInterpolatorKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGHandLayerKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGHandLayerKismetLibrary.h index a6707f3..69b10b2 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGHandLayerKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGHandLayerKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -122,13 +122,23 @@ public: /** * Calculate the Wrist Location of the chosen hand, based on a reference location and tracking hardware. */ - UFUNCTION(BlueprintCallable, Category="SenseGlove | Core | Hand Layer") - static void GetWristLocation( + UFUNCTION(BlueprintCallable, DisplayName="Get Wrist Location", Category="SenseGlove | Core | Hand Layer") + static void GetWristLocation_bRH_FQuat_RR_TH_OutWP_OutWR( bool bRightHanded, const FVector& ReferencePosition, const FQuat& ReferenceRotation, ESGPositionalTrackingHardware TrackingHardware, FVector& OutWristPosition, FQuat& OutWristRotation); + /** + * Calculate the Wrist Location of the chosen hand, based on a reference location and tracking hardware. + */ + UFUNCTION(BlueprintCallable, DisplayName="Get Wrist Location", Category="SenseGlove | Core | Hand Layer") + static void GetWristLocation_bRH_RP_FRotator_RR_TH_OutWP_OutWR( + bool bRightHanded, + const FVector& ReferencePosition, const FRotator& ReferenceRotation, + ESGPositionalTrackingHardware TrackingHardware, + FVector& OutWristPosition, FRotator& OutWristRotation); + /** * Stop all haptics on the chosen hand. */ diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGHandPoseKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGHandPoseKismetLibrary.h index 6e1d3c9..f2e1076 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGHandPoseKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGHandPoseKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGHapticChannelInfoKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGHapticChannelInfoKismetLibrary.h index 6550ef4..6deae8c 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGHapticChannelInfoKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGHapticChannelInfoKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGHapticGloveKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGHapticGloveKismetLibrary.h index f8b7fb2..aedf565 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGHapticGloveKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGHapticGloveKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGInterpolationSetKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGInterpolationSetKismetLibrary.h index 329bad5..2f7d61f 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGInterpolationSetKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGInterpolationSetKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGJointKinematicsKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGJointKinematicsKismetLibrary.h index cbf7382..119bd1f 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGJointKinematicsKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGJointKinematicsKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGLibraryKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGLibraryKismetLibrary.h index 8bc1377..de82491 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGLibraryKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGLibraryKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGNova2GloveKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGNova2GloveKismetLibrary.h index 01d97ec..e7650e8 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGNova2GloveKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGNova2GloveKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGNova2GloveSensorDataKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGNova2GloveSensorDataKismetLibrary.h index 846a35c..f0604c1 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGNova2GloveSensorDataKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGNova2GloveSensorDataKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGNovaGloveInfoKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGNovaGloveInfoKismetLibrary.h index 35b2938..171fed0 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGNovaGloveInfoKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGNovaGloveInfoKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGNovaGloveKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGNovaGloveKismetLibrary.h index 0c9207a..8d46dde 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGNovaGloveKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGNovaGloveKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 NovaGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGNovaGloveSensorDataKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGNovaGloveSensorDataKismetLibrary.h index 9b7b663..e4ec9be 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGNovaGloveSensorDataKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGNovaGloveSensorDataKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSenseComKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSenseComKismetLibrary.h index 39a5a4b..deb1ec7 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSenseComKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSenseComKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSenseGloveInfoKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSenseGloveInfoKismetLibrary.h index 08b39e1..9c5d3a3 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSenseGloveInfoKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSenseGloveInfoKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSenseGloveKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSenseGloveKismetLibrary.h index 69993e2..7951960 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSenseGloveKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSenseGloveKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSenseGlovePoseKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSenseGlovePoseKismetLibrary.h index cc45de7..4f5e5f1 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSenseGlovePoseKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSenseGlovePoseKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSenseGloveSensorDataKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSenseGloveSensorDataKismetLibrary.h index 0bd96d4..3fb533d 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSenseGloveSensorDataKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSenseGloveSensorDataKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSenseGloveSensorNormalizerKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSenseGloveSensorNormalizerKismetLibrary.h index ec2e3c4..35fb200 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSenseGloveSensorNormalizerKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSenseGloveSensorNormalizerKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSenseGloveVarsKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSenseGloveVarsKismetLibrary.h index ecd0e5c..96bdbc1 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSenseGloveVarsKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSenseGloveVarsKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSensorNormalizationKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSensorNormalizationKismetLibrary.h index 9b63a32..5052dd2 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSensorNormalizationKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSensorNormalizationKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGThresholdCommandKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGThresholdCommandKismetLibrary.h index e9c8697..83caa53 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGThresholdCommandKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGThresholdCommandKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGTrackingKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGTrackingKismetLibrary.h index 5a18719..971139c 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGTrackingKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGTrackingKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/SenseGloveCoreKismet.Build.cs b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/SenseGloveCoreKismet.Build.cs index 5387060..8634d73 100644 --- a/Plugins/SenseGlove/Source/SenseGloveCoreKismet/SenseGloveCoreKismet.Build.cs +++ b/Plugins/SenseGlove/Source/SenseGloveCoreKismet/SenseGloveCoreKismet.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveDebug/Private/SGDebug/SGDebugCube.cpp b/Plugins/SenseGlove/Source/SenseGloveDebug/Private/SGDebug/SGDebugCube.cpp index 81f5492..3dee13c 100644 --- a/Plugins/SenseGlove/Source/SenseGloveDebug/Private/SGDebug/SGDebugCube.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveDebug/Private/SGDebug/SGDebugCube.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveDebug/Private/SGDebug/SGDebugGizmo.cpp b/Plugins/SenseGlove/Source/SenseGloveDebug/Private/SGDebug/SGDebugGizmo.cpp index 733e0b8..d370564 100644 --- a/Plugins/SenseGlove/Source/SenseGloveDebug/Private/SGDebug/SGDebugGizmo.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveDebug/Private/SGDebug/SGDebugGizmo.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveDebug/Private/SGDebug/SGDebugVirtualHand.cpp b/Plugins/SenseGlove/Source/SenseGloveDebug/Private/SGDebug/SGDebugVirtualHand.cpp index fce875a..8471034 100644 --- a/Plugins/SenseGlove/Source/SenseGloveDebug/Private/SGDebug/SGDebugVirtualHand.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveDebug/Private/SGDebug/SGDebugVirtualHand.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -44,7 +44,6 @@ #include "SGDebug/SGDebugCube.h" #include "SGDebug/SGDebugGizmo.h" -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 void FSGDebugVirtualHand::Draw( const UWorld* World, const FXRHandTrackingState& HandTrackingState, @@ -87,4 +86,32 @@ void FSGDebugVirtualHand::Draw( } } } -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ \ No newline at end of file + +void FSGDebugVirtualHand::Draw( + const UWorld* World, + const FXRHandTrackingState& HandTrackingState, + const FSGDebugGizmoSettings& Settings) +{ + if (!ensureAlwaysMsgf( + HandTrackingState.bValid, + TEXT("Invalid hand tracking state!"))) + { + return; + }; + + if (!ensureAlwaysMsgf( + HandTrackingState.HandKeyLocations.Num() == HandTrackingState.HandKeyRotations.Num(), + TEXT("Mismatched hand tracking state locations and rotations!"))) + { + return; + }; + + for (TArray::SizeType HandKeyIndex = 0; + HandKeyIndex < HandTrackingState.HandKeyLocations.Num(); ++HandKeyIndex) + { + const FVector& HandKeyLocation{HandTrackingState.HandKeyLocations[HandKeyIndex]}; + const FQuat& HandKeyRotation{HandTrackingState.HandKeyRotations[HandKeyIndex]}; + + FSGDebugGizmo::Draw(World, HandKeyLocation, HandKeyRotation, Settings); + } +} \ No newline at end of file diff --git a/Plugins/SenseGlove/Source/SenseGloveDebug/Private/SenseGloveDebug.cpp b/Plugins/SenseGlove/Source/SenseGloveDebug/Private/SenseGloveDebug.cpp index e4577e1..3aa0408 100644 --- a/Plugins/SenseGlove/Source/SenseGloveDebug/Private/SenseGloveDebug.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveDebug/Private/SenseGloveDebug.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveDebug/Private/SenseGloveDebug.h b/Plugins/SenseGlove/Source/SenseGloveDebug/Private/SenseGloveDebug.h index a30ce66..65941e7 100644 --- a/Plugins/SenseGlove/Source/SenseGloveDebug/Private/SenseGloveDebug.h +++ b/Plugins/SenseGlove/Source/SenseGloveDebug/Private/SenseGloveDebug.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveDebug/Private/SenseGloveDebugModule.cpp b/Plugins/SenseGlove/Source/SenseGloveDebug/Private/SenseGloveDebugModule.cpp index f3b7ce6..b240e6a 100644 --- a/Plugins/SenseGlove/Source/SenseGloveDebug/Private/SenseGloveDebugModule.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveDebug/Private/SenseGloveDebugModule.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveDebug/Private/SenseGloveDebugModule.h b/Plugins/SenseGlove/Source/SenseGloveDebug/Private/SenseGloveDebugModule.h index cb983ca..6d17d64 100644 --- a/Plugins/SenseGlove/Source/SenseGloveDebug/Private/SenseGloveDebugModule.h +++ b/Plugins/SenseGlove/Source/SenseGloveDebug/Private/SenseGloveDebugModule.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveDebug/Public/SGDebug/SGDebugCube.h b/Plugins/SenseGlove/Source/SenseGloveDebug/Public/SGDebug/SGDebugCube.h index 7898472..a0fe148 100644 --- a/Plugins/SenseGlove/Source/SenseGloveDebug/Public/SGDebug/SGDebugCube.h +++ b/Plugins/SenseGlove/Source/SenseGloveDebug/Public/SGDebug/SGDebugCube.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveDebug/Public/SGDebug/SGDebugGizmo.h b/Plugins/SenseGlove/Source/SenseGloveDebug/Public/SGDebug/SGDebugGizmo.h index 3d692cd..2983ec2 100644 --- a/Plugins/SenseGlove/Source/SenseGloveDebug/Public/SGDebug/SGDebugGizmo.h +++ b/Plugins/SenseGlove/Source/SenseGloveDebug/Public/SGDebug/SGDebugGizmo.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveDebug/Public/SGDebug/SGDebugVirtualHand.h b/Plugins/SenseGlove/Source/SenseGloveDebug/Public/SGDebug/SGDebugVirtualHand.h index c9545ea..ad5063c 100644 --- a/Plugins/SenseGlove/Source/SenseGloveDebug/Public/SGDebug/SGDebugVirtualHand.h +++ b/Plugins/SenseGlove/Source/SenseGloveDebug/Public/SGDebug/SGDebugVirtualHand.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -48,12 +48,15 @@ class UWorld; class SENSEGLOVEDEBUG_API FSGDebugVirtualHand final { public: -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 static void Draw( const UWorld* World, const FXRHandTrackingState& HandTrackingState, const FSGVirtualHandDebuggingSettings& Settings); -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ + + static void Draw( + const UWorld* World, + const FXRHandTrackingState& HandTrackingState, + const FSGDebugGizmoSettings& Settings); public: FSGDebugVirtualHand() = delete; diff --git a/Plugins/SenseGlove/Source/SenseGloveDebug/SenseGloveDebug.Build.cs b/Plugins/SenseGlove/Source/SenseGloveDebug/SenseGloveDebug.Build.cs index b25b089..c30d464 100644 --- a/Plugins/SenseGlove/Source/SenseGloveDebug/SenseGloveDebug.Build.cs +++ b/Plugins/SenseGlove/Source/SenseGloveDebug/SenseGloveDebug.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Private/SGDebugKismet/SGDebugCubeKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Private/SGDebugKismet/SGDebugCubeKismetLibrary.cpp index 6d6e450..2b5d5c6 100644 --- a/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Private/SGDebugKismet/SGDebugCubeKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Private/SGDebugKismet/SGDebugCubeKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Private/SGDebugKismet/SGDebugGizmoKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Private/SGDebugKismet/SGDebugGizmoKismetLibrary.cpp index ed0b9c5..2747bbe 100644 --- a/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Private/SGDebugKismet/SGDebugGizmoKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Private/SGDebugKismet/SGDebugGizmoKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Private/SGDebugKismet/SGDebugVirtualHandKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Private/SGDebugKismet/SGDebugVirtualHandKismetLibrary.cpp index f8c7179..53bc363 100644 --- a/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Private/SGDebugKismet/SGDebugVirtualHandKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Private/SGDebugKismet/SGDebugVirtualHandKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Private/SenseGloveDebugKismet.cpp b/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Private/SenseGloveDebugKismet.cpp index d99eab9..7f4c78f 100644 --- a/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Private/SenseGloveDebugKismet.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Private/SenseGloveDebugKismet.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Private/SenseGloveDebugKismet.h b/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Private/SenseGloveDebugKismet.h index a30ce66..65941e7 100644 --- a/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Private/SenseGloveDebugKismet.h +++ b/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Private/SenseGloveDebugKismet.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Private/SenseGloveDebugKismetModule.cpp b/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Private/SenseGloveDebugKismetModule.cpp index 7a629ef..63f8088 100644 --- a/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Private/SenseGloveDebugKismetModule.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Private/SenseGloveDebugKismetModule.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Private/SenseGloveDebugKismetModule.h b/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Private/SenseGloveDebugKismetModule.h index 478cf08..874389b 100644 --- a/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Private/SenseGloveDebugKismetModule.h +++ b/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Private/SenseGloveDebugKismetModule.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Public/SGDebugKismet/SGDebugCubeKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Public/SGDebugKismet/SGDebugCubeKismetLibrary.h index 257f37f..eb88110 100644 --- a/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Public/SGDebugKismet/SGDebugCubeKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Public/SGDebugKismet/SGDebugCubeKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Public/SGDebugKismet/SGDebugGizmoKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Public/SGDebugKismet/SGDebugGizmoKismetLibrary.h index 37ccde7..6cc0204 100644 --- a/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Public/SGDebugKismet/SGDebugGizmoKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Public/SGDebugKismet/SGDebugGizmoKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Public/SGDebugKismet/SGDebugVirtualHandKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Public/SGDebugKismet/SGDebugVirtualHandKismetLibrary.h index 6407270..b41484b 100644 --- a/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Public/SGDebugKismet/SGDebugVirtualHandKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveDebugKismet/Public/SGDebugKismet/SGDebugVirtualHandKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveDebugKismet/SenseGloveDebugKismet.Build.cs b/Plugins/SenseGlove/Source/SenseGloveDebugKismet/SenseGloveDebugKismet.Build.cs index 90c630e..59e924e 100644 --- a/Plugins/SenseGlove/Source/SenseGloveDebugKismet/SenseGloveDebugKismet.Build.cs +++ b/Plugins/SenseGlove/Source/SenseGloveDebugKismet/SenseGloveDebugKismet.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SGEditor/SGAssetUtils.cpp b/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SGEditor/SGAssetUtils.cpp index 5a2649b..ba11e62 100644 --- a/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SGEditor/SGAssetUtils.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SGEditor/SGAssetUtils.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SGEditor/SGContentBrowserExtension.cpp b/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SGEditor/SGContentBrowserExtension.cpp index 9a2601d..b7b87d3 100644 --- a/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SGEditor/SGContentBrowserExtension.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SGEditor/SGContentBrowserExtension.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SGEditor/SGPluginStyle.cpp b/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SGEditor/SGPluginStyle.cpp index 8a401b4..c928915 100644 --- a/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SGEditor/SGPluginStyle.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SGEditor/SGPluginStyle.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SGEditor/SGSocketsEditor.cpp b/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SGEditor/SGSocketsEditor.cpp index b70901a..3c8c7f6 100644 --- a/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SGEditor/SGSocketsEditor.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SGEditor/SGSocketsEditor.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SGEditor/SGSocketsEditorCommands.cpp b/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SGEditor/SGSocketsEditorCommands.cpp index 50ef9f3..9377254 100644 --- a/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SGEditor/SGSocketsEditorCommands.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SGEditor/SGSocketsEditorCommands.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SenseGloveEditor.cpp b/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SenseGloveEditor.cpp index 3fabad0..3567501 100644 --- a/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SenseGloveEditor.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SenseGloveEditor.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SenseGloveEditor.h b/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SenseGloveEditor.h index a30ce66..65941e7 100644 --- a/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SenseGloveEditor.h +++ b/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SenseGloveEditor.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SenseGloveEditorModule.cpp b/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SenseGloveEditorModule.cpp index e40f349..eff24e8 100644 --- a/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SenseGloveEditorModule.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SenseGloveEditorModule.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SenseGloveEditorModule.h b/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SenseGloveEditorModule.h index 12704c1..fea994d 100644 --- a/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SenseGloveEditorModule.h +++ b/Plugins/SenseGlove/Source/SenseGloveEditor/Private/SenseGloveEditorModule.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveEditor/Public/SGEditor/SGAssetUtils.h b/Plugins/SenseGlove/Source/SenseGloveEditor/Public/SGEditor/SGAssetUtils.h index eabd91a..5be49f3 100644 --- a/Plugins/SenseGlove/Source/SenseGloveEditor/Public/SGEditor/SGAssetUtils.h +++ b/Plugins/SenseGlove/Source/SenseGloveEditor/Public/SGEditor/SGAssetUtils.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveEditor/Public/SGEditor/SGContentBrowserExtension.h b/Plugins/SenseGlove/Source/SenseGloveEditor/Public/SGEditor/SGContentBrowserExtension.h index 24e73b8..3ef562f 100644 --- a/Plugins/SenseGlove/Source/SenseGloveEditor/Public/SGEditor/SGContentBrowserExtension.h +++ b/Plugins/SenseGlove/Source/SenseGloveEditor/Public/SGEditor/SGContentBrowserExtension.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveEditor/Public/SGEditor/SGPluginStyle.h b/Plugins/SenseGlove/Source/SenseGloveEditor/Public/SGEditor/SGPluginStyle.h index 51bf54d..822a511 100644 --- a/Plugins/SenseGlove/Source/SenseGloveEditor/Public/SGEditor/SGPluginStyle.h +++ b/Plugins/SenseGlove/Source/SenseGloveEditor/Public/SGEditor/SGPluginStyle.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveEditor/Public/SGEditor/SGSocketsEditor.h b/Plugins/SenseGlove/Source/SenseGloveEditor/Public/SGEditor/SGSocketsEditor.h index 5bc6f45..29f106c 100644 --- a/Plugins/SenseGlove/Source/SenseGloveEditor/Public/SGEditor/SGSocketsEditor.h +++ b/Plugins/SenseGlove/Source/SenseGloveEditor/Public/SGEditor/SGSocketsEditor.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveEditor/Public/SGEditor/SGSocketsEditorCommands.h b/Plugins/SenseGlove/Source/SenseGloveEditor/Public/SGEditor/SGSocketsEditorCommands.h index 4a76b13..5bcf341 100644 --- a/Plugins/SenseGlove/Source/SenseGloveEditor/Public/SGEditor/SGSocketsEditorCommands.h +++ b/Plugins/SenseGlove/Source/SenseGloveEditor/Public/SGEditor/SGSocketsEditorCommands.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveEditor/SenseGloveEditor.Build.cs b/Plugins/SenseGlove/Source/SenseGloveEditor/SenseGloveEditor.Build.cs index 2d41542..48b0f98 100644 --- a/Plugins/SenseGlove/Source/SenseGloveEditor/SenseGloveEditor.Build.cs +++ b/Plugins/SenseGlove/Source/SenseGloveEditor/SenseGloveEditor.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGBackendType.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGBackendType.cpp index 304334f..15f4897 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGBackendType.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGBackendType.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGConnectionType.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGConnectionType.cpp index 3dfe7f8..99b0108 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGConnectionType.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGConnectionType.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGDeviceType.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGDeviceType.cpp index 9314e86..d3aafd4 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGDeviceType.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGDeviceType.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGFinger.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGFinger.cpp index eee22ba..a9c0140 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGFinger.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGFinger.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGFingerMovement.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGFingerMovement.cpp index 3d50932..6c225f2 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGFingerMovement.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGFingerMovement.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGFingerSolver.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGFingerSolver.cpp index 413988a..f79fa55 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGFingerSolver.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGFingerSolver.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGHapticChannelType.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGHapticChannelType.cpp index 4fe08ef..f4051b3 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGHapticChannelType.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGHapticChannelType.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGHapticGloveCalibrationState.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGHapticGloveCalibrationState.cpp index 891e781..aafd1c5 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGHapticGloveCalibrationState.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGHapticGloveCalibrationState.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGHapticLocation.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGHapticLocation.cpp index 7e4fb37..6184da1 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGHapticLocation.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGHapticLocation.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGListFormat.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGListFormat.cpp index 07a371c..8d9b439 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGListFormat.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGListFormat.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGNormalizationState.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGNormalizationState.cpp index 169453f..459817f 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGNormalizationState.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGNormalizationState.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGNova2SensorLocation.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGNova2SensorLocation.cpp index 961fccc..8c5d316 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGNova2SensorLocation.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGNova2SensorLocation.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGNova2VibroMotor.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGNova2VibroMotor.cpp index 051786f..4130274 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGNova2VibroMotor.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGNova2VibroMotor.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGNovaCVar.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGNovaCVar.cpp index c2d8e58..b50c524 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGNovaCVar.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGNovaCVar.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGNovaData.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGNovaData.cpp index 0422214..b76d780 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGNovaData.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGNovaData.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGNovaSensorLocation.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGNovaSensorLocation.cpp index 8e50951..c41af00 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGNovaSensorLocation.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGNovaSensorLocation.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGNovaVibroMotor.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGNovaVibroMotor.cpp index da0c4b0..9883dac 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGNovaVibroMotor.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGNovaVibroMotor.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGPositionalTrackingHardware.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGPositionalTrackingHardware.cpp index b8101b7..ebac104 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGPositionalTrackingHardware.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGPositionalTrackingHardware.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGSenseGloveCVar.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGSenseGloveCVar.cpp index 3f63c27..cfc4261 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGSenseGloveCVar.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGSenseGloveCVar.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGSenseGloveSVar.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGSenseGloveSVar.cpp index 07317b7..9792f30 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGSenseGloveSVar.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGSenseGloveSVar.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGSenseGloveThumperCommand.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGSenseGloveThumperCommand.cpp index 6a3ef4c..080a628 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGSenseGloveThumperCommand.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGSenseGloveThumperCommand.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGSensorFormat.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGSensorFormat.cpp index 4381093..4f2fd38 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGSensorFormat.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGSensorFormat.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGThumbMovement.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGThumbMovement.cpp index fdfe075..7f64469 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGThumbMovement.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGThumbMovement.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGThumbSolver.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGThumbSolver.cpp index 1340e6d..25d4987 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGThumbSolver.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGThumbSolver.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGWaveformType.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGWaveformType.cpp index 3b7fc30..9325807 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGWaveformType.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_ESGWaveformType.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FQuat.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FQuat.cpp index f2d879f..a6e0226 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FQuat.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FQuat.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGBasicHandModelImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGBasicHandModelImpl.cpp index e3bbc8e..6d86d0c 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGBasicHandModelImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGBasicHandModelImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGBetaDeviceImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGBetaDeviceImpl.cpp index 9dc59a0..c29c5af 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGBetaDeviceImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGBetaDeviceImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGCustomWaveformImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGCustomWaveformImpl.cpp index 2211482..42a3a63 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGCustomWaveformImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGCustomWaveformImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGDeviceImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGDeviceImpl.cpp index 669411d..5159faf 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGDeviceImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGDeviceImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGDeviceModelImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGDeviceModelImpl.cpp index 2169049..f831923 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGDeviceModelImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGDeviceModelImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGHandInterpolatorImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGHandInterpolatorImpl.cpp index b52cf82..57c5242 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGHandInterpolatorImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGHandInterpolatorImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGHandPoseImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGHandPoseImpl.cpp index dbbcdbe..fe929bb 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGHandPoseImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGHandPoseImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGHapticChannelInfoImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGHapticChannelInfoImpl.cpp index b684f21..ee8c8fa 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGHapticChannelInfoImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGHapticChannelInfoImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGHapticGloveImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGHapticGloveImpl.cpp index 303626e..aa19b69 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGHapticGloveImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGHapticGloveImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGInterpolationSetImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGInterpolationSetImpl.cpp index 157ae39..8fe4fac 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGInterpolationSetImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGInterpolationSetImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGNova2GloveImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGNova2GloveImpl.cpp index b7037af..c1ec039 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGNova2GloveImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGNova2GloveImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGNova2GloveSensorDataImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGNova2GloveSensorDataImpl.cpp index c9e256b..920294e 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGNova2GloveSensorDataImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGNova2GloveSensorDataImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGNovaGloveImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGNovaGloveImpl.cpp index ef5238d..d0fe0b2 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGNovaGloveImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGNovaGloveImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGNovaGloveInfoImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGNovaGloveInfoImpl.cpp index 0ae19bd..32e6781 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGNovaGloveInfoImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGNovaGloveInfoImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGNovaGloveSensorDataImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGNovaGloveSensorDataImpl.cpp index 85f74a1..1982d7b 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGNovaGloveSensorDataImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGNovaGloveSensorDataImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGSenseGloveImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGSenseGloveImpl.cpp index ced08ce..90b9bd7 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGSenseGloveImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGSenseGloveImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGSenseGloveInfoImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGSenseGloveInfoImpl.cpp index 81bda54..037a28f 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGSenseGloveInfoImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGSenseGloveInfoImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGSenseGlovePoseImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGSenseGlovePoseImpl.cpp index 31caa36..ca63271 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGSenseGlovePoseImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGSenseGlovePoseImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGSenseGloveSensorDataImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGSenseGloveSensorDataImpl.cpp index 86d51c9..355cebd 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGSenseGloveSensorDataImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGSenseGloveSensorDataImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGSenseGloveSensorNormalizerImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGSenseGloveSensorNormalizerImpl.cpp index fce2c93..5b37175 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGSenseGloveSensorNormalizerImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGSenseGloveSensorNormalizerImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGSensorNormalizationImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGSensorNormalizationImpl.cpp index 3c9e634..5c0d754 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGSensorNormalizationImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGSensorNormalizationImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGThresholdCommandImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGThresholdCommandImpl.cpp index 5ea5f55..a62d956 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGThresholdCommandImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FSGThresholdCommandImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FString.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FString.cpp index f3f5a3c..078a6a7 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FString.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FString.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FVector.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FVector.cpp index 1da2f5f..ffb11f4 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FVector.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_FVector.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_JNIEnv_Ptr.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_JNIEnv_Ptr.cpp index 633ba3d..68c4fa3 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_JNIEnv_Ptr.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_JNIEnv_Ptr.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_FQuat.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_FQuat.cpp index eac58f2..005d155 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_FQuat.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_FQuat.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_FSGNova2GloveImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_FSGNova2GloveImpl.cpp index 0e2276a..151b70c 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_FSGNova2GloveImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_FSGNova2GloveImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_FSGNovaGloveImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_FSGNovaGloveImpl.cpp index efee7e9..b9b45fd 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_FSGNovaGloveImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_FSGNovaGloveImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_FSGSenseGloveImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_FSGSenseGloveImpl.cpp index 07e33bb..0f471af 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_FSGSenseGloveImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_FSGSenseGloveImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_FString.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_FString.cpp index 84262c2..f51cd8e 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_FString.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_FString.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_FVector.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_FVector.cpp index 7efa4a6..6efc5da 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_FVector.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_FVector.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_TArray_FQuat.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_TArray_FQuat.cpp index c5d211c..3233d41 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_TArray_FQuat.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_TArray_FQuat.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_TArray_FSGInterpolationSetImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_TArray_FSGInterpolationSetImpl.cpp index 94b6956..215fa9e 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_TArray_FSGInterpolationSetImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_TArray_FSGInterpolationSetImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_TArray_FVector.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_TArray_FVector.cpp index 9d5f9e6..240a47d 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_TArray_FVector.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_TArray_FVector.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_TArray_bool.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_TArray_bool.cpp index 34210d0..0cbeea1 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_TArray_bool.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_TArray_bool.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_TArray_float.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_TArray_float.cpp index fac98da..5a6a550 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_TArray_float.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_TArray_float.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_TSharedRef_FSGDeviceImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_TSharedRef_FSGDeviceImpl.cpp index 036721e..100f3ef 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_TSharedRef_FSGDeviceImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_TSharedRef_FSGDeviceImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_TSharedRef_FSGHapticGloveImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_TSharedRef_FSGHapticGloveImpl.cpp index 433e6d0..fdebc77 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_TSharedRef_FSGHapticGloveImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_TSharedRef_FSGHapticGloveImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_bool.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_bool.cpp index 2e449e9..20c485c 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_bool.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_bool.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_float.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_float.cpp index 700522e..9043e81 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_float.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_float.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_int32.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_int32.cpp index 08db712..3dd6ec0 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_int32.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TArray_int32.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TSharedPtr_FSGBetaDeviceImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TSharedPtr_FSGBetaDeviceImpl.cpp index 3d46000..71c8847 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TSharedPtr_FSGBetaDeviceImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TSharedPtr_FSGBetaDeviceImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TSharedPtr_FSGDeviceImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TSharedPtr_FSGDeviceImpl.cpp index 6793d81..bc6b22b 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TSharedPtr_FSGDeviceImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TSharedPtr_FSGDeviceImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TSharedPtr_FSGHapticGloveImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TSharedPtr_FSGHapticGloveImpl.cpp index b2b6843..aadebdf 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TSharedPtr_FSGHapticGloveImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TSharedPtr_FSGHapticGloveImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TSharedPtr_FSGNova2GloveImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TSharedPtr_FSGNova2GloveImpl.cpp index 4816879..be18b07 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TSharedPtr_FSGNova2GloveImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TSharedPtr_FSGNova2GloveImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TSharedPtr_FSGNovaGloveImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TSharedPtr_FSGNovaGloveImpl.cpp index e35d9fe..1ec8010 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TSharedPtr_FSGNovaGloveImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TSharedPtr_FSGNovaGloveImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TSharedPtr_FSGSenseGloveImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TSharedPtr_FSGSenseGloveImpl.cpp index 86fd26b..541edaf 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TSharedPtr_FSGSenseGloveImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TSharedPtr_FSGSenseGloveImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TSubclassOf_FSGDeviceImpl.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TSubclassOf_FSGDeviceImpl.cpp index e2f403b..e045fcb 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TSubclassOf_FSGDeviceImpl.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_TSubclassOf_FSGDeviceImpl.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_jclass.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_jclass.cpp index 754b21b..0e59dbe 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_jclass.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_jclass.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_jmethodID.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_jmethodID.cpp index 3831154..dba5629 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_jmethodID.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SGInterop/SGIC_jmethodID.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SenseGloveInterop.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SenseGloveInterop.cpp index 2eeaadd..c863a2d 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SenseGloveInterop.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SenseGloveInterop.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SenseGloveInterop.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SenseGloveInterop.h index ab121d0..334f908 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SenseGloveInterop.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SenseGloveInterop.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SenseGloveInteropModule.cpp b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SenseGloveInteropModule.cpp index 307ac59..190176b 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SenseGloveInteropModule.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SenseGloveInteropModule.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SenseGloveInteropModule.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SenseGloveInteropModule.h index b5980e5..9edc876 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SenseGloveInteropModule.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Private/SenseGloveInteropModule.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGBackendType.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGBackendType.h index 5ea387e..3032315 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGBackendType.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGBackendType.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGConnectionType.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGConnectionType.h index 9dc9da6..f91c734 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGConnectionType.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGConnectionType.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGDeviceType.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGDeviceType.h index db0d133..b20f59a 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGDeviceType.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGDeviceType.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGFinger.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGFinger.h index f69f484..c97a5eb 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGFinger.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGFinger.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGFingerMovement.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGFingerMovement.h index 0c9d448..82a2bf5 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGFingerMovement.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGFingerMovement.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGFingerSolver.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGFingerSolver.h index e6bd867..4c0e827 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGFingerSolver.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGFingerSolver.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGHapticChannelType.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGHapticChannelType.h index d5ab71a..1abd817 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGHapticChannelType.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGHapticChannelType.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGHapticGloveCalibrationState.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGHapticGloveCalibrationState.h index de86799..1e1591d 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGHapticGloveCalibrationState.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGHapticGloveCalibrationState.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGHapticLocation.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGHapticLocation.h index c7d5c41..f9bfb72 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGHapticLocation.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGHapticLocation.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGListFormat.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGListFormat.h index c352a1e..b0e8c96 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGListFormat.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGListFormat.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGNormalizationState.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGNormalizationState.h index ed56955..a94c3a3 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGNormalizationState.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGNormalizationState.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGNova2SensorLocation.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGNova2SensorLocation.h index 19f8786..69143a9 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGNova2SensorLocation.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGNova2SensorLocation.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGNova2VibroMotor.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGNova2VibroMotor.h index a6e3935..fb77e48 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGNova2VibroMotor.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGNova2VibroMotor.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGNovaCVar.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGNovaCVar.h index 9e5ad9e..b4591f9 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGNovaCVar.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGNovaCVar.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGNovaData.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGNovaData.h index e4aee2c..8b356b1 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGNovaData.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGNovaData.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGNovaSensorLocation.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGNovaSensorLocation.h index 6500f5d..f26ce11 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGNovaSensorLocation.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGNovaSensorLocation.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGNovaVibroMotor.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGNovaVibroMotor.h index 010febb..6792eef 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGNovaVibroMotor.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGNovaVibroMotor.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGPositionalTrackingHardware.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGPositionalTrackingHardware.h index ef546d2..40c8be3 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGPositionalTrackingHardware.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGPositionalTrackingHardware.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGSenseGloveCVar.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGSenseGloveCVar.h index 653c8ec..5cd9f13 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGSenseGloveCVar.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGSenseGloveCVar.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGSenseGloveSVar.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGSenseGloveSVar.h index ad47ad7..9592891 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGSenseGloveSVar.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGSenseGloveSVar.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGSenseGloveThumperCommand.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGSenseGloveThumperCommand.h index 6c8d15a..7e718d4 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGSenseGloveThumperCommand.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGSenseGloveThumperCommand.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGSensorFormat.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGSensorFormat.h index 3058c82..1756769 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGSensorFormat.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGSensorFormat.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGThumbMovement.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGThumbMovement.h index e1a752d..751a7e3 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGThumbMovement.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGThumbMovement.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGThumbSolver.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGThumbSolver.h index c127a6e..197f69f 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGThumbSolver.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGThumbSolver.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGWaveformType.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGWaveformType.h index 47cb958..a838b3d 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGWaveformType.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_ESGWaveformType.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FQuat.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FQuat.h index 11ac5a9..406428e 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FQuat.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FQuat.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGBasicHandModelImpl.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGBasicHandModelImpl.h index 72c2241..72ee0a5 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGBasicHandModelImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGBasicHandModelImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGBetaDeviceImpl.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGBetaDeviceImpl.h index edc558a..0b1f6a1 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGBetaDeviceImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGBetaDeviceImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGCustomWaveformImpl.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGCustomWaveformImpl.h index dec1c89..057bdfa 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGCustomWaveformImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGCustomWaveformImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGDeviceImpl.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGDeviceImpl.h index 630f9f3..191028e 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGDeviceImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGDeviceImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGDeviceModelImpl.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGDeviceModelImpl.h index 9287279..5d20b6d 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGDeviceModelImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGDeviceModelImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGHandInterpolatorImpl.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGHandInterpolatorImpl.h index 39bc9d7..0fcc026 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGHandInterpolatorImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGHandInterpolatorImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGHandPoseImpl.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGHandPoseImpl.h index b22ca79..0274566 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGHandPoseImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGHandPoseImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGHapticChannelInfoImpl.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGHapticChannelInfoImpl.h index 94a724f..fbe4269 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGHapticChannelInfoImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGHapticChannelInfoImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGHapticGloveImpl.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGHapticGloveImpl.h index a8f282b..a5f8214 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGHapticGloveImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGHapticGloveImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGInterpolationSetImpl.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGInterpolationSetImpl.h index 844295e..157df32 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGInterpolationSetImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGInterpolationSetImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGNova2GloveImpl.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGNova2GloveImpl.h index ad797e2..7831bce 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGNova2GloveImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGNova2GloveImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGNova2GloveSensorDataImpl.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGNova2GloveSensorDataImpl.h index 8b7ef3c..d18a03c 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGNova2GloveSensorDataImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGNova2GloveSensorDataImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGNovaGloveImpl.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGNovaGloveImpl.h index 8d46951..4d7cf19 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGNovaGloveImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGNovaGloveImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGNovaGloveInfoImpl.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGNovaGloveInfoImpl.h index a81b6fa..b772958 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGNovaGloveInfoImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGNovaGloveInfoImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGNovaGloveSensorDataImpl.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGNovaGloveSensorDataImpl.h index 7b4bc43..55d7d70 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGNovaGloveSensorDataImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGNovaGloveSensorDataImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGSenseGloveImpl.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGSenseGloveImpl.h index d1ae7b5..47bca67 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGSenseGloveImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGSenseGloveImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGSenseGloveInfoImpl.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGSenseGloveInfoImpl.h index 4f65bc4..ad54a2a 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGSenseGloveInfoImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGSenseGloveInfoImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGSenseGlovePoseImpl.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGSenseGlovePoseImpl.h index 62c3df8..5a72595 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGSenseGlovePoseImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGSenseGlovePoseImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGSenseGloveSensorDataImpl.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGSenseGloveSensorDataImpl.h index 5270b28..e222a72 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGSenseGloveSensorDataImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGSenseGloveSensorDataImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGSenseGloveSensorNormalizerImpl.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGSenseGloveSensorNormalizerImpl.h index c407a46..2bea270 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGSenseGloveSensorNormalizerImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGSenseGloveSensorNormalizerImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGSensorNormalizationImpl.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGSensorNormalizationImpl.h index 7f3d5b5..0883e93 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGSensorNormalizationImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGSensorNormalizationImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGThresholdCommandImpl.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGThresholdCommandImpl.h index 2cb20ee..bd10903 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGThresholdCommandImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FSGThresholdCommandImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FString.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FString.h index a9cda2b..914807d 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FString.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FString.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FVector.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FVector.h index f1f3538..fa10733 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FVector.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_FVector.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_JNIEnv_Ptr.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_JNIEnv_Ptr.h index c27a592..549a096 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_JNIEnv_Ptr.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_JNIEnv_Ptr.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_FQuat.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_FQuat.h index b9adac1..f0caff2 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_FQuat.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_FQuat.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_FSGNova2GloveImpl.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_FSGNova2GloveImpl.h index 9a83dd5..14c5c73 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_FSGNova2GloveImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_FSGNova2GloveImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_FSGNovaGloveImpl.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_FSGNovaGloveImpl.h index 15cd804..64fb01f 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_FSGNovaGloveImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_FSGNovaGloveImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_FSGSenseGloveImpl.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_FSGSenseGloveImpl.h index 5fb647e..68a9bb1 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_FSGSenseGloveImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_FSGSenseGloveImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_FString.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_FString.h index 67b4ef5..2f46643 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_FString.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_FString.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_FVector.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_FVector.h index 6fcf53e..d7d8788 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_FVector.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_FVector.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_TArray_FQuat.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_TArray_FQuat.h index 10d9365..34c38b2 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_TArray_FQuat.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_TArray_FQuat.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_TArray_FSGInterpolationSetImpl.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_TArray_FSGInterpolationSetImpl.h index 53e21e3..03c9ce0 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_TArray_FSGInterpolationSetImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_TArray_FSGInterpolationSetImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_TArray_FVector.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_TArray_FVector.h index 9c99c1e..dff3fd3 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_TArray_FVector.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_TArray_FVector.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_TArray_bool.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_TArray_bool.h index 929e072..8f33757 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_TArray_bool.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_TArray_bool.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_TArray_float.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_TArray_float.h index 2cca213..7b1148d 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_TArray_float.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_TArray_float.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_TSharedRef_FSGDeviceImpl.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_TSharedRef_FSGDeviceImpl.h index 8ecd557..af26776 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_TSharedRef_FSGDeviceImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_TSharedRef_FSGDeviceImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_TSharedRef_FSGHapticGloveImpl.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_TSharedRef_FSGHapticGloveImpl.h index 301dd66..89876e9 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_TSharedRef_FSGHapticGloveImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_TSharedRef_FSGHapticGloveImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_bool.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_bool.h index 21ac712..c780ed9 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_bool.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_bool.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_float.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_float.h index 590b375..0718dd2 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_float.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_float.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_int32.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_int32.h index c30aed1..3b1fc88 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_int32.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TArray_int32.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TSharedPtr_FSGBetaDeviceImpl.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TSharedPtr_FSGBetaDeviceImpl.h index f058f40..ff939cc 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TSharedPtr_FSGBetaDeviceImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TSharedPtr_FSGBetaDeviceImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TSharedPtr_FSGDeviceImpl.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TSharedPtr_FSGDeviceImpl.h index 699a987..4368725 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TSharedPtr_FSGDeviceImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TSharedPtr_FSGDeviceImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TSharedPtr_FSGHapticGloveImpl.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TSharedPtr_FSGHapticGloveImpl.h index e1d78a8..5b8c8a3 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TSharedPtr_FSGHapticGloveImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TSharedPtr_FSGHapticGloveImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TSharedPtr_FSGNova2GloveImpl.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TSharedPtr_FSGNova2GloveImpl.h index 182f0a3..9d963a3 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TSharedPtr_FSGNova2GloveImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TSharedPtr_FSGNova2GloveImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TSharedPtr_FSGNovaGloveImpl.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TSharedPtr_FSGNovaGloveImpl.h index f516fa7..9a6d264 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TSharedPtr_FSGNovaGloveImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TSharedPtr_FSGNovaGloveImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TSharedPtr_FSGSenseGloveImpl.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TSharedPtr_FSGSenseGloveImpl.h index 15f7860..c9bac5e 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TSharedPtr_FSGSenseGloveImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TSharedPtr_FSGSenseGloveImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TSubclassOf_FSGDeviceImpl.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TSubclassOf_FSGDeviceImpl.h index f23b318..d75ce93 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TSubclassOf_FSGDeviceImpl.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_TSubclassOf_FSGDeviceImpl.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_jclass.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_jclass.h index 3a2e62a..ca87e40 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_jclass.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_jclass.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_jmethodID.h b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_jmethodID.h index ffff80d..93b025d 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_jmethodID.h +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/Public/SGInterop/SGIC_jmethodID.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveInterop/SenseGloveInterop.Build.cs b/Plugins/SenseGlove/Source/SenseGloveInterop/SenseGloveInterop.Build.cs index 69499e0..20c0a76 100644 --- a/Plugins/SenseGlove/Source/SenseGloveInterop/SenseGloveInterop.Build.cs +++ b/Plugins/SenseGlove/Source/SenseGloveInterop/SenseGloveInterop.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGBlueprintFunctionLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGBlueprintFunctionLibrary.cpp index d07e807..526cda8 100644 --- a/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGBlueprintFunctionLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGBlueprintFunctionLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGGameUserSettingsKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGGameUserSettingsKismetLibrary.cpp index 5ae9838..07d034c 100644 --- a/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGGameUserSettingsKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGGameUserSettingsKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGGrabComponentKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGGrabComponentKismetLibrary.cpp index 3788442..c976a0a 100644 --- a/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGGrabComponentKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGGrabComponentKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGHandTrackerComponentKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGHandTrackerComponentKismetLibrary.cpp new file mode 100644 index 0000000..b2d800e --- /dev/null +++ b/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGHandTrackerComponentKismetLibrary.cpp @@ -0,0 +1,74 @@ +/** + * @file + * + * @author Mamadou Babaei + * + * @section LICENSE + * + * (The MIT License) + * + * Copyright (c) 2020 - 2026 SenseGlove + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * @section DESCRIPTION + * + * + */ + + +#include "SGKismet/SGHandTrackerComponentKismetLibrary.h" + +#include "SenseGlove/Components/SGHandTrackerComponent.h" + +bool UHandTrackerComponentKismetLibrary::IsLeft( + const USGHandTrackerComponent* HandTrackerComponent) +{ + return HandTrackerComponent->IsLeft(); +} + +bool UHandTrackerComponentKismetLibrary::IsRight( + const USGHandTrackerComponent* HandTrackerComponent) +{ + return HandTrackerComponent->IsRight(); +} + +void UHandTrackerComponentKismetLibrary::SetRight( + USGHandTrackerComponent* HandTrackerComponent, const bool bInRight) +{ + HandTrackerComponent->SetRight(bInRight); +} + +bool UHandTrackerComponentKismetLibrary::IsVisualized( + const USGHandTrackerComponent* HandTrackerComponent) +{ + return HandTrackerComponent->IsVisualized(); +} + +void UHandTrackerComponentKismetLibrary::SetVisualize( + USGHandTrackerComponent* HandTrackerComponent, const bool bInVisualize) +{ + HandTrackerComponent->SetVisualize(bInVisualize); +} + +const FXRHandTrackingState& UHandTrackerComponentKismetLibrary::GetHandTrackingState( + USGHandTrackerComponent* HandTrackerComponent) +{ + return HandTrackerComponent->GetHandTrackingState(); +} diff --git a/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGHapticsComponentKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGHapticsComponentKismetLibrary.cpp new file mode 100644 index 0000000..8838028 --- /dev/null +++ b/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGHapticsComponentKismetLibrary.cpp @@ -0,0 +1,155 @@ +/** + * @file + * + * @author Mamadou Babaei + * + * @section LICENSE + * + * (The MIT License) + * + * Copyright (c) 2020 - 2026 SenseGlove + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * @section DESCRIPTION + * + * + */ + + +#include "SGKismet/SGHapticsComponentKismetLibrary.h" + +#include "SenseGlove/Components/SGHapticsComponent.h" + +bool UHapticsComponentKismetLibrary::IsLeft( + const USGHapticsComponent* HapticsComponent) +{ + return HapticsComponent->IsLeft(); +} + +bool UHapticsComponentKismetLibrary::IsRight( + const USGHapticsComponent* HapticsComponent) +{ + return HapticsComponent->IsRight(); +} + +void UHapticsComponentKismetLibrary::SetRight( + USGHapticsComponent* HapticsComponent, const bool bInRight) +{ + HapticsComponent->SetRight(bInRight); +} + +bool UHapticsComponentKismetLibrary::AutoStopsAllHaptics( + const USGHapticsComponent* HapticsComponent) +{ + return HapticsComponent->AutoStopsAllHaptics(); +} + +void UHapticsComponentKismetLibrary::SetAutoStopAllHaptics( + USGHapticsComponent* HapticsComponent, const bool bInAutoStopAllHaptics) +{ + HapticsComponent->SetAutoStopAllHaptics(bInAutoStopAllHaptics); +} + +void UHapticsComponentKismetLibrary::StopHaptics( + USGHapticsComponent* HapticsComponent) +{ + HapticsComponent->StopHaptics(); +} + +void UHapticsComponentKismetLibrary::StopVibrations( + USGHapticsComponent* HapticsComponent) +{ + HapticsComponent->StopVibrations(); +} + +bool UHapticsComponentKismetLibrary::SendHaptics( + USGHapticsComponent* HapticsComponent) +{ + return HapticsComponent->SendHaptics(); +} + +bool UHapticsComponentKismetLibrary::SupportsCustomWaveform( + const USGHapticsComponent* HapticsComponent, + const ESGHapticLocation AtLocation) +{ + return HapticsComponent->SupportsCustomWaveform(AtLocation); +} + +bool UHapticsComponentKismetLibrary::SendCustomWaveform_OutWaveform_Location( + USGHapticsComponent* HapticsComponent, + USGCustomWaveform* OutWaveform, const ESGHapticLocation Location) +{ + return HapticsComponent->SendCustomWaveform(OutWaveform, Location); +} + +bool UHapticsComponentKismetLibrary::SendCustomWaveform_Amplitude_Duration_Location( + USGHapticsComponent* HapticsComponent, + const float Amplitude, const float Duration, const ESGHapticLocation Location) +{ + return HapticsComponent->SendCustomWaveform(Amplitude, Duration, Location); +} + +bool UHapticsComponentKismetLibrary::SendCustomWaveform_Amplitude_Duration_Frequency_Location( + USGHapticsComponent* HapticsComponent, + const float Amplitude, const float Duration, const float Frequency, const ESGHapticLocation Location) +{ + return HapticsComponent->SendCustomWaveform(Amplitude, Duration, Frequency, Location); +} + +bool UHapticsComponentKismetLibrary::QueueForceFeedbackLevels( + USGHapticsComponent* HapticsComponent, + const TArray& Levels01) +{ + return HapticsComponent->QueueForceFeedbackLevels(Levels01); +} + +bool UHapticsComponentKismetLibrary::QueueForceFeedbackLevel( + USGHapticsComponent* HapticsComponent, + const int32 Finger, const float Level01) +{ + return HapticsComponent->QueueForceFeedbackLevel(Finger, Level01); +} + +bool UHapticsComponentKismetLibrary::QueueVibroLevels( + USGHapticsComponent* HapticsComponent, + const TArray& Levels01) +{ + return HapticsComponent->QueueVibroLevels(Levels01); +} + +bool UHapticsComponentKismetLibrary::QueueVibroLevel( + USGHapticsComponent* HapticsComponent, + const ESGHapticLocation Location, const float Level01) +{ + return HapticsComponent->QueueVibroLevel(Location, Level01); +} + +bool UHapticsComponentKismetLibrary::SupportsWristSqueeze( + const USGHapticsComponent* HapticsComponent) +{ + return HapticsComponent->SupportsWristSqueeze(); +} + +bool UHapticsComponentKismetLibrary::QueueWristSqueeze( + USGHapticsComponent* HapticsComponent, + const float SqueezeLevel01, const bool bSendImmediate) +{ + return HapticsComponent->QueueWristSqueeze(SqueezeLevel01, bSendImmediate); +} \ No newline at end of file diff --git a/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGPawnKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGPawnKismetLibrary.cpp index b95a664..a0aa540 100644 --- a/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGPawnKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGPawnKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGTouchComponentKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGTouchComponentKismetLibrary.cpp index 3d1dab9..9b178db 100644 --- a/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGTouchComponentKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGTouchComponentKismetLibrary.cpp @@ -8,7 +8,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -88,5 +88,4 @@ float UTouchComponentKismetLibrary::GetVibrotactileFrequency(const USGTouchCompo void UTouchComponentKismetLibrary::SetVibrotactileFrequency(USGTouchComponent* TouchComponent, const float Frequency) { TouchComponent->SetVibrotactileFrequency(Frequency); -} - +} \ No newline at end of file diff --git a/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGVirtualHandComponentKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGVirtualHandComponentKismetLibrary.cpp index c5c8341..347f8e6 100644 --- a/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGVirtualHandComponentKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGVirtualHandComponentKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGWristTrackerComponentKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGWristTrackerComponentKismetLibrary.cpp index cf563a3..7e4e9f5 100644 --- a/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGWristTrackerComponentKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SGKismet/SGWristTrackerComponentKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SenseGloveKismet.cpp b/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SenseGloveKismet.cpp index 0bfb93c..679a9c6 100644 --- a/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SenseGloveKismet.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SenseGloveKismet.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SenseGloveKismet.h b/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SenseGloveKismet.h index ab121d0..334f908 100644 --- a/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SenseGloveKismet.h +++ b/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SenseGloveKismet.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SenseGloveKismetModule.cpp b/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SenseGloveKismetModule.cpp index 650f05d..865dee9 100644 --- a/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SenseGloveKismetModule.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SenseGloveKismetModule.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SenseGloveKismetModule.h b/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SenseGloveKismetModule.h index 0a71840..24e2b81 100644 --- a/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SenseGloveKismetModule.h +++ b/Plugins/SenseGlove/Source/SenseGloveKismet/Private/SenseGloveKismetModule.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGBlueprintFunctionLibrary.h b/Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGBlueprintFunctionLibrary.h index 5d957a5..b6fc034 100644 --- a/Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGBlueprintFunctionLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGBlueprintFunctionLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGGameUserSettingsKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGGameUserSettingsKismetLibrary.h index 94f4860..7293b76 100644 --- a/Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGGameUserSettingsKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGGameUserSettingsKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGGrabComponentKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGGrabComponentKismetLibrary.h index 6f879c3..5262baf 100644 --- a/Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGGrabComponentKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGGrabComponentKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -40,6 +40,7 @@ #include "SGGrabComponentKismetLibrary.generated.h" class AActor; + class USGGrabComponent; UCLASS(meta=(ScriptName = "SenseGloveGrabComponentKismetLibrary")) diff --git a/Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGHandTrackerComponentKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGHandTrackerComponentKismetLibrary.h new file mode 100644 index 0000000..4664166 --- /dev/null +++ b/Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGHandTrackerComponentKismetLibrary.h @@ -0,0 +1,70 @@ +/** +* @file + * + * @author Mamadou Babaei + * + * @section LICENSE + * + * (The MIT License) + * + * Copyright (c) 2020 - 2026 SenseGlove + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * @section DESCRIPTION + * + * + */ + + +#pragma once + +#include "SGKismet/SGBlueprintFunctionLibrary.h" + +#include "SGHandTrackerComponentKismetLibrary.generated.h" + +class AActor; + +class USGHandTrackerComponent; + +UCLASS(meta=(ScriptName = "SenseGloveHandTrackerComponentKismetLibrary")) +class SENSEGLOVEKISMET_API UHandTrackerComponentKismetLibrary final : public USGBlueprintFunctionLibrary +{ + GENERATED_BODY() + +public: + UFUNCTION(BlueprintPure, Category="SenseGlove | Components | Hand Tracker Component") + static bool IsLeft(const USGHandTrackerComponent* HandTrackerComponent); + + UFUNCTION(BlueprintPure, Category="SenseGlove | Components | Hand Tracker Component") + static bool IsRight(const USGHandTrackerComponent* HandTrackerComponent); + + UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Hand Tracker Component") + static void SetRight(UPARAM(ref) USGHandTrackerComponent* HandTrackerComponent, bool bInRight); + + UFUNCTION(BlueprintPure, Category="SenseGlove | Components | Hand Tracker Component") + static bool IsVisualized(const USGHandTrackerComponent* HandTrackerComponent); + + UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Hand Tracker Component") + static void SetVisualize(UPARAM(ref) USGHandTrackerComponent* HandTrackerComponent, bool bInVisualize); + + UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Hand Tracker Component") + static const FXRHandTrackingState& GetHandTrackingState( + UPARAM(ref) USGHandTrackerComponent* HandTrackerComponent); +}; \ No newline at end of file diff --git a/Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGHapticsComponentKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGHapticsComponentKismetLibrary.h new file mode 100644 index 0000000..4fccbcc --- /dev/null +++ b/Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGHapticsComponentKismetLibrary.h @@ -0,0 +1,202 @@ +/** + * @file + * + * @author Mamadou Babaei + * + * @section LICENSE + * + * (The MIT License) + * + * Copyright (c) 2020 - 2026 SenseGlove + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * @section DESCRIPTION + * + * + */ + + +#pragma once + +#include "SGKismet/SGBlueprintFunctionLibrary.h" + +#include "SGHapticsComponentKismetLibrary.generated.h" + +class AActor; + +class USGCustomWaveform; +class USGHapticsComponent; + +UCLASS(meta=(ScriptName = "SenseGloveHapticsComponentKismetLibrary")) +class SENSEGLOVEKISMET_API UHapticsComponentKismetLibrary final : public USGBlueprintFunctionLibrary +{ + GENERATED_BODY() + +public: + UFUNCTION(BlueprintPure, Category="SenseGlove | Components | Haptics Component") + static bool IsLeft(const USGHapticsComponent* HapticsComponent); + + UFUNCTION(BlueprintPure, Category="SenseGlove | Components | Haptics Component") + static bool IsRight(const USGHapticsComponent* HapticsComponent); + + UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Haptics Component") + static void SetRight(UPARAM(ref) USGHapticsComponent* HapticsComponent, bool bInRight); + + UFUNCTION(BlueprintPure, Category="SenseGlove | Components | Haptics Component") + static bool AutoStopsAllHaptics(const USGHapticsComponent* HapticsComponent); + + UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Haptics Component") + static void SetAutoStopAllHaptics(UPARAM(ref) USGHapticsComponent* HapticsComponent, bool bInAutoStopAllHaptics); + + /** + * Stops all Haptic effects if any are currently playing. Useful at the end of simulations or when restarting the + * level. + */ + UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Haptics Component") + static void StopHaptics(UPARAM(ref) USGHapticsComponent* HapticsComponent); + + /** + * Stops only vibrations. + */ + UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Haptics Component") + static void StopVibrations(UPARAM(ref) USGHapticsComponent* HapticsComponent); + + /** + * Take all active commands in the device queue, compile them into one and send them to the device. + * + * @return Returns true if the message was successfully sent to SenseCom. + */ + UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Haptics Component") + static bool SendHaptics(UPARAM(ref) USGHapticsComponent* HapticsComponent); + + /** + * Returns true if the haptic glove supports vibration feedback at the specified location. + * + * @param AtLocation + */ + UFUNCTION(BlueprintPure, Category="SenseGlove | Components | Haptics Component") + static bool SupportsCustomWaveform(const USGHapticsComponent* HapticsComponent, + ESGHapticLocation AtLocation); + + /** + * Sends a custom waveform to the location specified, provided that the glove has a motor there, and can support + * custom waveforms. + * + * @param OutWaveform + * @param Location + */ + UFUNCTION(BlueprintCallable, DisplayName="Send Custom Waveform", + Category="SenseGlove | Components | Haptics Component") + static bool SendCustomWaveform_OutWaveform_Location( + UPARAM(ref) USGHapticsComponent* HapticsComponent, + USGCustomWaveform* OutWaveform, ESGHapticLocation Location); + + /** + * Sends a custom waveform to the location specified, provided that the glove has a motor there, and can support + * custom waveforms. + * + * @param Amplitude + * @param Duration + * @param Location + */ + UFUNCTION(BlueprintCallable, DisplayName="Send Custom Waveform", + Category="SenseGlove | Components | Haptics Component") + static bool SendCustomWaveform_Amplitude_Duration_Location( + UPARAM(ref) USGHapticsComponent* HapticsComponent, + float Amplitude, float Duration, ESGHapticLocation Location); + + /** + * Sends a custom waveform to the location specified, provided that the glove has a motor there, and can support + * custom waveforms. + * + * @param Amplitude + * @param Duration + * @param Frequency + * @param Location + */ + UFUNCTION(BlueprintCallable, DisplayName="Send Custom Waveform", + Category="SenseGlove | Components | Haptics Component") + static bool SendCustomWaveform_Amplitude_Duration_Frequency_Location( + UPARAM(ref) USGHapticsComponent* HapticsComponent, + float Amplitude, float Duration, float Frequency, ESGHapticLocation Location); + + /** + * Queue a list of force-feedback levels, between 0.0f and 1.0f. Your list should be sorted from thumb to pinky. + * + * @param Levels01 Array containing the Force-Feedback levels, from 0.0f (no FFB) to 1.0f. A value < 0.0f will be + * ignored. + * + * @remarks Devices that 'only' have on/off FFB will treat any value > 0.0 as 1.0. + */ + UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Haptics Component") + static bool QueueForceFeedbackLevels(UPARAM(ref) USGHapticsComponent* HapticsComponent, + const TArray& Levels01); + + /** + * Set the Force-Feedback value of a particular finger to a specific level + * + * @param Level01 Value will be clamped between [0...1], where 0.0f means no Force-Feedback, and 1.0 means full + * force-feedback. + * @param Finger The finger to which to send the command. + */ + UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Haptics Component") + static bool QueueForceFeedbackLevel(UPARAM(ref) USGHapticsComponent* HapticsComponent, + int32 Finger, float Level01); + + /** + * Queue a list of vibration levels, between 0.0 and 1.0. Your list should be sorted from thumb to pinky. + * + * @param Levels01 Array containing the vibration levels, from 0.0 (no vibration) to 1.0. A value < 0.0f will be + * ignored. + * + * @remarks Devices that 'only' have on/off FFB will treat any value > 0.0 as 1.0. + */ + UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Haptics Component") + static bool QueueVibroLevels(UPARAM(ref) USGHapticsComponent* HapticsComponent, + const TArray& Levels01); + + /** + * Queue a command to set the (continuous) vibration level at a specific location to a set amplitude. + * + * @param Location + * @param Level01 Value will be clamped between [0...1], where 0.0f means no vibration, and 1.0 means full + * vibration. + */ + UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Haptics Component") + static bool QueueVibroLevel(UPARAM(ref) USGHapticsComponent* HapticsComponent, + ESGHapticLocation Location, float Level01); + + /** + * Returns true if the chosen glove supports active contact feedback on the Wrist. + */ + UFUNCTION(BlueprintPure, Category="SenseGlove | Components | Haptics Component") + static bool SupportsWristSqueeze(const USGHapticsComponent* HapticsComponent); + + /** + * Queue a command to set the amount of squeeze level (a.k.a. squeeze-feedback) to the desired level + * (0 = no squeeze, 1 = full squeeze) on the wrist, and optionally send it right away. + * + * @param SqueezeLevel01 + * @param bSendImmediate + */ + UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Haptics Component") + static bool QueueWristSqueeze(UPARAM(ref) USGHapticsComponent* HapticsComponent, + float SqueezeLevel01, bool bSendImmediate); +}; \ No newline at end of file diff --git a/Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGPawnKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGPawnKismetLibrary.h index 14c5560..ce6eb51 100644 --- a/Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGPawnKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGPawnKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGTouchComponentKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGTouchComponentKismetLibrary.h index 6bb8bfb..b378b55 100644 --- a/Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGTouchComponentKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGTouchComponentKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -40,6 +40,7 @@ #include "SGTouchComponentKismetLibrary.generated.h" class AActor; + class USGTouchComponent; UCLASS(meta=(ScriptName = "SenseGloveTouchComponentKismetLibrary")) diff --git a/Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGVirtualHandComponentKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGVirtualHandComponentKismetLibrary.h index 2a11c35..a744824 100644 --- a/Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGVirtualHandComponentKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGVirtualHandComponentKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGWristTrackerComponentKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGWristTrackerComponentKismetLibrary.h index e1b4f5e..85757dd 100644 --- a/Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGWristTrackerComponentKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveKismet/Public/SGKismet/SGWristTrackerComponentKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveKismet/SenseGloveKismet.Build.cs b/Plugins/SenseGlove/Source/SenseGloveKismet/SenseGloveKismet.Build.cs index 079fb70..8703df9 100644 --- a/Plugins/SenseGlove/Source/SenseGloveKismet/SenseGloveKismet.Build.cs +++ b/Plugins/SenseGlove/Source/SenseGloveKismet/SenseGloveKismet.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveLog/Private/SGLog/SGLog.cpp b/Plugins/SenseGlove/Source/SenseGloveLog/Private/SGLog/SGLog.cpp index 25f27f8..26f7209 100644 --- a/Plugins/SenseGlove/Source/SenseGloveLog/Private/SGLog/SGLog.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveLog/Private/SGLog/SGLog.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveLog/Private/SenseGloveLog.cpp b/Plugins/SenseGlove/Source/SenseGloveLog/Private/SenseGloveLog.cpp index b92a659..8264987 100644 --- a/Plugins/SenseGlove/Source/SenseGloveLog/Private/SenseGloveLog.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveLog/Private/SenseGloveLog.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveLog/Private/SenseGloveLog.h b/Plugins/SenseGlove/Source/SenseGloveLog/Private/SenseGloveLog.h index ab121d0..334f908 100644 --- a/Plugins/SenseGlove/Source/SenseGloveLog/Private/SenseGloveLog.h +++ b/Plugins/SenseGlove/Source/SenseGloveLog/Private/SenseGloveLog.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveLog/Private/SenseGloveLogModule.cpp b/Plugins/SenseGlove/Source/SenseGloveLog/Private/SenseGloveLogModule.cpp index 0314003..b800ff1 100644 --- a/Plugins/SenseGlove/Source/SenseGloveLog/Private/SenseGloveLogModule.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveLog/Private/SenseGloveLogModule.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveLog/Private/SenseGloveLogModule.h b/Plugins/SenseGlove/Source/SenseGloveLog/Private/SenseGloveLogModule.h index fea2d92..33732db 100644 --- a/Plugins/SenseGlove/Source/SenseGloveLog/Private/SenseGloveLogModule.h +++ b/Plugins/SenseGlove/Source/SenseGloveLog/Private/SenseGloveLogModule.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveLog/Public/SGLog/SGLog.h b/Plugins/SenseGlove/Source/SenseGloveLog/Public/SGLog/SGLog.h index cd3c89a..59acade 100644 --- a/Plugins/SenseGlove/Source/SenseGloveLog/Public/SGLog/SGLog.h +++ b/Plugins/SenseGlove/Source/SenseGloveLog/Public/SGLog/SGLog.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveLog/SenseGloveLog.Build.cs b/Plugins/SenseGlove/Source/SenseGloveLog/SenseGloveLog.Build.cs index 4fa7e99..c68e2ed 100644 --- a/Plugins/SenseGlove/Source/SenseGloveLog/SenseGloveLog.Build.cs +++ b/Plugins/SenseGlove/Source/SenseGloveLog/SenseGloveLog.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGDebugCubeSettings.cpp b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGDebugCubeSettings.cpp index e41f178..8d9087c 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGDebugCubeSettings.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGDebugCubeSettings.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGDebugGizmoSettings.cpp b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGDebugGizmoSettings.cpp index 455c729..cc866ec 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGDebugGizmoSettings.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGDebugGizmoSettings.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGGameUserSettingsSettings.cpp b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGGameUserSettingsSettings.cpp index 30fdaa9..e7cf556 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGGameUserSettingsSettings.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGGameUserSettingsSettings.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGGloveTrackingSettings.cpp b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGGloveTrackingSettings.cpp index b002ad5..4a25cdc 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGGloveTrackingSettings.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGGloveTrackingSettings.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGHMDTrackingSettings.cpp b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGHMDTrackingSettings.cpp index e52a236..1e8a284 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGHMDTrackingSettings.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGHMDTrackingSettings.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGHandTrackingSettings.cpp b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGHandTrackingSettings.cpp index 910f811..025337b 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGHandTrackingSettings.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGHandTrackingSettings.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGHardwareBenchmarkingSettings.cpp b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGHardwareBenchmarkingSettings.cpp index 784a7ae..9fd2d19 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGHardwareBenchmarkingSettings.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGHardwareBenchmarkingSettings.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGInitializationSettings.cpp b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGInitializationSettings.cpp index a544486..b1f7066 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGInitializationSettings.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGInitializationSettings.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGSettings.cpp b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGSettings.cpp index 8626eb5..eadc5a1 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGSettings.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGSettings.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGTrackingSettings.cpp b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGTrackingSettings.cpp index d91db35..b233dc1 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGTrackingSettings.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGTrackingSettings.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandAnimationSettings.cpp b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandAnimationSettings.cpp index 0aef199..24ed4e5 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandAnimationSettings.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandAnimationSettings.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandDebuggingSettings.cpp b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandDebuggingSettings.cpp index d9a1e3a..38cc298 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandDebuggingSettings.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandDebuggingSettings.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandGrabSettings.cpp b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandGrabSettings.cpp index 26b42f5..5646bc7 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandGrabSettings.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandGrabSettings.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandHapticsSettings.cpp b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandHapticsSettings.cpp index e71ea79..f577baa 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandHapticsSettings.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandHapticsSettings.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandMeshSettings.cpp b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandMeshSettings.cpp index 5a68af9..a0b773b 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandMeshSettings.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandMeshSettings.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandPhalangesLengthSettings.cpp b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandPhalangesLengthSettings.cpp index e6996f2..5fbe0a3 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandPhalangesLengthSettings.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandPhalangesLengthSettings.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandSettings.cpp b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandSettings.cpp index e121679..07e0bc8 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandSettings.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandSettings.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandSettingsOverrides.cpp b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandSettingsOverrides.cpp index 72e0524..7a3bb52 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandSettingsOverrides.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandSettingsOverrides.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandTouchSettings.cpp b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandTouchSettings.cpp index c6c5722..e928d43 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandTouchSettings.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGVirtualHandTouchSettings.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGWristTrackingDebuggingSettings.cpp b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGWristTrackingDebuggingSettings.cpp index c55197b..8bd81d1 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGWristTrackingDebuggingSettings.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGWristTrackingDebuggingSettings.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGWristTrackingDetailsCustomization.cpp b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGWristTrackingDetailsCustomization.cpp index 104627f..de896ca 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGWristTrackingDetailsCustomization.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGWristTrackingDetailsCustomization.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGWristTrackingDetailsCustomization.h b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGWristTrackingDetailsCustomization.h index 979836b..179baae 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGWristTrackingDetailsCustomization.h +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGWristTrackingDetailsCustomization.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGWristTrackingSettings.cpp b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGWristTrackingSettings.cpp index 4130d45..678a645 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGWristTrackingSettings.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGWristTrackingSettings.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGWristTrackingSettingsOverrides.cpp b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGWristTrackingSettingsOverrides.cpp index b4a584e..89d1a8a 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGWristTrackingSettingsOverrides.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SGSettings/SGWristTrackingSettingsOverrides.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SenseGloveSettings.cpp b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SenseGloveSettings.cpp index b2fccd9..20accbc 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SenseGloveSettings.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SenseGloveSettings.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SenseGloveSettings.h b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SenseGloveSettings.h index a30ce66..65941e7 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SenseGloveSettings.h +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SenseGloveSettings.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SenseGloveSettingsModule.cpp b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SenseGloveSettingsModule.cpp index 73efa0d..32eb3f8 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SenseGloveSettingsModule.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SenseGloveSettingsModule.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SenseGloveSettingsModule.h b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SenseGloveSettingsModule.h index 07afceb..d17fbfe 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SenseGloveSettingsModule.h +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Private/SenseGloveSettingsModule.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGDebugCubeSettings.h b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGDebugCubeSettings.h index b563291..061caf4 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGDebugCubeSettings.h +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGDebugCubeSettings.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGDebugGizmoSettings.h b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGDebugGizmoSettings.h index f5bb741..de34c98 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGDebugGizmoSettings.h +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGDebugGizmoSettings.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGGameUserSettingsSettings.h b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGGameUserSettingsSettings.h index 9116e73..964c54b 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGGameUserSettingsSettings.h +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGGameUserSettingsSettings.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGGloveTrackingSettings.h b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGGloveTrackingSettings.h index 4edea9a..c50fc72 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGGloveTrackingSettings.h +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGGloveTrackingSettings.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGHMDTrackingSettings.h b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGHMDTrackingSettings.h index bb207f1..dbc93fc 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGHMDTrackingSettings.h +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGHMDTrackingSettings.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGHandTrackingSettings.h b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGHandTrackingSettings.h index a242fe4..a44ea4a 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGHandTrackingSettings.h +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGHandTrackingSettings.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGHardwareBenchmarkingSettings.h b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGHardwareBenchmarkingSettings.h index 73091cb..60adbd8 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGHardwareBenchmarkingSettings.h +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGHardwareBenchmarkingSettings.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGInitializationSettings.h b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGInitializationSettings.h index 791e7f6..aafeef6 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGInitializationSettings.h +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGInitializationSettings.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGSettings.h b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGSettings.h index acce0ef..0ad4aca 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGSettings.h +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGSettings.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGTrackingSettings.h b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGTrackingSettings.h index 6cd3093..9786c4a 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGTrackingSettings.h +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGTrackingSettings.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandAnimationSettings.h b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandAnimationSettings.h index 7730ea1..9450361 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandAnimationSettings.h +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandAnimationSettings.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandDebuggingSettings.h b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandDebuggingSettings.h index b616ea4..7553c37 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandDebuggingSettings.h +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandDebuggingSettings.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandGrabSettings.h b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandGrabSettings.h index aac8297..f0dcd9e 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandGrabSettings.h +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandGrabSettings.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandHapticsSettings.h b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandHapticsSettings.h index 1cc5d8e..e8ee1fe 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandHapticsSettings.h +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandHapticsSettings.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandMeshSettings.h b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandMeshSettings.h index 85951a6..8b5cbf4 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandMeshSettings.h +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandMeshSettings.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -65,11 +65,11 @@ struct SENSEGLOVESETTINGS_API FSGVirtualHandMeshSettings public: /** * The virtual hand model for the left hand is to be used by the SenseGlove Tracking module to generate all the 26 - * joint data present in the FXRMotionControllerData. The main reason the Tracking module requires a virtual hand + * joint data present in the FXRHandTrackingState. The main reason the Tracking module requires a virtual hand * mesh as a reference is the SenseGlove Hand Pose format only provides 15 joints. So, the remaining joint data for - * FXRMotionControllerData are calculated from a virtual hand mesh compatible with the Epic rig and also the values + * FXRHandTrackingState are calculated from a virtual hand mesh compatible with the Epic rig and also the values * specified by DistalPhalangesLengthSettings. Furthermore, when calculating the existing joints data, their - * current locations and rotations are taken into account in calculating the resulting FXRMotionControllerData. + * current locations and rotations are taken into account in calculating the resulting FXRHandTrackingState. * * By default, no virtual hand mesh is set. * @@ -84,11 +84,11 @@ public: /** * The virtual hand model for the right hand is to be used by the SenseGlove Tracking module to generate all the 26 - * joint data present in the FXRMotionControllerData. The main reason the Tracking module requires a virtual hand + * joint data present in the FXRHandTrackingState. The main reason the Tracking module requires a virtual hand * mesh as a reference is the SenseGlove Hand Pose format only provides 15 joints. So, the remaining joint data for - * FXRMotionControllerData are calculated from a virtual hand mesh compatible with the Epic rig and also the values + * FXRHandTrackingState are calculated from a virtual hand mesh compatible with the Epic rig and also the values * specified by DistalPhalangesLengthSettings. Furthermore, when calculating the existing joints data, their - * current locations and rotations are taken into account in calculating the resulting FXRMotionControllerData. + * current locations and rotations are taken into account in calculating the resulting FXRHandTrackingState. * * By default, no virtual hand mesh is set. * @@ -104,7 +104,7 @@ public: /** * The length of distal phalanges that cannot be retrieved from any virtual hand mesh compliant with the Epic * standard rig. Also, the SenseGlove Hand Pose format does not provide these. This is used by SenseGlove Tracking - * module to calculate an FXRMotionControllerData the all 26 joints. The values you specify here depend on the + * module to calculate an FXRHandTrackingState the all 26 joints. The values you specify here depend on the * shape of the virtual hand mesh and the defaults are approximated for the virtual hand model shipped with the * Unreal Engine VRTemplate. */ @@ -176,4 +176,4 @@ public: const TSoftObjectPtr& InRightHandReferenceMesh, const FSGVirtualHandPhalangesLengthSettings& InDistalPhalangesLengthSettings, const FRotator& InRootBoneRotationCorrection); -}; \ No newline at end of file +}; diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandPhalangesLengthSettings.h b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandPhalangesLengthSettings.h index 16fb9db..ab190f1 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandPhalangesLengthSettings.h +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandPhalangesLengthSettings.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandSettings.h b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandSettings.h index 8713320..e7887e3 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandSettings.h +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandSettings.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandSettingsOverrides.h b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandSettingsOverrides.h index 27d659c..4e8b738 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandSettingsOverrides.h +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandSettingsOverrides.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandTouchSettings.h b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandTouchSettings.h index 3a4937e..10a4e5a 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandTouchSettings.h +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGVirtualHandTouchSettings.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGWristTrackingDebuggingSettings.h b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGWristTrackingDebuggingSettings.h index 01ce183..2ee5264 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGWristTrackingDebuggingSettings.h +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGWristTrackingDebuggingSettings.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGWristTrackingSettings.h b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGWristTrackingSettings.h index 7de8e41..8ff56b9 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGWristTrackingSettings.h +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGWristTrackingSettings.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGWristTrackingSettingsOverrides.h b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGWristTrackingSettingsOverrides.h index 3dfdc59..2126ae5 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGWristTrackingSettingsOverrides.h +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/Public/SGSettings/SGWristTrackingSettingsOverrides.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettings/SenseGloveSettings.Build.cs b/Plugins/SenseGlove/Source/SenseGloveSettings/SenseGloveSettings.Build.cs index c7df418..d85f575 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettings/SenseGloveSettings.Build.cs +++ b/Plugins/SenseGlove/Source/SenseGloveSettings/SenseGloveSettings.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettingsKismet/Private/SGSettingsKismet/SGSettingsKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveSettingsKismet/Private/SGSettingsKismet/SGSettingsKismetLibrary.cpp index 1c49d05..12ae943 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettingsKismet/Private/SGSettingsKismet/SGSettingsKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveSettingsKismet/Private/SGSettingsKismet/SGSettingsKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettingsKismet/Private/SenseGloveSettingsKismet.cpp b/Plugins/SenseGlove/Source/SenseGloveSettingsKismet/Private/SenseGloveSettingsKismet.cpp index bbfa01c..992c939 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettingsKismet/Private/SenseGloveSettingsKismet.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveSettingsKismet/Private/SenseGloveSettingsKismet.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettingsKismet/Private/SenseGloveSettingsKismet.h b/Plugins/SenseGlove/Source/SenseGloveSettingsKismet/Private/SenseGloveSettingsKismet.h index a30ce66..65941e7 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettingsKismet/Private/SenseGloveSettingsKismet.h +++ b/Plugins/SenseGlove/Source/SenseGloveSettingsKismet/Private/SenseGloveSettingsKismet.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettingsKismet/Private/SenseGloveSettingsKismetModule.cpp b/Plugins/SenseGlove/Source/SenseGloveSettingsKismet/Private/SenseGloveSettingsKismetModule.cpp index 6265a93..d0e6e1b 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettingsKismet/Private/SenseGloveSettingsKismetModule.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveSettingsKismet/Private/SenseGloveSettingsKismetModule.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettingsKismet/Private/SenseGloveSettingsKismetModule.h b/Plugins/SenseGlove/Source/SenseGloveSettingsKismet/Private/SenseGloveSettingsKismetModule.h index 2ca5c22..e36370d 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettingsKismet/Private/SenseGloveSettingsKismetModule.h +++ b/Plugins/SenseGlove/Source/SenseGloveSettingsKismet/Private/SenseGloveSettingsKismetModule.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettingsKismet/Public/SGSettingsKismet/SGSettingsKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveSettingsKismet/Public/SGSettingsKismet/SGSettingsKismetLibrary.h index 6ef0bf8..0b48e07 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettingsKismet/Public/SGSettingsKismet/SGSettingsKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveSettingsKismet/Public/SGSettingsKismet/SGSettingsKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveSettingsKismet/SenseGloveSettingsKismet.Build.cs b/Plugins/SenseGlove/Source/SenseGloveSettingsKismet/SenseGloveSettingsKismet.Build.cs index 0f0b438..f622b34 100644 --- a/Plugins/SenseGlove/Source/SenseGloveSettingsKismet/SenseGloveSettingsKismet.Build.cs +++ b/Plugins/SenseGlove/Source/SenseGloveSettingsKismet/SenseGloveSettingsKismet.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTracking/Private/SGTracking/SGGloveTracker.cpp b/Plugins/SenseGlove/Source/SenseGloveTracking/Private/SGTracking/SGGloveTracker.cpp index b142dab..5b68d0b 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTracking/Private/SGTracking/SGGloveTracker.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveTracking/Private/SGTracking/SGGloveTracker.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTracking/Private/SGTracking/SGHMDTracker.cpp b/Plugins/SenseGlove/Source/SenseGloveTracking/Private/SGTracking/SGHMDTracker.cpp index f64d217..9947a5e 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTracking/Private/SGTracking/SGHMDTracker.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveTracking/Private/SGTracking/SGHMDTracker.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -37,18 +37,14 @@ #include "Runtime/Launch/Resources/Version.h" -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 #include "Async/Async.h" #include "Async/Future.h" #include "Async/TaskGraphInterfaces.h" -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ #include "Engine/Engine.h" #include "IHeadMountedDisplay.h" #include "IXRTrackingSystem.h" -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 #include "Misc/Optional.h" #include "Misc/Timespan.h" -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ #include "SGSettings/SGSettings.h" @@ -72,12 +68,6 @@ struct FSGHMDTracker::FStaticImpl void FSGHMDTracker::FStaticImpl::GetHMDMonitorInfo( IHeadMountedDisplay* Device, IHeadMountedDisplay::MonitorInfo& OutMonitorInfo) { -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION <= 4 - Device->GetHMDMonitorInfo(OutMonitorInfo); - return; -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION <= 4 */ - -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 TPromise> Promise; const TFuture> Future{Promise.GetFuture()}; @@ -100,7 +90,6 @@ void FSGHMDTracker::FStaticImpl::GetHMDMonitorInfo( OutMonitorInfo = Result.GetValue(); } } -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ } FName FSGHMDTracker::GetDeviceName() diff --git a/Plugins/SenseGlove/Source/SenseGloveTracking/Private/SGTracking/SGXRHandState.cpp b/Plugins/SenseGlove/Source/SenseGloveTracking/Private/SGTracking/SGXRHandState.cpp index 9d491ed..30d78f5 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTracking/Private/SGTracking/SGXRHandState.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveTracking/Private/SGTracking/SGXRHandState.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTracking/Private/SGTracking/SGXRTracker.cpp b/Plugins/SenseGlove/Source/SenseGloveTracking/Private/SGTracking/SGXRTracker.cpp index 968287c..e41ba49 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTracking/Private/SGTracking/SGXRTracker.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveTracking/Private/SGTracking/SGXRTracker.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -35,26 +35,20 @@ #include "SGTracking/SGXRTracker.h" -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 #include "Async/Async.h" #include "Async/Future.h" #include "Async/TaskGraphInterfaces.h" -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ #include "Containers/Array.h" #include "Containers/Map.h" #include "Engine/Engine.h" #include "Engine/SkeletalMesh.h" #include "Engine/World.h" #include "GameFramework/WorldSettings.h" -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 4 #include "IOpenXRHMD.h" -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 4 */ #include "IOpenXRHMDModule.h" #include "IXRTrackingSystem.h" -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 #include "Misc/Optional.h" #include "Misc/Timespan.h" -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ #include "OpenXRCore.h" #include "SGCore/SGHapticGlove.h" @@ -1013,237 +1007,6 @@ FTransform FSGXRTracker::FImpl::GetMeshFingerStartBoneRefTransform( return Transform; } -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION < 7 - -bool FSGXRTracker::GetMotionControllerData( - UObject* WorldContextObject, - const EControllerHand Hand, - FXRMotionControllerData& OutMotionControllerData) -{ - OutMotionControllerData.DeviceName = NAME_None; - OutMotionControllerData.ApplicationInstanceID = FApp::GetInstanceId(); - OutMotionControllerData.DeviceVisualType = EXRVisualType::Controller; - OutMotionControllerData.TrackingStatus = ETrackingStatus::NotTracked; - OutMotionControllerData.HandIndex = Hand; - OutMotionControllerData.bValid = false; - - if (!IsValid(WorldContextObject)) - { - return false; - } - - IXRTrackingSystem* XRTrackingSystem{GEngine ? GEngine->XRSystem.Get() : nullptr}; - if (!XRTrackingSystem) - { - return false; - } - -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 4 - IOpenXRHMD* OpenXRHMD{XRTrackingSystem->GetIOpenXRHMD()}; -#else /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 4 */ - FOpenXRHMD* OpenXRHMD{static_cast(GEngine->XRSystem.Get())}; -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 4 */ - if (!OpenXRHMD) - { - return false; - } - - TArray Devices; - const int32 HandIndex = static_cast(Hand); - const bool bGotDevices = - XRTrackingSystem->EnumerateTrackedDevices(Devices, EXRTrackedDeviceType::Controller); - if (bGotDevices && Devices.IsValidIndex(HandIndex)) - { - const XrSession Session{OpenXRHMD->GetSession()}; - if (Session) - { - XrInteractionProfileState Profile = {XR_TYPE_INTERACTION_PROFILE_STATE}; - const XrPath TopLevelUserPath{OpenXRHMD->GetTrackedDevicePath(Devices[HandIndex])}; - const XrResult CurrentInteractionProfile{ - xrGetCurrentInteractionProfile(Session, TopLevelUserPath, &Profile) - }; - if (XR_SUCCEEDED(CurrentInteractionProfile) && Profile.interactionProfile != XR_NULL_PATH) - { - OutMotionControllerData.DeviceName = FOpenXRPath(Profile.interactionProfile); - } - } - } - - static const FName HandTrackerName{"OpenXRHandTracking"}; - TArray HandTrackers = IModularFeatures::Get().GetModularFeatureImplementations( - IHandTracker::GetModularFeatureName()); - IHandTracker* HandTracker{nullptr}; - for (IHandTracker* HandTrackerIterator: HandTrackers) - { - if (!HandTrackerIterator) - { - continue; - } - - const FName DeviceTypeName{HandTrackerIterator->GetHandTrackerDeviceTypeName()}; - if (DeviceTypeName != HandTrackerName) - { - continue; - } - - FSGXRTracker* SGXRTracker{static_cast(HandTrackerIterator)}; - if (!SGXRTracker) - { - continue; - } - - HandTracker = SGXRTracker; - break; - } - - if (Hand == EControllerHand::Left || Hand == EControllerHand::Right) - { - static const FName MotionControllerName("OpenXR"); - TArray MotionControllers{ - IModularFeatures::Get().GetModularFeatureImplementations( - IMotionController::GetModularFeatureName()) - }; - IMotionController* MotionController{nullptr}; - for (IMotionController* MotionControllerIterator: MotionControllers) - { - if (!MotionControllerIterator) - { - continue; - } - - const FName DeviceTypeName{MotionControllerIterator->GetMotionControllerDeviceTypeName()}; - if (DeviceTypeName != MotionControllerName) - { - continue; - } - - MotionController = MotionControllerIterator; - break; - } - - const float WorldToMeters = XRTrackingSystem->GetWorldToMetersScale(); - if (MotionController) - { - const FTransform TrackingToWorld{XRTrackingSystem->GetTrackingToWorldTransform()}; - - { - const FName AimSource{Hand == EControllerHand::Left ? FName{TEXT("LeftAim")} : FName{TEXT("RightAim")}}; - FRotator AimSourceRotation; - FVector AimSourcePosition; - const bool bGotAimOrientationAndPosition = - MotionController->GetControllerOrientationAndPosition( - 0, AimSource, AimSourceRotation, AimSourcePosition, WorldToMeters); - if (bGotAimOrientationAndPosition) - { - OutMotionControllerData.AimPosition = TrackingToWorld.TransformPosition(AimSourcePosition); - OutMotionControllerData.AimRotation = - TrackingToWorld.TransformRotation(AimSourceRotation.Quaternion()); - } - OutMotionControllerData.bValid |= bGotAimOrientationAndPosition; - } - - const FName GripSource{Hand == EControllerHand::Left ? FName{TEXT("LeftGrip")} : FName{TEXT("RightGrip")}}; - { - FRotator GripRotation; - FVector GripPosition; - const bool bGotGripSourceOrientationAndPosition = - MotionController->GetControllerOrientationAndPosition( - 0, GripSource, GripRotation, GripPosition, WorldToMeters); - if (bGotGripSourceOrientationAndPosition) - { - OutMotionControllerData.GripPosition = TrackingToWorld.TransformPosition(GripPosition); - OutMotionControllerData.GripRotation = - TrackingToWorld.TransformRotation(GripRotation.Quaternion()); - } - OutMotionControllerData.bValid |= bGotGripSourceOrientationAndPosition; - } - - { - const FName PalmSource{ - Hand == EControllerHand::Left ? FName{TEXT("LeftPalm")} : FName{TEXT("RightPalm")} - }; - FRotator PalmRotation; - FVector PalmPosition; - const bool bGotPalmOrientationAndPosition = MotionController->GetControllerOrientationAndPosition( - 0, PalmSource, PalmRotation, PalmPosition, WorldToMeters); - if (bGotPalmOrientationAndPosition) - { - OutMotionControllerData.GripPosition = TrackingToWorld.TransformPosition(PalmPosition); - OutMotionControllerData.GripRotation = - TrackingToWorld.TransformRotation(PalmRotation.Quaternion()); - } - OutMotionControllerData.bValid |= bGotPalmOrientationAndPosition; - } - - OutMotionControllerData.TrackingStatus = MotionController->GetControllerTrackingStatus(0, GripSource); - } - - const bool bHandTrackingStateValid = HandTracker && HandTracker->IsHandTrackingStateValid(); - if (bHandTrackingStateValid) - { - OutMotionControllerData.DeviceVisualType = EXRVisualType::Hand; - -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 - bool bTracked = false; -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ - - OutMotionControllerData.bValid = HandTracker->GetAllKeypointStates( - Hand, - OutMotionControllerData.HandKeyPositions, - OutMotionControllerData.HandKeyRotations, - OutMotionControllerData.HandKeyRadii -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 - , bTracked -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ - ); - -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 - // Unused! - (void) bTracked; -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ - -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 - // TODO - // Begin backward compatibility with the deprecated function, remove this block along with the deprecated - // GetAllKeypointStates (though it should be time to remove this entire function as well)! - if (!OutMotionControllerData.bValid) - { - PRAGMA_DISABLE_DEPRECATION_WARNINGS - OutMotionControllerData.bValid = HandTracker->GetAllKeypointStates( - Hand, - OutMotionControllerData.HandKeyPositions, - OutMotionControllerData.HandKeyRotations, - OutMotionControllerData.HandKeyRadii); - PRAGMA_ENABLE_DEPRECATION_WARNINGS - } - // End backward compability. -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ - - if (!ensureAlwaysMsgf( - !OutMotionControllerData.bValid - || (OutMotionControllerData.HandKeyPositions.Num() == EHandKeypointCount - && OutMotionControllerData.HandKeyRotations.Num() == EHandKeypointCount - && OutMotionControllerData.HandKeyRadii.Num() == EHandKeypointCount), - TEXT("Corrupted OutMotionControllerData!"))) - { - OutMotionControllerData.bValid = false; - return false; - } - } - } - - if (OutMotionControllerData.bValid) - { - OutMotionControllerData.TrackingStatus = ETrackingStatus::Tracked; - } - - return OutMotionControllerData.bValid; -} - -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION < 7 */ - -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 - bool FSGXRTracker::GetMotionControllerState( UObject* WorldContextObject, const EXRSpaceType XRSpaceType, const EControllerHand Hand, const EXRControllerPoseType XRControllerPoseType, @@ -1313,11 +1076,7 @@ bool FSGXRTracker::GetMotionControllerState( return false; } -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 4 IOpenXRHMD* OpenXRHMD{XRTrackingSystem->GetIOpenXRHMD()}; -#else /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 4 */ - FOpenXRHMD* OpenXRHMD{static_cast(GEngine->XRSystem.Get())}; -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 4 */ if (!OpenXRHMD) { return false; @@ -1450,11 +1209,7 @@ bool FSGXRTracker::GetHandTrackingState( return false; } -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 4 IOpenXRHMD* OpenXRHMD{XRTrackingSystem->GetIOpenXRHMD()}; -#else /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 4 */ - FOpenXRHMD* OpenXRHMD{static_cast(GEngine->XRSystem.Get())}; -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 4 */ if (!OpenXRHMD) { return false; @@ -1486,25 +1241,6 @@ bool FSGXRTracker::GetHandTrackingState( OutHandTrackingState.HandKeyRadii, bTracked); -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION < 7 - /// TODO - // Begin backward compatibility with the deprecated function, remove this block along with the deprecated - // GetAllKeypointStates. - if (!OutHandTrackingState.bValid) - { - PRAGMA_DISABLE_DEPRECATION_WARNINGS - OutHandTrackingState.bValid = HandTracker->GetAllKeypointStates( - Hand, - OutHandTrackingState.HandKeyLocations, - OutHandTrackingState.HandKeyRotations, - OutHandTrackingState.HandKeyRadii); - PRAGMA_ENABLE_DEPRECATION_WARNINGS - bTracked = OutHandTrackingState.bValid; - // The inability to distinguish this is the reason for the deprecation. - } - // End backward compability. -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION < 7 */ - if (!ensureAlwaysMsgf( !OutHandTrackingState.bValid || (OutHandTrackingState.HandKeyLocations.Num() == EHandKeypointCount @@ -1526,8 +1262,6 @@ bool FSGXRTracker::GetHandTrackingState( return OutHandTrackingState.bValid; } -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ - FSGXRTracker::FSGXRTracker(const TSharedRef& InMessageHandler) : Pimpl(TUniquePtr(new FImpl{this}, PimplDeleter)) { @@ -1912,17 +1646,10 @@ bool FSGXRTracker::GetKeypointState( return bGotTransform; } -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 bool FSGXRTracker::GetAllKeypointStates( const EControllerHand Hand, TArray& OutPositions, TArray& OutRotations, TArray& OutRadii, bool& OutIsTracked) const -#else /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ -bool FSGXRTracker::GetAllKeypointStates( - const EControllerHand Hand, - TArray& OutPositions, TArray& OutRotations, TArray& OutRadii) const -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5*/ - { if (!IsHandTrackingStateValid()) { @@ -1948,9 +1675,7 @@ bool FSGXRTracker::GetAllKeypointStates( return false; } -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 OutIsTracked = HandState.bTracked; -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5*/ // If we ever received poses we return the last data we received, even if not currently tracking to avoid poping // back to (0.0f, 0.0f, 0.0f) and the like. @@ -2216,43 +1941,6 @@ bool FSGXRTracker::FImpl::GetControllerTransform( IMotionController::GetModularFeatureName()) }; -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION <= 4 - for (const IMotionController* MotionController: MotionControllers) - { - if (!MotionController) - { - continue; - } - - const ETrackingStatus TrackingStatus = MotionController->GetControllerTrackingStatus( - DeviceIndex, PositionalTrackingHardwareMotionSource); - if (TrackingStatus == ETrackingStatus::NotTracked) - { - continue; - } - - const FName DeviceTypeName{MotionController->GetMotionControllerDeviceTypeName()}; - if (DeviceTypeName != TargetPositionalTrackingProviderName) - { - continue; - } - - FRotator Orientation; - FVector Position; - const bool bGotTransform = MotionController->GetControllerOrientationAndPosition( - DeviceIndex, PositionalTrackingHardwareMotionSource, - Orientation, Position, WorldToMetersScale); - if (bGotTransform) - { - OutTransform = FTransform{Orientation, Position}; - bOutMotionSourceHandTracking = false; - bTracked = true; - break; - } - } -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION <= 4 */ - -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 TPromise> Promise; const TFuture> Future{Promise.GetFuture()}; @@ -2311,7 +1999,6 @@ bool FSGXRTracker::FImpl::GetControllerTransform( bTracked = true; } } -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ } if (!bTracked && bFallbackToHandTrackingIfNoGloveDetected) @@ -2828,7 +2515,7 @@ bool FSGXRTracker::FImpl::UpdateSGHandState(const bool bRight, FSGXRHandState& O const bool bGotWristTransform = GetWristTransform(bRight, WristTransform); /// NOTE - // Even if we fail to get the wrist transform, the SenseGlove data needs to make it to the FXRMotionControllerData! + // Even if we fail to get the wrist transform, the SenseGlove data needs to make it to the FXRHandTrackingState! // So, we just ignore the bGotWristTransform results! Otherwise, even if bFallbackToHandTrackingIfNoGloveDetected // is disabled it will output the hand-tracking data. (void) bGotWristTransform; @@ -2884,4 +2571,4 @@ bool FSGXRTracker::FImpl::UpdateSGHandState(const bool bRight, FSGXRHandState& O void FSGXRTracker::FImplDeleter::operator()(const FImpl* P) const { delete P; -} \ No newline at end of file +} diff --git a/Plugins/SenseGlove/Source/SenseGloveTracking/Private/SenseGloveTracking.cpp b/Plugins/SenseGlove/Source/SenseGloveTracking/Private/SenseGloveTracking.cpp index c6843fe..afa2c57 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTracking/Private/SenseGloveTracking.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveTracking/Private/SenseGloveTracking.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTracking/Private/SenseGloveTracking.h b/Plugins/SenseGlove/Source/SenseGloveTracking/Private/SenseGloveTracking.h index a30ce66..65941e7 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTracking/Private/SenseGloveTracking.h +++ b/Plugins/SenseGlove/Source/SenseGloveTracking/Private/SenseGloveTracking.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTracking/Private/SenseGloveTrackingModule.cpp b/Plugins/SenseGlove/Source/SenseGloveTracking/Private/SenseGloveTrackingModule.cpp index 1eb838c..2f9ed09 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTracking/Private/SenseGloveTrackingModule.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveTracking/Private/SenseGloveTrackingModule.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTracking/Private/SenseGloveTrackingModule.h b/Plugins/SenseGlove/Source/SenseGloveTracking/Private/SenseGloveTrackingModule.h index f07535e..bf494d2 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTracking/Private/SenseGloveTrackingModule.h +++ b/Plugins/SenseGlove/Source/SenseGloveTracking/Private/SenseGloveTrackingModule.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTracking/Public/SGTracking/SGGloveTracker.h b/Plugins/SenseGlove/Source/SenseGloveTracking/Public/SGTracking/SGGloveTracker.h index af19bfb..7be2eb3 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTracking/Public/SGTracking/SGGloveTracker.h +++ b/Plugins/SenseGlove/Source/SenseGloveTracking/Public/SGTracking/SGGloveTracker.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTracking/Public/SGTracking/SGHMDTracker.h b/Plugins/SenseGlove/Source/SenseGloveTracking/Public/SGTracking/SGHMDTracker.h index 6b8c610..fafc76e 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTracking/Public/SGTracking/SGHMDTracker.h +++ b/Plugins/SenseGlove/Source/SenseGloveTracking/Public/SGTracking/SGHMDTracker.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTracking/Public/SGTracking/SGXRHandState.h b/Plugins/SenseGlove/Source/SenseGloveTracking/Public/SGTracking/SGXRHandState.h index 6bbdfd8..3f933d4 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTracking/Public/SGTracking/SGXRHandState.h +++ b/Plugins/SenseGlove/Source/SenseGloveTracking/Public/SGTracking/SGXRHandState.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTracking/Public/SGTracking/SGXRTracker.h b/Plugins/SenseGlove/Source/SenseGloveTracking/Public/SGTracking/SGXRTracker.h index a71bfa9..e049632 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTracking/Public/SGTracking/SGXRTracker.h +++ b/Plugins/SenseGlove/Source/SenseGloveTracking/Public/SGTracking/SGXRTracker.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -55,7 +55,6 @@ class SENSEGLOVETRACKING_API FSGXRTracker final : public IOpenXRExtensionPlugin, public IHandTracker { public: -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 static bool GetMotionControllerState( UObject* WorldContextObject, EXRSpaceType XRSpaceType, EControllerHand Hand, EXRControllerPoseType XRControllerPoseType, @@ -64,7 +63,6 @@ public: UObject* WorldContextObject, EXRSpaceType XRSpaceType, EControllerHand Hand, FXRHandTrackingState& OutHandTrackingState); -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ private: struct FImpl; @@ -159,14 +157,8 @@ public: EControllerHand Hand, EHandKeypoint Keypoint, FTransform& OutTransform, float& OutRadius) const override; -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 virtual bool GetAllKeypointStates( EControllerHand Hand, TArray& OutPositions, TArray& OutRotations, TArray& OutRadii, bool& OutIsTracked) const override; -#else /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ - virtual bool GetAllKeypointStates( - EControllerHand Hand, - TArray& OutPositions, TArray& OutRotations, TArray& OutRadii) const override; -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ }; \ No newline at end of file diff --git a/Plugins/SenseGlove/Source/SenseGloveTracking/SenseGloveTracking.Build.cs b/Plugins/SenseGlove/Source/SenseGloveTracking/SenseGloveTracking.Build.cs index 871328b..a9a933e 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTracking/SenseGloveTracking.Build.cs +++ b/Plugins/SenseGlove/Source/SenseGloveTracking/SenseGloveTracking.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -61,23 +61,6 @@ public class SenseGloveTracking : ModuleRules } ); -#if ! UE_5_4_OR_LATER - string OpenXRHMDPrivateIncludeDir = Path.GetFullPath(Target.RelativeEnginePath); - OpenXRHMDPrivateIncludeDir = Path.Combine(OpenXRHMDPrivateIncludeDir, "Plugins"); - OpenXRHMDPrivateIncludeDir = Path.Combine(OpenXRHMDPrivateIncludeDir, "Runtime"); - OpenXRHMDPrivateIncludeDir = Path.Combine(OpenXRHMDPrivateIncludeDir, "OpenXR"); - OpenXRHMDPrivateIncludeDir = Path.Combine(OpenXRHMDPrivateIncludeDir, "Source"); - OpenXRHMDPrivateIncludeDir = Path.Combine(OpenXRHMDPrivateIncludeDir, "OpenXRHMD"); - OpenXRHMDPrivateIncludeDir = Path.Combine(OpenXRHMDPrivateIncludeDir, "Private"); - - PrivateIncludePaths.AddRange( - new string[] - { - OpenXRHMDPrivateIncludeDir, - } - ); -#endif - PrivateDependencyModuleNames.AddRange( new string[] { diff --git a/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Private/SGTrackingKismet/SGGloveTrackerKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Private/SGTrackingKismet/SGGloveTrackerKismetLibrary.cpp index 2057ebd..6b88516 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Private/SGTrackingKismet/SGGloveTrackerKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Private/SGTrackingKismet/SGGloveTrackerKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Private/SGTrackingKismet/SGHMDTrackerKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Private/SGTrackingKismet/SGHMDTrackerKismetLibrary.cpp index 3874c89..8322f47 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Private/SGTrackingKismet/SGHMDTrackerKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Private/SGTrackingKismet/SGHMDTrackerKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Private/SGTrackingKismet/SGXRTrackerKismetLibrary.cpp b/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Private/SGTrackingKismet/SGXRTrackerKismetLibrary.cpp index 01fa0aa..417c50a 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Private/SGTrackingKismet/SGXRTrackerKismetLibrary.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Private/SGTrackingKismet/SGXRTrackerKismetLibrary.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Private/SenseGloveTrackingKismet.cpp b/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Private/SenseGloveTrackingKismet.cpp index 72fc04b..b93734a 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Private/SenseGloveTrackingKismet.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Private/SenseGloveTrackingKismet.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Private/SenseGloveTrackingKismet.h b/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Private/SenseGloveTrackingKismet.h index a30ce66..65941e7 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Private/SenseGloveTrackingKismet.h +++ b/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Private/SenseGloveTrackingKismet.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Private/SenseGloveTrackingKismetModule.cpp b/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Private/SenseGloveTrackingKismetModule.cpp index ff45ac5..2c5f940 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Private/SenseGloveTrackingKismetModule.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Private/SenseGloveTrackingKismetModule.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Private/SenseGloveTrackingKismetModule.h b/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Private/SenseGloveTrackingKismetModule.h index ce1a942..fc6cef5 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Private/SenseGloveTrackingKismetModule.h +++ b/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Private/SenseGloveTrackingKismetModule.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Public/SGTrackingKismet/SGGloveTrackerKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Public/SGTrackingKismet/SGGloveTrackerKismetLibrary.h index cb2650d..c0ef7f2 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Public/SGTrackingKismet/SGGloveTrackerKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Public/SGTrackingKismet/SGGloveTrackerKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Public/SGTrackingKismet/SGHMDTrackerKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Public/SGTrackingKismet/SGHMDTrackerKismetLibrary.h index 02e6c21..74067c0 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Public/SGTrackingKismet/SGHMDTrackerKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Public/SGTrackingKismet/SGHMDTrackerKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Public/SGTrackingKismet/SGXRTrackerKismetLibrary.h b/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Public/SGTrackingKismet/SGXRTrackerKismetLibrary.h index 4912df0..2ce72e2 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Public/SGTrackingKismet/SGXRTrackerKismetLibrary.h +++ b/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/Public/SGTrackingKismet/SGXRTrackerKismetLibrary.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/SenseGloveTrackingKismet.Build.cs b/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/SenseGloveTrackingKismet.Build.cs index 1ea98ed..0fd3062 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/SenseGloveTrackingKismet.Build.cs +++ b/Plugins/SenseGlove/Source/SenseGloveTrackingKismet/SenseGloveTrackingKismet.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGCoreTypes.cpp b/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGCoreTypes.cpp index eb6dac2..1d95df9 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGCoreTypes.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGCoreTypes.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGDebugTypes.cpp b/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGDebugTypes.cpp index 5c708ad..bc83f8a 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGDebugTypes.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGDebugTypes.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGFloatArray.cpp b/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGFloatArray.cpp index 64a423b..a511276 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGFloatArray.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGFloatArray.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGNameArray.cpp b/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGNameArray.cpp index 07fb65b..9a2ab2b 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGNameArray.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGNameArray.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGQuatArray.cpp b/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGQuatArray.cpp index e38458c..7add9fb 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGQuatArray.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGQuatArray.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGRotatorArray.cpp b/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGRotatorArray.cpp index ccfba21..10eacf9 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGRotatorArray.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGRotatorArray.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGTrackingTypes.cpp b/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGTrackingTypes.cpp index 246219e..a945a7a 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGTrackingTypes.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGTrackingTypes.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGTypes.cpp b/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGTypes.cpp index 0e9740f..dfa18ad 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGTypes.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGTypes.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGVectorArray.cpp b/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGVectorArray.cpp index 0decc2c..0f96a7f 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGVectorArray.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SGTypes/SGVectorArray.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SenseGloveTypes.cpp b/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SenseGloveTypes.cpp index 3b9681c..6d7a1d2 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SenseGloveTypes.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SenseGloveTypes.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SenseGloveTypes.h b/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SenseGloveTypes.h index ab121d0..334f908 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SenseGloveTypes.h +++ b/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SenseGloveTypes.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SenseGloveTypesModule.cpp b/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SenseGloveTypesModule.cpp index e957353..b45375d 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SenseGloveTypesModule.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SenseGloveTypesModule.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SenseGloveTypesModule.h b/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SenseGloveTypesModule.h index 4ba8a68..af62b4a 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SenseGloveTypesModule.h +++ b/Plugins/SenseGlove/Source/SenseGloveTypes/Private/SenseGloveTypesModule.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGCoreTypes.h b/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGCoreTypes.h index 7fe1867..a467b72 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGCoreTypes.h +++ b/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGCoreTypes.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGDebugTypes.h b/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGDebugTypes.h index 46e36f9..1dd03e2 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGDebugTypes.h +++ b/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGDebugTypes.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGFloatArray.h b/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGFloatArray.h index ba848a6..2c4abe1 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGFloatArray.h +++ b/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGFloatArray.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGNameArray.h b/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGNameArray.h index 6370e09..646a126 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGNameArray.h +++ b/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGNameArray.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGQuatArray.h b/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGQuatArray.h index 4abc159..d12597a 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGQuatArray.h +++ b/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGQuatArray.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGRotatorArray.h b/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGRotatorArray.h index 12977b7..16c0057 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGRotatorArray.h +++ b/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGRotatorArray.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGTrackingTypes.h b/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGTrackingTypes.h index 16a7dae..241f92f 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGTrackingTypes.h +++ b/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGTrackingTypes.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGTypes.h b/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGTypes.h index 057afb8..3cbdcdc 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGTypes.h +++ b/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGTypes.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGVectorArray.h b/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGVectorArray.h index 7ca7147..7238fe0 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGVectorArray.h +++ b/Plugins/SenseGlove/Source/SenseGloveTypes/Public/SGTypes/SGVectorArray.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveTypes/SenseGloveTypes.Build.cs b/Plugins/SenseGlove/Source/SenseGloveTypes/SenseGloveTypes.Build.cs index 88b8419..7bbc6c4 100644 --- a/Plugins/SenseGlove/Source/SenseGloveTypes/SenseGloveTypes.Build.cs +++ b/Plugins/SenseGlove/Source/SenseGloveTypes/SenseGloveTypes.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SGUtils/SGAngles.cpp b/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SGUtils/SGAngles.cpp index 49c8237..6212fd7 100644 --- a/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SGUtils/SGAngles.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SGUtils/SGAngles.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SGUtils/SGArrayUtils.cpp b/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SGUtils/SGArrayUtils.cpp index 4b4394f..7f81009 100644 --- a/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SGUtils/SGArrayUtils.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SGUtils/SGArrayUtils.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SGUtils/SGEditorUtils.cpp b/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SGUtils/SGEditorUtils.cpp index 269d2a4..4209caa 100644 --- a/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SGUtils/SGEditorUtils.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SGUtils/SGEditorUtils.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SGUtils/SGEngineUtils.cpp b/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SGUtils/SGEngineUtils.cpp index 0f37750..d4253e5 100644 --- a/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SGUtils/SGEngineUtils.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SGUtils/SGEngineUtils.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -55,21 +55,8 @@ UWorld* FSGEngineUtils::GetWorld() if (IsValid(GEditor)) { { - const bool bIsPIE = -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 - UE::GetPlayInEditorID() -#else /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ - GPlayInEditorID -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ - != -1; - const int32 WorldPIEInstance = bIsPIE - ? -#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 - UE::GetPlayInEditorID() -#else /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ - GPlayInEditorID -#endif /* ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 5 */ - : 1; + const bool bIsPIE = UE::GetPlayInEditorID() != -1; + const int32 WorldPIEInstance = bIsPIE ? UE::GetPlayInEditorID() : 1; const FWorldContext* WorldContext{GEditor->GetPIEWorldContext(WorldPIEInstance)}; if (WorldContext) { diff --git a/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SGUtils/SGPluginUtils.cpp b/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SGUtils/SGPluginUtils.cpp index 895d685..bcd247b 100644 --- a/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SGUtils/SGPluginUtils.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SGUtils/SGPluginUtils.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SGUtils/SGUnits.cpp b/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SGUtils/SGUnits.cpp index 1cb0895..ccdb96e 100644 --- a/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SGUtils/SGUnits.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SGUtils/SGUnits.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SenseGloveUtils.cpp b/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SenseGloveUtils.cpp index b497146..1ee237e 100644 --- a/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SenseGloveUtils.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SenseGloveUtils.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SenseGloveUtils.h b/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SenseGloveUtils.h index a30ce66..65941e7 100644 --- a/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SenseGloveUtils.h +++ b/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SenseGloveUtils.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SenseGloveUtilsModule.cpp b/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SenseGloveUtilsModule.cpp index 0addebe..fec1049 100644 --- a/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SenseGloveUtilsModule.cpp +++ b/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SenseGloveUtilsModule.cpp @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SenseGloveUtilsModule.h b/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SenseGloveUtilsModule.h index 3757850..5c8d400 100644 --- a/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SenseGloveUtilsModule.h +++ b/Plugins/SenseGlove/Source/SenseGloveUtils/Private/SenseGloveUtilsModule.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveUtils/Public/SGUtils/SGAngles.h b/Plugins/SenseGlove/Source/SenseGloveUtils/Public/SGUtils/SGAngles.h index 87f014d..e83cdce 100644 --- a/Plugins/SenseGlove/Source/SenseGloveUtils/Public/SGUtils/SGAngles.h +++ b/Plugins/SenseGlove/Source/SenseGloveUtils/Public/SGUtils/SGAngles.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveUtils/Public/SGUtils/SGArrayUtils.h b/Plugins/SenseGlove/Source/SenseGloveUtils/Public/SGUtils/SGArrayUtils.h index ad6d879..6c731ff 100644 --- a/Plugins/SenseGlove/Source/SenseGloveUtils/Public/SGUtils/SGArrayUtils.h +++ b/Plugins/SenseGlove/Source/SenseGloveUtils/Public/SGUtils/SGArrayUtils.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveUtils/Public/SGUtils/SGEditorUtils.h b/Plugins/SenseGlove/Source/SenseGloveUtils/Public/SGUtils/SGEditorUtils.h index 48a1ebe..2181207 100644 --- a/Plugins/SenseGlove/Source/SenseGloveUtils/Public/SGUtils/SGEditorUtils.h +++ b/Plugins/SenseGlove/Source/SenseGloveUtils/Public/SGUtils/SGEditorUtils.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveUtils/Public/SGUtils/SGEngineUtils.h b/Plugins/SenseGlove/Source/SenseGloveUtils/Public/SGUtils/SGEngineUtils.h index 888cb1e..0a4d4cf 100644 --- a/Plugins/SenseGlove/Source/SenseGloveUtils/Public/SGUtils/SGEngineUtils.h +++ b/Plugins/SenseGlove/Source/SenseGloveUtils/Public/SGUtils/SGEngineUtils.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveUtils/Public/SGUtils/SGPluginUtils.h b/Plugins/SenseGlove/Source/SenseGloveUtils/Public/SGUtils/SGPluginUtils.h index f43f8b8..fb10f78 100644 --- a/Plugins/SenseGlove/Source/SenseGloveUtils/Public/SGUtils/SGPluginUtils.h +++ b/Plugins/SenseGlove/Source/SenseGloveUtils/Public/SGUtils/SGPluginUtils.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveUtils/Public/SGUtils/SGUnits.h b/Plugins/SenseGlove/Source/SenseGloveUtils/Public/SGUtils/SGUnits.h index 083fb0c..30c7420 100644 --- a/Plugins/SenseGlove/Source/SenseGloveUtils/Public/SGUtils/SGUnits.h +++ b/Plugins/SenseGlove/Source/SenseGloveUtils/Public/SGUtils/SGUnits.h @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/SenseGloveUtils/SenseGloveUtils.Build.cs b/Plugins/SenseGlove/Source/SenseGloveUtils/SenseGloveUtils.Build.cs index a29b0b0..1025d6f 100644 --- a/Plugins/SenseGlove/Source/SenseGloveUtils/SenseGloveUtils.Build.cs +++ b/Plugins/SenseGlove/Source/SenseGloveUtils/SenseGloveUtils.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/ThirdParty/SGBleThirdPartyLibs/SGBleThirdPartyLibs.Build.cs b/Plugins/SenseGlove/Source/ThirdParty/SGBleThirdPartyLibs/SGBleThirdPartyLibs.Build.cs index 7c1664d..e277920 100644 --- a/Plugins/SenseGlove/Source/ThirdParty/SGBleThirdPartyLibs/SGBleThirdPartyLibs.Build.cs +++ b/Plugins/SenseGlove/Source/ThirdParty/SGBleThirdPartyLibs/SGBleThirdPartyLibs.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -64,7 +64,7 @@ public class SGBleThirdPartyLibs : ModuleRules #if UE_5_6_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "r27c")); -#elif UE_5_4_OR_LATER +#elif UE_5_5_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "r25b")); #else Debug.Assert(false, "Unsupported engine version or compiler!"); diff --git a/Plugins/SenseGlove/Source/ThirdParty/SGCommonThirdPartyLibs/SGCommonThirdPartyLibs.Build.cs b/Plugins/SenseGlove/Source/ThirdParty/SGCommonThirdPartyLibs/SGCommonThirdPartyLibs.Build.cs index 5b30402..36e2253 100644 --- a/Plugins/SenseGlove/Source/ThirdParty/SGCommonThirdPartyLibs/SGCommonThirdPartyLibs.Build.cs +++ b/Plugins/SenseGlove/Source/ThirdParty/SGCommonThirdPartyLibs/SGCommonThirdPartyLibs.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -64,7 +64,7 @@ public class SGCommonThirdPartyLibs : ModuleRules #if UE_5_6_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "r27c")); -#elif UE_5_4_OR_LATER +#elif UE_5_5_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "r25b")); #else Debug.Assert(false, "Unsupported engine version or compiler!"); @@ -85,8 +85,6 @@ public class SGCommonThirdPartyLibs : ModuleRules LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v25")); #elif UE_5_5_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v23")); -#elif UE_5_4_OR_LATER - LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v22")); #else Debug.Assert(false, "Unsupported engine version or compiler!"); #endif @@ -99,12 +97,12 @@ public class SGCommonThirdPartyLibs : ModuleRules { LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "linux")); -#if UE_5_6_OR_LATER +#if UE_5_7_OR_LATER + LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v26")); +#elif UE_5_6_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v25")); #elif UE_5_5_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v23")); -#elif UE_5_4_OR_LATER - LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v22")); #else Debug.Assert(false, "Unsupported engine version or compiler!"); #endif diff --git a/Plugins/SenseGlove/Source/ThirdParty/SGConnectShmThirdPartyLibs/SGConnectShmThirdPartyLibs.Build.cs b/Plugins/SenseGlove/Source/ThirdParty/SGConnectShmThirdPartyLibs/SGConnectShmThirdPartyLibs.Build.cs index 1ee15cd..c132956 100644 --- a/Plugins/SenseGlove/Source/ThirdParty/SGConnectShmThirdPartyLibs/SGConnectShmThirdPartyLibs.Build.cs +++ b/Plugins/SenseGlove/Source/ThirdParty/SGConnectShmThirdPartyLibs/SGConnectShmThirdPartyLibs.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -64,7 +64,7 @@ public class SGConnectShmThirdPartyLibs : ModuleRules #if UE_5_6_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "r27c")); -#elif UE_5_4_OR_LATER +#elif UE_5_5_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "r25b")); #else Debug.Assert(false, "Unsupported engine version or compiler!"); @@ -85,8 +85,6 @@ public class SGConnectShmThirdPartyLibs : ModuleRules LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v25")); #elif UE_5_5_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v23")); -#elif UE_5_4_OR_LATER - LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v22")); #else Debug.Assert(false, "Unsupported engine version or compiler!"); #endif @@ -99,12 +97,12 @@ public class SGConnectShmThirdPartyLibs : ModuleRules { LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "linux")); -#if UE_5_6_OR_LATER +#if UE_5_7_OR_LATER + LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v26")); +#elif UE_5_6_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v25")); #elif UE_5_5_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v23")); -#elif UE_5_4_OR_LATER - LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v22")); #else Debug.Assert(false, "Unsupported engine version or compiler!"); #endif diff --git a/Plugins/SenseGlove/Source/ThirdParty/SGConnectThirdPartyHeaders/SGConnectThirdPartyHeaders.Build.cs b/Plugins/SenseGlove/Source/ThirdParty/SGConnectThirdPartyHeaders/SGConnectThirdPartyHeaders.Build.cs index d0413a0..d0327c3 100644 --- a/Plugins/SenseGlove/Source/ThirdParty/SGConnectThirdPartyHeaders/SGConnectThirdPartyHeaders.Build.cs +++ b/Plugins/SenseGlove/Source/ThirdParty/SGConnectThirdPartyHeaders/SGConnectThirdPartyHeaders.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/ThirdParty/SGConnectThirdPartyLibs/SGConnectThirdPartyLibs.Build.cs b/Plugins/SenseGlove/Source/ThirdParty/SGConnectThirdPartyLibs/SGConnectThirdPartyLibs.Build.cs index c72225a..2553212 100644 --- a/Plugins/SenseGlove/Source/ThirdParty/SGConnectThirdPartyLibs/SGConnectThirdPartyLibs.Build.cs +++ b/Plugins/SenseGlove/Source/ThirdParty/SGConnectThirdPartyLibs/SGConnectThirdPartyLibs.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -64,7 +64,7 @@ public class SGConnectThirdPartyLibs : ModuleRules #if UE_5_6_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "r27c")); -#elif UE_5_4_OR_LATER +#elif UE_5_5_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "r25b")); #else Debug.Assert(false, "Unsupported engine version or compiler!"); @@ -85,8 +85,6 @@ public class SGConnectThirdPartyLibs : ModuleRules LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v25")); #elif UE_5_5_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v23")); -#elif UE_5_4_OR_LATER - LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v22")); #else Debug.Assert(false, "Unsupported engine version or compiler!"); #endif @@ -99,12 +97,12 @@ public class SGConnectThirdPartyLibs : ModuleRules { LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "linux")); -#if UE_5_6_OR_LATER +#if UE_5_7_OR_LATER + LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v26")); +#elif UE_5_6_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v25")); #elif UE_5_5_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v23")); -#elif UE_5_4_OR_LATER - LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v22")); #else Debug.Assert(false, "Unsupported engine version or compiler!"); #endif diff --git a/Plugins/SenseGlove/Source/ThirdParty/SGCoreShmThirdPartyLibs/SGCoreShmThirdPartyLibs.Build.cs b/Plugins/SenseGlove/Source/ThirdParty/SGCoreShmThirdPartyLibs/SGCoreShmThirdPartyLibs.Build.cs index 0fbd378..ff69bf9 100644 --- a/Plugins/SenseGlove/Source/ThirdParty/SGCoreShmThirdPartyLibs/SGCoreShmThirdPartyLibs.Build.cs +++ b/Plugins/SenseGlove/Source/ThirdParty/SGCoreShmThirdPartyLibs/SGCoreShmThirdPartyLibs.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -64,7 +64,7 @@ public class SGCoreShmThirdPartyLibs : ModuleRules #if UE_5_6_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "r27c")); -#elif UE_5_4_OR_LATER +#elif UE_5_5_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "r25b")); #else Debug.Assert(false, "Unsupported engine version or compiler!"); @@ -85,8 +85,6 @@ public class SGCoreShmThirdPartyLibs : ModuleRules LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v25")); #elif UE_5_5_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v23")); -#elif UE_5_4_OR_LATER - LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v22")); #else Debug.Assert(false, "Unsupported engine version or compiler!"); #endif @@ -99,12 +97,12 @@ public class SGCoreShmThirdPartyLibs : ModuleRules { LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "linux")); -#if UE_5_6_OR_LATER +#if UE_5_7_OR_LATER + LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v26")); +#elif UE_5_6_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v25")); #elif UE_5_5_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v23")); -#elif UE_5_4_OR_LATER - LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v22")); #else Debug.Assert(false, "Unsupported engine version or compiler!"); #endif diff --git a/Plugins/SenseGlove/Source/ThirdParty/SGCoreThirdPartyHeaders/SGCoreThirdPartyHeaders.Build.cs b/Plugins/SenseGlove/Source/ThirdParty/SGCoreThirdPartyHeaders/SGCoreThirdPartyHeaders.Build.cs index 76f7806..215b93f 100644 --- a/Plugins/SenseGlove/Source/ThirdParty/SGCoreThirdPartyHeaders/SGCoreThirdPartyHeaders.Build.cs +++ b/Plugins/SenseGlove/Source/ThirdParty/SGCoreThirdPartyHeaders/SGCoreThirdPartyHeaders.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/Plugins/SenseGlove/Source/ThirdParty/SGCoreThirdPartyLibs/SGCoreThirdPartyLibs.Build.cs b/Plugins/SenseGlove/Source/ThirdParty/SGCoreThirdPartyLibs/SGCoreThirdPartyLibs.Build.cs index d611758..3265eef 100644 --- a/Plugins/SenseGlove/Source/ThirdParty/SGCoreThirdPartyLibs/SGCoreThirdPartyLibs.Build.cs +++ b/Plugins/SenseGlove/Source/ThirdParty/SGCoreThirdPartyLibs/SGCoreThirdPartyLibs.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -64,7 +64,7 @@ public class SGCoreThirdPartyLibs : ModuleRules #if UE_5_6_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "r27c")); -#elif UE_5_4_OR_LATER +#elif UE_5_5_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "r25b")); #else Debug.Assert(false, "Unsupported engine version or compiler!"); @@ -85,8 +85,6 @@ public class SGCoreThirdPartyLibs : ModuleRules LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v25")); #elif UE_5_5_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v23")); -#elif UE_5_4_OR_LATER - LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v22")); #else Debug.Assert(false, "Unsupported engine version or compiler!"); #endif @@ -99,12 +97,12 @@ public class SGCoreThirdPartyLibs : ModuleRules { LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "linux")); -#if UE_5_6_OR_LATER +#if UE_5_7_OR_LATER + LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v26")); +#elif UE_5_6_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v25")); #elif UE_5_5_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v23")); -#elif UE_5_4_OR_LATER - LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v22")); #else Debug.Assert(false, "Unsupported engine version or compiler!"); #endif diff --git a/Plugins/SenseGlove/Source/ThirdParty/SGFmtThirdPartyLibs/SGFmtThirdPartyLibs.Build.cs b/Plugins/SenseGlove/Source/ThirdParty/SGFmtThirdPartyLibs/SGFmtThirdPartyLibs.Build.cs index 51ec901..4d0d2ab 100644 --- a/Plugins/SenseGlove/Source/ThirdParty/SGFmtThirdPartyLibs/SGFmtThirdPartyLibs.Build.cs +++ b/Plugins/SenseGlove/Source/ThirdParty/SGFmtThirdPartyLibs/SGFmtThirdPartyLibs.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -69,7 +69,7 @@ public class SGFmtThirdPartyLibs : ModuleRules #if UE_5_6_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "r27c")); -#elif UE_5_4_OR_LATER +#elif UE_5_5_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "r25b")); #else Debug.Assert(false, "Unsupported engine version or compiler!"); @@ -90,8 +90,6 @@ public class SGFmtThirdPartyLibs : ModuleRules LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v25")); #elif UE_5_5_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v23")); -#elif UE_5_4_OR_LATER - LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v22")); #else Debug.Assert(false, "Unsupported engine version or compiler!"); #endif @@ -104,12 +102,12 @@ public class SGFmtThirdPartyLibs : ModuleRules { LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "linux")); -#if UE_5_6_OR_LATER +#if UE_5_7_OR_LATER + LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v26")); +#elif UE_5_6_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v25")); #elif UE_5_5_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v23")); -#elif UE_5_4_OR_LATER - LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v22")); #else Debug.Assert(false, "Unsupported engine version or compiler!"); #endif diff --git a/Plugins/SenseGlove/Source/ThirdParty/SGLogThirdPartyLibs/SGLogThirdPartyLibs.Build.cs b/Plugins/SenseGlove/Source/ThirdParty/SGLogThirdPartyLibs/SGLogThirdPartyLibs.Build.cs index 1d4d91f..126a0e0 100644 --- a/Plugins/SenseGlove/Source/ThirdParty/SGLogThirdPartyLibs/SGLogThirdPartyLibs.Build.cs +++ b/Plugins/SenseGlove/Source/ThirdParty/SGLogThirdPartyLibs/SGLogThirdPartyLibs.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -64,7 +64,7 @@ public class SGLogThirdPartyLibs : ModuleRules #if UE_5_6_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "r27c")); -#elif UE_5_4_OR_LATER +#elif UE_5_5_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "r25b")); #else Debug.Assert(false, "Unsupported engine version or compiler!"); @@ -85,8 +85,6 @@ public class SGLogThirdPartyLibs : ModuleRules LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v25")); #elif UE_5_5_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v23")); -#elif UE_5_4_OR_LATER - LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v22")); #else Debug.Assert(false, "Unsupported engine version or compiler!"); #endif @@ -99,12 +97,12 @@ public class SGLogThirdPartyLibs : ModuleRules { LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "linux")); -#if UE_5_6_OR_LATER +#if UE_5_7_OR_LATER + LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v26")); +#elif UE_5_6_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v25")); #elif UE_5_5_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v23")); -#elif UE_5_4_OR_LATER - LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v22")); #else Debug.Assert(false, "Unsupported engine version or compiler!"); #endif diff --git a/Plugins/SenseGlove/Source/ThirdParty/SGLoguruThirdPartyLibs/SGLoguruThirdPartyLibs.Build.cs b/Plugins/SenseGlove/Source/ThirdParty/SGLoguruThirdPartyLibs/SGLoguruThirdPartyLibs.Build.cs index d7a430f..8a22fc4 100644 --- a/Plugins/SenseGlove/Source/ThirdParty/SGLoguruThirdPartyLibs/SGLoguruThirdPartyLibs.Build.cs +++ b/Plugins/SenseGlove/Source/ThirdParty/SGLoguruThirdPartyLibs/SGLoguruThirdPartyLibs.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -69,7 +69,7 @@ public class SGLoguruThirdPartyLibs : ModuleRules #if UE_5_6_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "r27c")); -#elif UE_5_4_OR_LATER +#elif UE_5_5_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "r25b")); #else Debug.Assert(false, "Unsupported engine version or compiler!"); @@ -90,8 +90,6 @@ public class SGLoguruThirdPartyLibs : ModuleRules LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v25")); #elif UE_5_5_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v23")); -#elif UE_5_4_OR_LATER - LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v22")); #else Debug.Assert(false, "Unsupported engine version or compiler!"); #endif @@ -104,12 +102,12 @@ public class SGLoguruThirdPartyLibs : ModuleRules { LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "linux")); -#if UE_5_6_OR_LATER +#if UE_5_7_OR_LATER + LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v26")); +#elif UE_5_6_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v25")); #elif UE_5_5_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v23")); -#elif UE_5_4_OR_LATER - LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v22")); #else Debug.Assert(false, "Unsupported engine version or compiler!"); #endif diff --git a/Plugins/SenseGlove/Source/ThirdParty/SGSerialThirdPartyLibs/SGSerialThirdPartyLibs.Build.cs b/Plugins/SenseGlove/Source/ThirdParty/SGSerialThirdPartyLibs/SGSerialThirdPartyLibs.Build.cs index 8eb4cc2..1f33184 100644 --- a/Plugins/SenseGlove/Source/ThirdParty/SGSerialThirdPartyLibs/SGSerialThirdPartyLibs.Build.cs +++ b/Plugins/SenseGlove/Source/ThirdParty/SGSerialThirdPartyLibs/SGSerialThirdPartyLibs.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -64,7 +64,7 @@ public class SGSerialThirdPartyLibs : ModuleRules #if UE_5_6_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "r27c")); -#elif UE_5_4_OR_LATER +#elif UE_5_5_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "r25b")); #else Debug.Assert(false, "Unsupported engine version or compiler!"); @@ -85,8 +85,6 @@ public class SGSerialThirdPartyLibs : ModuleRules LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v25")); #elif UE_5_5_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v23")); -#elif UE_5_4_OR_LATER - LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v22")); #else Debug.Assert(false, "Unsupported engine version or compiler!"); #endif @@ -99,12 +97,12 @@ public class SGSerialThirdPartyLibs : ModuleRules { LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "linux")); -#if UE_5_6_OR_LATER +#if UE_5_7_OR_LATER + LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v26")); +#elif UE_5_6_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v25")); #elif UE_5_5_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v23")); -#elif UE_5_4_OR_LATER - LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v22")); #else Debug.Assert(false, "Unsupported engine version or compiler!"); #endif diff --git a/Plugins/SenseGlove/Source/ThirdParty/SGWjwwoodSerialThirdPartyLibs/SGWjwwoodSerialThirdPartyLibs.Build.cs b/Plugins/SenseGlove/Source/ThirdParty/SGWjwwoodSerialThirdPartyLibs/SGWjwwoodSerialThirdPartyLibs.Build.cs index 2dadfa8..4b6ab61 100644 --- a/Plugins/SenseGlove/Source/ThirdParty/SGWjwwoodSerialThirdPartyLibs/SGWjwwoodSerialThirdPartyLibs.Build.cs +++ b/Plugins/SenseGlove/Source/ThirdParty/SGWjwwoodSerialThirdPartyLibs/SGWjwwoodSerialThirdPartyLibs.Build.cs @@ -7,7 +7,7 @@ * * (The MIT License) * - * Copyright (c) 2020 - 2025 SenseGlove + * Copyright (c) 2020 - 2026 SenseGlove * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -64,7 +64,7 @@ public class SGWjwwoodSerialThirdPartyLibs : ModuleRules #if UE_5_6_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "r27c")); -#elif UE_5_4_OR_LATER +#elif UE_5_5_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "r25b")); #else Debug.Assert(false, "Unsupported engine version or compiler!"); @@ -85,8 +85,6 @@ public class SGWjwwoodSerialThirdPartyLibs : ModuleRules LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v25")); #elif UE_5_5_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v23")); -#elif UE_5_4_OR_LATER - LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v22")); #else Debug.Assert(false, "Unsupported engine version or compiler!"); #endif @@ -99,12 +97,12 @@ public class SGWjwwoodSerialThirdPartyLibs : ModuleRules { LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "linux")); -#if UE_5_6_OR_LATER +#if UE_5_7_OR_LATER + LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v26")); +#elif UE_5_6_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v25")); #elif UE_5_5_OR_LATER LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v23")); -#elif UE_5_4_OR_LATER - LibraryPath = Path.GetFullPath(Path.Combine(LibraryPath, "v22")); #else Debug.Assert(false, "Unsupported engine version or compiler!"); #endif