Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3c56af0e1f
|
||
|
|
9cbdf5cea7
|
||
|
|
032422de1c
|
||
|
|
0f89d1c4dd
|
||
|
|
8d289c0f2f
|
||
|
|
62a2dd44f0
|
||
|
|
c3001c588c
|
||
|
|
f3b21fecfa
|
||
|
|
94e1b9ffcb
|
||
|
|
01078b6cd6
|
||
|
|
a62f615036
|
||
|
|
5213282f25
|
+11
-1
@@ -5,7 +5,13 @@ 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]
|
||||
## [v1.2.1] - 2023-03-30
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fix RunUAT build issues with Android.
|
||||
|
||||
## [v1.2.0] - 2023-03-28
|
||||
|
||||
This release breaks ABI/API compatibility with the previous versions.
|
||||
|
||||
@@ -35,6 +41,10 @@ This release breaks ABI/API compatibility with the previous versions.
|
||||
- Removed redundant SGConnectImpl/SGPlatform.
|
||||
- Removed redundant SGTypes/SGConnectTypes.
|
||||
|
||||
### Known Issues
|
||||
|
||||
- Wrist Tracker's offsets are a bit off (e.g. on Quest 2), scheduled to be fixed in the next patch release.
|
||||
|
||||
## [1.1.1] - 2023-02-07
|
||||
|
||||
### Added
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"FileVersion": 3,
|
||||
"Version": 1,
|
||||
"VersionName": "1.1.1",
|
||||
"VersionName": "1.2.1",
|
||||
"FriendlyName": "SenseGlove",
|
||||
"Description": "Integrating the SenseGlove haptic controller into Unreal Engine",
|
||||
"Category": "Virtual Reality",
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
#include "Containers/UnrealString.h"
|
||||
#include "Engine/SkeletalMesh.h"
|
||||
#include "Math/Rotator.h"
|
||||
#include "Runtime/Launch/Resources/Version.h"
|
||||
#include "SGLog/SGLog.h"
|
||||
|
||||
#include "SenseGlove/Components/SGVirtualHandComponent.h"
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
#include "Components/SkeletalMeshComponent.h"
|
||||
#include "Engine/SkeletalMesh.h"
|
||||
#include "Kismet/GameplayStatics.h"
|
||||
#include "Runtime/Launch/Resources/Version.h"
|
||||
#include "UObject/ConstructorHelpers.h"
|
||||
|
||||
#include "SenseGlove/Animation/SGVirtualHandAnimInstance.h"
|
||||
@@ -122,7 +123,7 @@ struct USGVirtualHandComponent::FImpl
|
||||
bool UninitializeBackend() const;
|
||||
bool CheckGlove() const;
|
||||
|
||||
void SetVisibility(bool bVisible) const;
|
||||
void SetVisibility(bool bInVisible) const;
|
||||
};
|
||||
|
||||
const TArray<TArray<FName>>& USGVirtualHandComponent::GetLeftHandFingerBoneNames()
|
||||
@@ -205,11 +206,7 @@ USGVirtualHandComponent::USGVirtualHandComponent(const FObjectInitializer& Objec
|
||||
bRight = true;
|
||||
bHiddenInGameIfNoGloveDetected = false;
|
||||
|
||||
const FString SkeletalMeshPath{Pimpl->GetDefaultMeshPath()};
|
||||
const ConstructorHelpers::FObjectFinder<USkeletalMesh> SkeletalMesh{*SkeletalMeshPath};
|
||||
ensureAlwaysMsgf(SkeletalMesh.Succeeded() && SkeletalMesh.Object,
|
||||
TEXT("Failed to load the skeletal mesh: '%s'"), *SkeletalMeshPath);
|
||||
Super::SetSkeletalMesh(SkeletalMesh.Object, true);
|
||||
Super::SetSkeletalMesh(nullptr, true);
|
||||
|
||||
bBackendInitialized = false;
|
||||
Glove = nullptr;
|
||||
@@ -233,6 +230,16 @@ void USGVirtualHandComponent::SetAnimClass(UClass* NewClass)
|
||||
Super::SetAnimClass(NewClass);
|
||||
}
|
||||
|
||||
void USGVirtualHandComponent::PostInitProperties()
|
||||
{
|
||||
Super::PostInitProperties();
|
||||
|
||||
if (!Pimpl->IsUsingUserMesh())
|
||||
{
|
||||
Pimpl->SetDefaultMesh();
|
||||
}
|
||||
}
|
||||
|
||||
#if WITH_EDITOR
|
||||
void USGVirtualHandComponent::PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent)
|
||||
{
|
||||
@@ -458,13 +465,13 @@ FString USGVirtualHandComponent::FImpl::GetDefaultMeshPath() const
|
||||
|
||||
bool USGVirtualHandComponent::FImpl::IsUsingUserMesh() const
|
||||
{
|
||||
const USkeletalMesh* SkeletalMesh{GetMesh()};
|
||||
if (!IsValid(SkeletalMesh))
|
||||
const USkeletalMesh* CurrentMesh{GetMesh()};
|
||||
if (!IsValid(CurrentMesh))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
const FString CurrentMeshPath(SkeletalMesh->GetPathName());
|
||||
const FString CurrentMeshPath(CurrentMesh->GetPathName());
|
||||
const FString LeftHandDefaultMeshPath(GetDefaultLeftHandMeshPath());
|
||||
const FString LeftHandDefaultMeshPathOnly(GetDefaultLeftHandMeshPathOnly());
|
||||
const FString RightHandDefaultMeshPath(GetDefaultRightHandMeshPath());
|
||||
@@ -482,14 +489,17 @@ bool USGVirtualHandComponent::FImpl::IsUsingUserMesh() const
|
||||
|
||||
USkeletalMesh* USGVirtualHandComponent::FImpl::LoadDefaultMesh() const
|
||||
{
|
||||
const FString SkeletalMeshPath{GetDefaultMeshPath()};
|
||||
USkeletalMesh* SkeletalMesh{
|
||||
Cast<USkeletalMesh>(StaticLoadObject(USkeletalMesh::StaticClass(), nullptr, *SkeletalMeshPath))
|
||||
const FString DefaultMeshPath{GetDefaultMeshPath()};
|
||||
USkeletalMesh* DefaultMesh{
|
||||
Cast<USkeletalMesh>(StaticLoadObject(USkeletalMesh::StaticClass(), nullptr, *DefaultMeshPath))
|
||||
};
|
||||
|
||||
ensureAlwaysMsgf(SkeletalMesh, TEXT("Failed to load the skeletal mesh: '%s'"), *SkeletalMeshPath);
|
||||
if (!IsValid(DefaultMesh))
|
||||
{
|
||||
SGLOG_WARNING(FString::Printf(TEXT("Failed to load the default skeletal mesh: '%s'"), *DefaultMeshPath));
|
||||
}
|
||||
|
||||
return SkeletalMesh;
|
||||
return DefaultMesh;
|
||||
}
|
||||
|
||||
void USGVirtualHandComponent::FImpl::SetDefaultMesh() const
|
||||
@@ -510,16 +520,16 @@ USkeletalMesh* USGVirtualHandComponent::FImpl::GetMesh() const
|
||||
|
||||
USkeleton* USGVirtualHandComponent::FImpl::GetSkeleton() const
|
||||
{
|
||||
USkeletalMesh* SkeletalMesh{GetMesh()};
|
||||
ensureAlwaysMsgf(IsValid(SkeletalMesh), TEXT("Invalid SkeletalMesh object!"));
|
||||
return SkeletalMesh->GetSkeleton();
|
||||
USkeletalMesh* Mesh{GetMesh()};
|
||||
ensureAlwaysMsgf(IsValid(Mesh), TEXT("Invalid SkeletalMesh object!"));
|
||||
return Mesh->GetSkeleton();
|
||||
}
|
||||
|
||||
const FReferenceSkeleton& USGVirtualHandComponent::FImpl::GetRefSkeleton() const
|
||||
{
|
||||
const USkeletalMesh* SkeletalMesh{GetMesh()};
|
||||
ensureAlwaysMsgf(IsValid(SkeletalMesh), TEXT("Invalid SkeletalMesh object!"));
|
||||
return SkeletalMesh->GetRefSkeleton();
|
||||
const USkeletalMesh* Mesh{GetMesh()};
|
||||
ensureAlwaysMsgf(IsValid(Mesh), TEXT("Invalid SkeletalMesh object!"));
|
||||
return Mesh->GetRefSkeleton();
|
||||
}
|
||||
|
||||
bool USGVirtualHandComponent::FImpl::InitializeBackend() const
|
||||
@@ -665,9 +675,9 @@ bool USGVirtualHandComponent::FImpl::CheckGlove() const
|
||||
return bFoundGlove;
|
||||
}
|
||||
|
||||
void USGVirtualHandComponent::FImpl::SetVisibility(const bool bVisible) const
|
||||
void USGVirtualHandComponent::FImpl::SetVisibility(const bool bInVisible) const
|
||||
{
|
||||
Owner->SetVisibility(bVisible, true);
|
||||
Owner->SetVisibility(bInVisible, true);
|
||||
}
|
||||
|
||||
void USGVirtualHandComponent::FImplDeleter::operator()(const FImpl* P) const
|
||||
|
||||
@@ -93,8 +93,10 @@ ASGPawn::ASGPawn(const FObjectInitializer& ObjectInitializer)
|
||||
HandLeft->SetupAttachment(GetRootComponent());
|
||||
HandLeft->SetRight(false);
|
||||
HandLeft->SetHiddenIfNoGloveDetected(true);
|
||||
HandLeft->SetWorldLocation(FVector{30.0f, -20.0f, -10.0f},
|
||||
false, nullptr, ETeleportType::None);
|
||||
HandLeft->SetRelativeRotation(FRotator{0.0f, -90.0f, 0.0f},
|
||||
false, nullptr, ETeleportType::None);
|
||||
HandLeft->SetRelativeLocation(FVector{30.0f, -20.0f, -10.0f},
|
||||
false, nullptr, ETeleportType::None);
|
||||
|
||||
WristTrackerRight = ObjectInitializer.CreateDefaultSubobject<USGWristTrackerComponent>(
|
||||
this, TEXT("WristTrackerRight"));
|
||||
@@ -105,8 +107,10 @@ ASGPawn::ASGPawn(const FObjectInitializer& ObjectInitializer)
|
||||
HandRight->SetupAttachment(GetRootComponent());
|
||||
HandRight->SetRight(true);
|
||||
HandRight->SetHiddenIfNoGloveDetected(true);
|
||||
HandRight->SetWorldLocation(FVector{30.0f, 20.0f, -10.0f},
|
||||
false, nullptr, ETeleportType::None);
|
||||
HandRight->SetRelativeRotation(FRotator{0.0f, -90.0f, 0.0f},
|
||||
false, nullptr, ETeleportType::None);
|
||||
HandRight->SetRelativeLocation(FVector{30.0f, 20.0f, -10.0f},
|
||||
false, nullptr, ETeleportType::None);
|
||||
}
|
||||
|
||||
void ASGPawn::BeginPlay()
|
||||
@@ -159,4 +163,4 @@ ASGPawn::FImpl::~FImpl() = default;
|
||||
void ASGPawn::FImplDeleter::operator()(const FImpl* P) const
|
||||
{
|
||||
delete P;
|
||||
}
|
||||
}
|
||||
@@ -76,6 +76,8 @@ ASGVirtualHandActor::ASGVirtualHandActor(const FObjectInitializer& ObjectInitial
|
||||
|
||||
VirtualHand = CreateDefaultSubobject<USGVirtualHandComponent>(TEXT("VirtualHand"));
|
||||
VirtualHand->SetupAttachment(RootComponent);
|
||||
VirtualHand->SetRelativeRotation(FRotator{0.0f, -90.0f, 0.0f},
|
||||
false, nullptr, ETeleportType::None);
|
||||
|
||||
WristTracker = CreateDefaultSubobject<USGWristTrackerComponent>(TEXT("WristTracker"));
|
||||
WristTracker->SetupAttachment(RootComponent);
|
||||
|
||||
@@ -116,6 +116,8 @@ public:
|
||||
public:
|
||||
virtual void SetAnimClass(class UClass* NewClass) override;
|
||||
|
||||
virtual void PostInitProperties() override;
|
||||
|
||||
#if WITH_EDITOR
|
||||
virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
|
||||
#endif /* WITH_EDITOR */
|
||||
|
||||
@@ -40,6 +40,8 @@
|
||||
#include "Android/AndroidJava.h"
|
||||
#endif /* PLATFORM_ANDROID */
|
||||
|
||||
#include "Misc/Paths.h"
|
||||
|
||||
#if PLATFORM_ANDROID
|
||||
#include "SGConnectImpl/SGExportedFunctions.h"
|
||||
#include "SGInterop/SGIC_FString.h"
|
||||
|
||||
@@ -40,6 +40,8 @@
|
||||
#include "Android/AndroidJava.h"
|
||||
#endif /* PLATFORM_ANDROID */
|
||||
|
||||
#include "Misc/Paths.h"
|
||||
|
||||
#if PLATFORM_ANDROID
|
||||
#include "SGCoreImpl/SGExportedFunctions.h"
|
||||
#include "SGInterop/SGIC_FString.h"
|
||||
|
||||
@@ -64,15 +64,8 @@ public class SenseGloveAndroid : ModuleRules
|
||||
|
||||
if (Target.Platform == UnrealTargetPlatform.Android)
|
||||
{
|
||||
PrivateIncludePathModuleNames.AddRange(
|
||||
new string[]
|
||||
{
|
||||
"Launch",
|
||||
"Settings",
|
||||
}
|
||||
);
|
||||
|
||||
AdditionalPropertiesForReceipt.Add("AndroidPlugin", Path.Combine(ModuleDirectory, "SenseGloveAndroid_UPL.xml"));
|
||||
AdditionalPropertiesForReceipt.Add("AndroidPlugin",
|
||||
Path.Combine(ModuleDirectory, "SenseGloveAndroid_UPL.xml"));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -38,7 +38,6 @@
|
||||
#include "Containers/UnrealString.h"
|
||||
#include "Math/Quat.h"
|
||||
#include "Math/Vector.h"
|
||||
#include "Runtime/Launch/Resources/Version.h"
|
||||
#include "Templates/UniquePtr.h"
|
||||
|
||||
#include "SGCoreImpl/SGPlatform.h"
|
||||
|
||||
@@ -37,7 +37,6 @@
|
||||
|
||||
#include "Containers/UnrealString.h"
|
||||
#include "Math/Vector.h"
|
||||
#include "Runtime/Launch/Resources/Version.h"
|
||||
#include "Templates/UniquePtr.h"
|
||||
|
||||
#include "SGCoreImpl/SGPlatform.h"
|
||||
|
||||
@@ -38,7 +38,6 @@
|
||||
#include "Containers/UnrealString.h"
|
||||
#include "Math/Quat.h"
|
||||
#include "Math/Vector.h"
|
||||
#include "Runtime/Launch/Resources/Version.h"
|
||||
#include "Templates/UniquePtr.h"
|
||||
|
||||
#include "SGCoreImpl/SGPlatform.h"
|
||||
|
||||
@@ -36,7 +36,6 @@
|
||||
#pragma once
|
||||
|
||||
#include "HAL/Platform.h"
|
||||
#include "Runtime/Launch/Resources/Version.h"
|
||||
#include "Templates/SharedPointer.h"
|
||||
#include "Templates/UniquePtr.h"
|
||||
|
||||
|
||||
@@ -36,7 +36,6 @@
|
||||
#pragma once
|
||||
|
||||
#include "Containers/UnrealString.h"
|
||||
#include "Runtime/Launch/Resources/Version.h"
|
||||
#include "Templates/UniquePtr.h"
|
||||
|
||||
#include "SGCoreImpl/SGPlatform.h"
|
||||
|
||||
@@ -38,7 +38,6 @@
|
||||
#include <vector>
|
||||
|
||||
#include "Containers/UnrealString.h"
|
||||
#include "Runtime/Launch/Resources/Version.h"
|
||||
#include "Templates/SharedPointer.h"
|
||||
#include "Templates/UniquePtr.h"
|
||||
|
||||
|
||||
@@ -37,7 +37,6 @@
|
||||
|
||||
#include "Containers/UnrealString.h"
|
||||
|
||||
#include "SGCoreImpl/SGAnatomyImpl.h"
|
||||
#include "SGCoreImpl/SGDeviceImpl.h"
|
||||
#include "SGTypes/SGCoreTypes.h"
|
||||
|
||||
|
||||
@@ -36,7 +36,6 @@
|
||||
#pragma once
|
||||
|
||||
#include "Containers/UnrealString.h"
|
||||
#include "Runtime/Launch/Resources/Version.h"
|
||||
#include "Templates/UniquePtr.h"
|
||||
|
||||
#include "SGCoreImpl/SGPlatform.h"
|
||||
|
||||
@@ -37,7 +37,6 @@
|
||||
|
||||
#include "Containers/Array.h"
|
||||
#include "Containers/UnrealString.h"
|
||||
#include "Runtime/Launch/Resources/Version.h"
|
||||
#include "Templates/SharedPointer.h"
|
||||
#include "Templates/UniquePtr.h"
|
||||
|
||||
|
||||
@@ -36,7 +36,6 @@
|
||||
#pragma once
|
||||
|
||||
#include "HAL/Platform.h"
|
||||
#include "Runtime/Launch/Resources/Version.h"
|
||||
#include "Templates/SharedPointer.h"
|
||||
#include "Templates/UniquePtr.h"
|
||||
|
||||
|
||||
@@ -38,7 +38,6 @@
|
||||
#include "Containers/UnrealString.h"
|
||||
#include "Math/Quat.h"
|
||||
#include "Math/Vector.h"
|
||||
#include "Runtime/Launch/Resources/Version.h"
|
||||
#include "Templates/UniquePtr.h"
|
||||
|
||||
#include "SGCoreImpl/SGPlatform.h"
|
||||
|
||||
@@ -36,7 +36,6 @@
|
||||
#pragma once
|
||||
|
||||
#include "Containers/UnrealString.h"
|
||||
#include "Runtime/Launch/Resources/Version.h"
|
||||
#include "Templates/UniquePtr.h"
|
||||
|
||||
#include "SGCoreImpl/SGPlatform.h"
|
||||
|
||||
@@ -36,7 +36,6 @@
|
||||
#pragma once
|
||||
|
||||
#include "Containers/UnrealString.h"
|
||||
#include "Runtime/Launch/Resources/Version.h"
|
||||
#include "Templates/UniquePtr.h"
|
||||
|
||||
#include "SGCoreImpl/SGPlatform.h"
|
||||
|
||||
@@ -37,7 +37,6 @@
|
||||
|
||||
#include "Containers/Array.h"
|
||||
#include "Math/Vector.h"
|
||||
#include "Runtime/Launch/Resources/Version.h"
|
||||
#include "Templates/UniquePtr.h"
|
||||
|
||||
#include "SGCoreImpl/SGPlatform.h"
|
||||
|
||||
@@ -37,7 +37,6 @@
|
||||
|
||||
#include "Containers/UnrealString.h"
|
||||
#include "Math/Vector.h"
|
||||
#include "Runtime/Launch/Resources/Version.h"
|
||||
#include "Templates/SharedPointer.h"
|
||||
#include "Templates/UniquePtr.h"
|
||||
|
||||
|
||||
@@ -36,11 +36,9 @@
|
||||
#pragma once
|
||||
|
||||
#include "Containers/Array.h"
|
||||
#include "Runtime/Launch/Resources/Version.h"
|
||||
#include "Templates/UniquePtr.h"
|
||||
|
||||
#include "SGCoreImpl/SGPlatform.h"
|
||||
#include "SGTypes/SGCoreTypes.h"
|
||||
|
||||
namespace SGCore
|
||||
{
|
||||
|
||||
@@ -37,7 +37,6 @@
|
||||
|
||||
#include "Containers/UnrealString.h"
|
||||
#include "Math/Vector.h"
|
||||
#include "Runtime/Launch/Resources/Version.h"
|
||||
#include "Templates/UniquePtr.h"
|
||||
|
||||
#include "SGCoreImpl/SGHapticGloveCalibrationSequenceImpl.h"
|
||||
|
||||
@@ -36,7 +36,6 @@
|
||||
#pragma once
|
||||
|
||||
#include "Containers/UnrealString.h"
|
||||
#include "Runtime/Launch/Resources/Version.h"
|
||||
#include "Templates/UniquePtr.h"
|
||||
|
||||
#include "SGCoreImpl/SGPlatform.h"
|
||||
|
||||
@@ -36,7 +36,6 @@
|
||||
#pragma once
|
||||
|
||||
#include "Containers/UnrealString.h"
|
||||
#include "Runtime/Launch/Resources/Version.h"
|
||||
#include "Templates/UniquePtr.h"
|
||||
|
||||
#include "SGCoreImpl/SGPlatform.h"
|
||||
|
||||
@@ -36,11 +36,9 @@
|
||||
#pragma once
|
||||
|
||||
#include "Containers/UnrealString.h"
|
||||
#include "Runtime/Launch/Resources/Version.h"
|
||||
#include "Templates/UniquePtr.h"
|
||||
|
||||
#include "SGCoreImpl/SGPlatform.h"
|
||||
#include "SGTypes/SGCoreTypes.h"
|
||||
|
||||
namespace SGCore
|
||||
{
|
||||
|
||||
@@ -37,7 +37,6 @@
|
||||
|
||||
#include "Containers/UnrealString.h"
|
||||
#include "Math/Vector.h"
|
||||
#include "Runtime/Launch/Resources/Version.h"
|
||||
#include "Templates/UniquePtr.h"
|
||||
|
||||
#include "SGCoreImpl/SGPlatform.h"
|
||||
|
||||
@@ -37,7 +37,6 @@
|
||||
|
||||
#include "Containers/UnrealString.h"
|
||||
#include "Math/Vector.h"
|
||||
#include "Runtime/Launch/Resources/Version.h"
|
||||
#include "Templates/UniquePtr.h"
|
||||
|
||||
#include "SGCoreImpl/SGPlatform.h"
|
||||
|
||||
@@ -37,7 +37,6 @@
|
||||
|
||||
#include "Containers/UnrealString.h"
|
||||
#include "Math/Vector.h"
|
||||
#include "Runtime/Launch/Resources/Version.h"
|
||||
#include "Templates/UniquePtr.h"
|
||||
|
||||
#include "SGCoreImpl/SGPlatform.h"
|
||||
|
||||
@@ -37,7 +37,6 @@
|
||||
|
||||
#include "Containers/UnrealString.h"
|
||||
#include "Math/Vector.h"
|
||||
#include "Runtime/Launch/Resources/Version.h"
|
||||
#include "Templates/UniquePtr.h"
|
||||
|
||||
#include "SGCoreImpl/SGPlatform.h"
|
||||
|
||||
@@ -36,7 +36,6 @@
|
||||
#pragma once
|
||||
|
||||
#include "Containers/UnrealString.h"
|
||||
#include "Runtime/Launch/Resources/Version.h"
|
||||
#include "Templates/UniquePtr.h"
|
||||
|
||||
#include "SGCoreImpl/SGPlatform.h"
|
||||
|
||||
@@ -37,7 +37,6 @@
|
||||
|
||||
#include "Containers/UnrealString.h"
|
||||
#include "Math/Vector.h"
|
||||
#include "Runtime/Launch/Resources/Version.h"
|
||||
#include "Templates/UniquePtr.h"
|
||||
|
||||
#include "SGCoreImpl/SGPlatform.h"
|
||||
|
||||
@@ -36,7 +36,6 @@
|
||||
#pragma once
|
||||
|
||||
#include "HAL/Platform.h"
|
||||
#include "Runtime/Launch/Resources/Version.h"
|
||||
#include "Templates/UniquePtr.h"
|
||||
|
||||
#include "SGCoreImpl/SGPlatform.h"
|
||||
|
||||
@@ -37,7 +37,6 @@
|
||||
|
||||
#include "Containers/UnrealString.h"
|
||||
#include "HAL/Platform.h"
|
||||
#include "Runtime/Launch/Resources/Version.h"
|
||||
#include "Templates/SharedPointer.h"
|
||||
#include "Templates/UniquePtr.h"
|
||||
|
||||
|
||||
@@ -37,7 +37,6 @@
|
||||
|
||||
#include "Containers/UnrealString.h"
|
||||
#include "HAL/Platform.h"
|
||||
#include "Runtime/Launch/Resources/Version.h"
|
||||
#include "Templates/UniquePtr.h"
|
||||
|
||||
#include "SGCoreImpl/SGPlatform.h"
|
||||
|
||||
@@ -54,11 +54,17 @@ public class SenseGloveSettings : ModuleRules
|
||||
{
|
||||
"CoreUObject",
|
||||
"Engine",
|
||||
"Settings",
|
||||
"SenseGloveCore",
|
||||
"SenseGloveLog",
|
||||
"SenseGloveTypes",
|
||||
}
|
||||
);
|
||||
|
||||
PrivateIncludePathModuleNames.AddRange(
|
||||
new string[]
|
||||
{
|
||||
"Settings",
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -55,13 +55,13 @@ public:
|
||||
|
||||
static FORCEINLINE FVector TransformToSenseGlove(const FVector& Vector)
|
||||
{
|
||||
return FMath::DegreesToRadians(FVector(Vector.X * -1.0f, Vector.Z, Vector.Y));
|
||||
return FMath::DegreesToRadians(FVector(Vector.Y * -1.0f, Vector.X, Vector.Z));
|
||||
}
|
||||
|
||||
template<typename V>
|
||||
static FORCEINLINE V TransformToSenseGlove(const FVector& Vector)
|
||||
{
|
||||
return FMath::DegreesToRadians(V(Vector.X * -1.0f, Vector.Z, Vector.Y));
|
||||
return FMath::DegreesToRadians(V(Vector.Y * -1.0f, Vector.X, Vector.Z));
|
||||
}
|
||||
|
||||
static FORCEINLINE float TransformToUnreal(const float Radians)
|
||||
@@ -114,13 +114,13 @@ public:
|
||||
|
||||
static FORCEINLINE FVector TransformToUnreal(const FVector& Vector)
|
||||
{
|
||||
return FMath::RadiansToDegrees(FVector(Vector.X * -1.0f, Vector.Z, Vector.Y));
|
||||
return FMath::RadiansToDegrees(FVector(Vector.Y * -1.0f, Vector.X, Vector.Z));
|
||||
}
|
||||
|
||||
template<typename V>
|
||||
static FORCEINLINE FVector TransformToUnreal(const V& Vector)
|
||||
{
|
||||
return FMath::RadiansToDegrees(FVector(Vector.GetX() * -1.0f, Vector.GetZ(), Vector.GetY()));
|
||||
return FMath::RadiansToDegrees(FVector(Vector.GetY() * -1.0f, Vector.GetX(), Vector.GetZ()));
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
Reference in New Issue
Block a user