From 535130110854d2cadec058b60565e2a532f248d9 Mon Sep 17 00:00:00 2001 From: Mamadou Babaei Date: Fri, 3 Mar 2023 18:01:34 +0100 Subject: [PATCH] update unreal api to take care of radians/degrees conversions where possible --- Source/SenseGloveCore/Private/SGCore/SGAnatomy.cpp | 8 ++++---- Source/SenseGloveCore/Public/SGCore/SGAnatomy.h | 8 ++++---- .../Public/SGCore/SGSenseGloveSensorData.h | 2 +- .../Private/SGCoreImpl/SGAnatomyImpl.cpp | 14 ++++++++++---- .../Private/SGCoreImpl/SGExportedFunctions.cpp | 8 ++++---- .../SGCoreImpl/SGSenseGloveSensorDataImpl.cpp | 2 +- .../Public/SGCoreImpl/SGAnatomyImpl.h | 4 ++-- .../Public/SGCoreImpl/SGExportedFunctions.h | 4 ++-- .../SGCoreKismet/SGAnatomyKismetLibrary.cpp | 8 ++++---- .../SGSenseGloveSensorDataKismetLibrary.cpp | 1 + .../Public/SGCoreKismet/SGAnatomyKismetLibrary.h | 8 ++++---- .../SGSenseGloveSensorDataKismetLibrary.h | 2 +- 12 files changed, 38 insertions(+), 31 deletions(-) diff --git a/Source/SenseGloveCore/Private/SGCore/SGAnatomy.cpp b/Source/SenseGloveCore/Private/SGCore/SGAnatomy.cpp index 0737a5ef..489ea59e 100644 --- a/Source/SenseGloveCore/Private/SGCore/SGAnatomy.cpp +++ b/Source/SenseGloveCore/Private/SGCore/SGAnatomy.cpp @@ -68,14 +68,14 @@ float FSGAnatomy::GetThumbJointLimit(const bool bRightHanded, const int32 Joint, return SGCoreImpl_FSGAnatomyImpl_GetThumbJointLimit(bRightHanded, Joint, Movement, bMax); } -float FSGAnatomy::NormalizeFingerFlexion(const float FlexionInRadians) +float FSGAnatomy::NormalizeFingerFlexion(const float FlexionInDegrees) { - return SGCoreImpl_FSGAnatomyImpl_NormalizeFingerFlexion(FlexionInRadians); + return SGCoreImpl_FSGAnatomyImpl_NormalizeFingerFlexion(FlexionInDegrees); } -float FSGAnatomy::NormalizeThumbFlexion(const float FlexionInRadians) +float FSGAnatomy::NormalizeThumbFlexion(const float FlexionInDegrees) { - return SGCoreImpl_FSGAnatomyImpl_NormalizeThumbFlexion(FlexionInRadians); + return SGCoreImpl_FSGAnatomyImpl_NormalizeThumbFlexion(FlexionInDegrees); } TArray> FSGAnatomy::GetDefaultHandAngles(const bool bRightHanded) diff --git a/Source/SenseGloveCore/Public/SGCore/SGAnatomy.h b/Source/SenseGloveCore/Public/SGCore/SGAnatomy.h index 141c9ead..bfbdfd89 100644 --- a/Source/SenseGloveCore/Public/SGCore/SGAnatomy.h +++ b/Source/SenseGloveCore/Public/SGCore/SGAnatomy.h @@ -82,14 +82,14 @@ public: static float GetThumbJointLimit(bool bRightHanded, int32 Joint, int32 Movement, bool bMax); /** - * Convert a total finger flexion in radians into a 0..1 representation. + * Convert a total finger flexion in degrees. */ - static float NormalizeFingerFlexion(float FlexionInRadians); + static float NormalizeFingerFlexion(float FlexionInDegrees); /** - * Convert a total thumb flexion in radians into a 0..1 representation. + * Convert a total thumb flexion in degrees. */ - static float NormalizeThumbFlexion(float FlexionInRadians); + static float NormalizeThumbFlexion(float FlexionInDegrees); /** * Get Hand Angles that would make a Default (Idle) Pose. diff --git a/Source/SenseGloveCore/Public/SGCore/SGSenseGloveSensorData.h b/Source/SenseGloveCore/Public/SGCore/SGSenseGloveSensorData.h index dbdd8a24..f5f6e113 100644 --- a/Source/SenseGloveCore/Public/SGCore/SGSenseGloveSensorData.h +++ b/Source/SenseGloveCore/Public/SGCore/SGSenseGloveSensorData.h @@ -178,7 +178,7 @@ public: public: /** - * Glove angles in radians, sorted by finger, from proximal to distal. + * Glove angles in degrees, sorted by finger, from proximal to distal. */ TArray> GetSensorAngles() const; diff --git a/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGAnatomyImpl.cpp b/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGAnatomyImpl.cpp index eecf2591..10374f1b 100644 --- a/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGAnatomyImpl.cpp +++ b/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGAnatomyImpl.cpp @@ -75,14 +75,20 @@ float FSGAnatomyImpl::GetThumbJointLimit( Movement, FAnatomyType::GetThumbJointLimit(bRightHanded, Joint, Movement, bMax)); } -float FSGAnatomyImpl::NormalizeFingerFlexion(const float FlexionInRadians) +float FSGAnatomyImpl::NormalizeFingerFlexion(const float FlexionInDegrees) { - return FAnatomyType::NormalizeFingerFlexion(FlexionInRadians); + return FSGAngles::TransformToUnreal( + FAnatomyType::NormalizeFingerFlexion( + FSGAngles::TransformToSenseGlove( + FlexionInDegrees))); } -float FSGAnatomyImpl::NormalizeThumbFlexion(const float FlexionInRadians) +float FSGAnatomyImpl::NormalizeThumbFlexion(const float FlexionInDegrees) { - return FAnatomyType::NormalizeThumbFlexion(FlexionInRadians); + return FSGAngles::TransformToUnreal( + FAnatomyType::NormalizeThumbFlexion( + FSGAngles::TransformToSenseGlove( + FlexionInDegrees))); } TArray> FSGAnatomyImpl::GetDefaultHandAngles(const bool bRightHanded) diff --git a/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGExportedFunctions.cpp b/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGExportedFunctions.cpp index ffbcff39..3bcf7f03 100644 --- a/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGExportedFunctions.cpp +++ b/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGExportedFunctions.cpp @@ -209,15 +209,15 @@ float SGCoreImpl_FSGAnatomyImpl_GetThumbJointLimit( } float SGCoreImpl_FSGAnatomyImpl_NormalizeFingerFlexion( - const float FlexionInRadians) + const float FlexionInDegrees) { - return FSGAnatomyImpl::NormalizeFingerFlexion(FlexionInRadians); + return FSGAnatomyImpl::NormalizeFingerFlexion(FlexionInDegrees); } float SGCoreImpl_FSGAnatomyImpl_NormalizeThumbFlexion( - const float FlexionInRadians) + const float FlexionInDegrees) { - return FSGAnatomyImpl::NormalizeThumbFlexion(FlexionInRadians); + return FSGAnatomyImpl::NormalizeThumbFlexion(FlexionInDegrees); } void SGCoreImpl_FSGAnatomyImpl_GetDefaultHandAngles( diff --git a/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveSensorDataImpl.cpp b/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveSensorDataImpl.cpp index 002c505d..208ad8ea 100644 --- a/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveSensorDataImpl.cpp +++ b/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveSensorDataImpl.cpp @@ -177,7 +177,7 @@ const FSGSenseGloveSensorDataImpl::FSenseGloveSensorDataType& FSGSenseGloveSenso TArray> FSGSenseGloveSensorDataImpl::GetSensorAngles() const { TArray> SensorAngles{ - FSGArrayUtils::FromStdVector(Pimpl->SenseGloveSensorData.GetSensorAngles()) + FSGArrayUtils::FromSenseGloveAngles(Pimpl->SenseGloveSensorData.GetSensorAngles()) }; return MoveTemp(SensorAngles); } diff --git a/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGAnatomyImpl.h b/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGAnatomyImpl.h index 12c71f5d..1786a7f9 100644 --- a/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGAnatomyImpl.h +++ b/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGAnatomyImpl.h @@ -64,9 +64,9 @@ public: static float GetThumbJointLimit(bool bRightHanded, int32 Joint, int32 Movement, bool bMax); - static float NormalizeFingerFlexion(float FlexionInRadians); + static float NormalizeFingerFlexion(float FlexionInDegrees); - static float NormalizeThumbFlexion(float FlexionInRadians); + static float NormalizeThumbFlexion(float FlexionInDegrees); public: static TArray> GetDefaultHandAngles(bool bRightHanded); diff --git a/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGExportedFunctions.h b/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGExportedFunctions.h index 2ef3d29f..f4022494 100644 --- a/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGExportedFunctions.h +++ b/Source/SenseGloveCoreImpl/Public/SGCoreImpl/SGExportedFunctions.h @@ -103,10 +103,10 @@ SENSEGLOVECOREIMPL_PUBLIC_API float SGCoreImpl_FSGAnatomyImpl_GetThumbJointLimit bool bMax); SENSEGLOVECOREIMPL_PUBLIC_API float SGCoreImpl_FSGAnatomyImpl_NormalizeFingerFlexion( - float FlexionInRadians); + float FlexionInDegrees); SENSEGLOVECOREIMPL_PUBLIC_API float SGCoreImpl_FSGAnatomyImpl_NormalizeThumbFlexion( - float FlexionInRadians); + float FlexionInDegrees); SENSEGLOVECOREIMPL_PUBLIC_API void SGCoreImpl_FSGAnatomyImpl_GetDefaultHandAngles( void* OutAngles, diff --git a/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGAnatomyKismetLibrary.cpp b/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGAnatomyKismetLibrary.cpp index d546d065..6709293b 100644 --- a/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGAnatomyKismetLibrary.cpp +++ b/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGAnatomyKismetLibrary.cpp @@ -70,14 +70,14 @@ float USGAnatomyKismetLibrary::GetThumbJointLimit(const bool bRightHanded, const return FSGAnatomy::GetThumbJointLimit(bRightHanded, Joint, Movement, bMax); } -float USGAnatomyKismetLibrary::NormalizeFingerFlexion(const float FlexionInRadians) +float USGAnatomyKismetLibrary::NormalizeFingerFlexion(const float FlexionInDegrees) { - return FSGAnatomy::NormalizeFingerFlexion(FlexionInRadians); + return FSGAnatomy::NormalizeFingerFlexion(FlexionInDegrees); } -float USGAnatomyKismetLibrary::NormalizeThumbFlexion(const float FlexionInRadians) +float USGAnatomyKismetLibrary::NormalizeThumbFlexion(const float FlexionInDegrees) { - return FSGAnatomy::NormalizeThumbFlexion(FlexionInRadians); + return FSGAnatomy::NormalizeThumbFlexion(FlexionInDegrees); } TArray USGAnatomyKismetLibrary::GetDefaultHandAngles(const bool bRightHanded) diff --git a/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSenseGloveSensorDataKismetLibrary.cpp b/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSenseGloveSensorDataKismetLibrary.cpp index ea5c4f52..67728604 100644 --- a/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSenseGloveSensorDataKismetLibrary.cpp +++ b/Source/SenseGloveCoreKismet/Private/SGCoreKismet/SGSenseGloveSensorDataKismetLibrary.cpp @@ -36,6 +36,7 @@ #include "SGCoreKismet/SGSenseGloveSensorDataKismetLibrary.h" #include "SGCore/SGSenseGloveSensorData.h" +#include "SGUtils/SGArrayUtils.h" USGSenseGloveSensorData* USGSenseGloveSensorDataKismetLibrary::MakeSenseGloveSensorData(UObject* WorldContextObject) { diff --git a/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGAnatomyKismetLibrary.h b/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGAnatomyKismetLibrary.h index 6648d2cb..c0f92c0c 100644 --- a/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGAnatomyKismetLibrary.h +++ b/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGAnatomyKismetLibrary.h @@ -90,16 +90,16 @@ public: static float GetThumbJointLimit(bool bRightHanded, int32 Joint, int32 Movement, bool bMax); /** - * Convert a total finger flexion in radians into a 0..1 representation. + * Convert a total finger flexion in degrees. */ UFUNCTION(BlueprintCallable, Category="SenseGlove | Core | Kinematics | Anatomy") - static float NormalizeFingerFlexion(float FlexionInRadians); + static float NormalizeFingerFlexion(float FlexionInDegrees); /** - * Convert a total thumb flexion in radians into a 0..1 representation. + * Convert a total thumb flexion in degrees. */ UFUNCTION(BlueprintCallable, Category="SenseGlove | Core | Kinematics | Anatomy") - static float NormalizeThumbFlexion(float FlexionInRadians); + static float NormalizeThumbFlexion(float FlexionInDegrees); /** * Get Hand Angles that would make a Default (Idle) Pose. diff --git a/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSenseGloveSensorDataKismetLibrary.h b/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSenseGloveSensorDataKismetLibrary.h index bd3fb613..c7bfca8e 100644 --- a/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSenseGloveSensorDataKismetLibrary.h +++ b/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGSenseGloveSensorDataKismetLibrary.h @@ -101,7 +101,7 @@ public: static USGSenseGloveSensorData* Deserialize(UObject* WorldContextObject, const FString& SerializedString); /** - * Glove angles in radians, sorted by finger, from proximal to distal. + * Glove angles in degrees, sorted by finger, from proximal to distal. */ UFUNCTION(BlueprintPure, Category="SenseGlove | Core | SG | Sense Glove Sensor Data") static TArray GetSensorAngles(const USGSenseGloveSensorData* SenseGloveSensorData);