fix multiple issues with the virtual hand component and the plugin settings
This commit is contained in:
@@ -326,7 +326,6 @@ void USGVirtualHandComponent::EditorTick(
|
||||
(void) Pimpl->CheckGlove();
|
||||
}
|
||||
|
||||
|
||||
bool USGVirtualHandComponent::IsGloveConnected() const
|
||||
{
|
||||
return Pimpl->CheckGlove();
|
||||
@@ -445,7 +444,7 @@ FString USGVirtualHandComponent::FImpl::GetDefaultMeshPath() const
|
||||
{
|
||||
FString SkeletalMeshPath;
|
||||
|
||||
if (Owner->bRight)
|
||||
if (Owner->IsRight())
|
||||
{
|
||||
SkeletalMeshPath = GetDefaultRightHandMeshPath();
|
||||
}
|
||||
@@ -630,7 +629,7 @@ bool USGVirtualHandComponent::FImpl::CheckGlove() const
|
||||
if (!bFoundGlove && bGloveWasPresent)
|
||||
{
|
||||
SGLOG_ERROR(FString::Printf(TEXT("Could not find a %s glove!"),
|
||||
(Owner->bRight ? TEXT("right-handed") : TEXT("left-handed"))));
|
||||
(Owner->IsRight() ? TEXT("right-handed") : TEXT("left-handed"))));
|
||||
}
|
||||
|
||||
const bool bIsEditor = IsEditor();
|
||||
|
||||
@@ -48,8 +48,6 @@
|
||||
#include "SGVirtualHandComponent.generated.h"
|
||||
|
||||
class USkeletalMesh;
|
||||
class USkeleton;
|
||||
class USceneComponent;
|
||||
|
||||
class USGHandPose;
|
||||
class USGHapticGlove;
|
||||
|
||||
@@ -59,52 +59,52 @@ class SENSEGLOVEKISMET_API UVirtualHandComponentKismetLibrary final : public USG
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Virtual Hand Mesh Component")
|
||||
UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Virtual Hand Component")
|
||||
static TArray<FSGNameArray> GetLeftHandFingerBoneNames();
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Virtual Hand Mesh Component")
|
||||
UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Virtual Hand Component")
|
||||
static TArray<FSGNameArray> GetRightHandFingerBoneNames();
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Virtual Hand Mesh Component")
|
||||
UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Virtual Hand Component")
|
||||
static const FName& GetLeftHandFingerBoneName(int32 Finger, int32 Joint);
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Virtual Hand Mesh Component")
|
||||
UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Virtual Hand Component")
|
||||
static const FName& GetRightHandFingerBoneName(int32 Finger, int32 Joint);
|
||||
|
||||
UFUNCTION(BlueprintPure, Category="SenseGlove | Components | Virtual Hand Mesh Component")
|
||||
UFUNCTION(BlueprintPure, Category="SenseGlove | Components | Virtual Hand Component")
|
||||
static bool IsLeft(const USGVirtualHandComponent* VirtualHandComponent);
|
||||
|
||||
UFUNCTION(BlueprintPure, Category="SenseGlove | Components | Virtual Hand Mesh Component")
|
||||
UFUNCTION(BlueprintPure, Category="SenseGlove | Components | Virtual Hand Component")
|
||||
static bool IsRight(const USGVirtualHandComponent* VirtualHandComponent);
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Virtual Hand Mesh Component")
|
||||
UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Virtual Hand Component")
|
||||
static void SetRight(UPARAM(ref) USGVirtualHandComponent* VirtualHandComponent, bool bInRight);
|
||||
|
||||
UFUNCTION(BlueprintPure, Category="SenseGlove | Components | Virtual Hand Mesh Component")
|
||||
UFUNCTION(BlueprintPure, Category="SenseGlove | Components | Virtual Hand Component")
|
||||
static bool IsHiddenInGameIfNoGloveDetected(const USGVirtualHandComponent* VirtualHandComponent);
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Virtual Hand Mesh Component")
|
||||
UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Virtual Hand Component")
|
||||
static void SetHiddenIfNoGloveDetected(UPARAM(ref) USGVirtualHandComponent* VirtualHandComponent,
|
||||
bool bInHiddenIfNoGloveDetected);
|
||||
|
||||
UFUNCTION(BlueprintPure, Category="SenseGlove | Components | Virtual Hand Mesh Component")
|
||||
UFUNCTION(BlueprintPure, Category="SenseGlove | Components | Virtual Hand Component")
|
||||
bool IsGloveConnected(const USGVirtualHandComponent* VirtualHandComponent) const;
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Virtual Hand Mesh Component")
|
||||
UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Virtual Hand Component")
|
||||
USGHandPose* GetHandPose(UPARAM(ref) USGVirtualHandComponent* VirtualHandComponent);
|
||||
|
||||
UFUNCTION(BlueprintPure, Category="SenseGlove | Components | Virtual Hand Mesh Component")
|
||||
UFUNCTION(BlueprintPure, Category="SenseGlove | Components | Virtual Hand Component")
|
||||
const FName& GetFingerBoneName(const USGVirtualHandComponent* VirtualHandComponent,
|
||||
int32 Finger, int32 Joint) const;
|
||||
|
||||
UFUNCTION(BlueprintPure, Category="SenseGlove | Components | Virtual Hand Mesh Component")
|
||||
UFUNCTION(BlueprintPure, Category="SenseGlove | Components | Virtual Hand Component")
|
||||
const FTransform& GetFingerBoneRefTransform(const USGVirtualHandComponent* VirtualHandComponent,
|
||||
int32 Finger, int32 Joint) const;
|
||||
|
||||
UFUNCTION(BlueprintPure, Category="SenseGlove | Components | Virtual Hand Mesh Component")
|
||||
UFUNCTION(BlueprintPure, Category="SenseGlove | Components | Virtual Hand Component")
|
||||
FRotator GetFingerBoneRefRotation(const USGVirtualHandComponent* VirtualHandComponent,
|
||||
int32 Finger, int32 Joint) const;
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Virtual Hand Mesh Component")
|
||||
UFUNCTION(BlueprintCallable, Category="SenseGlove | Components | Virtual Hand Component")
|
||||
TMap<FName, FRotator> GetFingersBonesRotations(UPARAM(ref) USGVirtualHandComponent* VirtualHandComponent);
|
||||
};
|
||||
@@ -86,6 +86,13 @@ USGSettings::USGSettings()
|
||||
|
||||
Pimpl->ResetHardwareOffsetValuesToZero();
|
||||
|
||||
bDrawDebugWristTrackerGizmo = false;
|
||||
HardwareOffset = ESGPositionalTrackingHardware::None;
|
||||
HardwareLocationOffsetLeftHand = FVector::ZeroVector;
|
||||
HardwareLocationOffsetRightHand = FVector::ZeroVector;
|
||||
HardwareRotationOffsetLeftHand = FRotator::ZeroRotator;
|
||||
HardwareRotationOffsetRightHand = FRotator::ZeroRotator;
|
||||
|
||||
bDrawDebugWristTrackerGizmo = false;
|
||||
DebugWristTrackerGizmoLength = 1.0f;
|
||||
DebugWristTrackerGizmoXAxisColor = FColor::Red;
|
||||
@@ -164,128 +171,141 @@ void USGSettings::SetHardwareRotationOffsetRightHand(const FRotator& InHardwareR
|
||||
float USGSettings::GetDebugWristTrackerGizmoLength() const
|
||||
{
|
||||
ensureAlwaysMsgf(
|
||||
bDrawDebugWristTrackerGizmo,
|
||||
TEXT("Getting DebugWristTrackerGizmoLength is only permitted when HardwareOffset is set to Custom!"));
|
||||
GetDrawDebugWristTrackerGizmo(),
|
||||
TEXT("Getting DebugWristTrackerGizmoLength is only permitted when bDrawDebugWristTrackerGizmo is enabled!"));
|
||||
return DebugWristTrackerGizmoLength;
|
||||
}
|
||||
|
||||
void USGSettings::SetDebugWristTrackerGizmoLength(const float InDebugWristTrackerGizmoLength)
|
||||
{
|
||||
ensureAlwaysMsgf(
|
||||
bDrawDebugWristTrackerGizmo,
|
||||
TEXT("Setting DebugWristTrackerGizmoLength is only permitted when HardwareOffset is set to Custom!"));
|
||||
GetDrawDebugWristTrackerGizmo(),
|
||||
TEXT("Setting DebugWristTrackerGizmoLength is only permitted when bDrawDebugWristTrackerGizmo is enabled!"));
|
||||
DebugWristTrackerGizmoLength = InDebugWristTrackerGizmoLength;
|
||||
}
|
||||
|
||||
const FLinearColor& USGSettings::GetDebugWristTrackerGizmoXAxisColor() const
|
||||
{
|
||||
ensureAlwaysMsgf(
|
||||
bDrawDebugWristTrackerGizmo,
|
||||
TEXT("Getting DebugWristTrackerGizmoXAxisColor is only permitted when HardwareOffset is set to Custom!"));
|
||||
GetDrawDebugWristTrackerGizmo(),
|
||||
TEXT("Getting DebugWristTrackerGizmoXAxisColor is only permitted when bDrawDebugWristTrackerGizmo is"
|
||||
" enabled!"));
|
||||
return DebugWristTrackerGizmoXAxisColor;
|
||||
}
|
||||
|
||||
void USGSettings::SetDebugWristTrackerGizmoXAxisColor(const FLinearColor& InDebugWristTrackerGizmoXAxisColor)
|
||||
{
|
||||
ensureAlwaysMsgf(
|
||||
bDrawDebugWristTrackerGizmo,
|
||||
TEXT("Setting DebugWristTrackerGizmoXAxisColor is only permitted when HardwareOffset is set to Custom!"));
|
||||
GetDrawDebugWristTrackerGizmo(),
|
||||
TEXT("Setting DebugWristTrackerGizmoXAxisColor is only permitted when bDrawDebugWristTrackerGizmo is"
|
||||
" enabled!"));
|
||||
DebugWristTrackerGizmoXAxisColor = InDebugWristTrackerGizmoXAxisColor;
|
||||
}
|
||||
|
||||
const FLinearColor& USGSettings::GetDebugWristTrackerGizmoYAxisColor() const
|
||||
{
|
||||
ensureAlwaysMsgf(
|
||||
bDrawDebugWristTrackerGizmo,
|
||||
TEXT("Getting DebugWristTrackerGizmoYAxisColor is only permitted when HardwareOffset is set to Custom!"));
|
||||
GetDrawDebugWristTrackerGizmo(),
|
||||
TEXT("Getting DebugWristTrackerGizmoYAxisColor is only permitted when bDrawDebugWristTrackerGizmo is"
|
||||
" enabled!"));
|
||||
return DebugWristTrackerGizmoXAxisColor;
|
||||
}
|
||||
|
||||
void USGSettings::SetDebugWristTrackerGizmoYAxisColor(const FLinearColor& InDebugWristTrackerGizmoYAxisColor)
|
||||
{
|
||||
ensureAlwaysMsgf(
|
||||
bDrawDebugWristTrackerGizmo,
|
||||
TEXT("Setting DebugWristTrackerGizmoYAxisColor is only permitted when HardwareOffset is set to Custom!"));
|
||||
GetDrawDebugWristTrackerGizmo(),
|
||||
TEXT("Setting DebugWristTrackerGizmoYAxisColor is only permitted when bDrawDebugWristTrackerGizmo is"
|
||||
" enabled!"));
|
||||
DebugWristTrackerGizmoYAxisColor = InDebugWristTrackerGizmoYAxisColor;
|
||||
}
|
||||
|
||||
const FLinearColor& USGSettings::GetDebugWristTrackerGizmoZAxisColor() const
|
||||
{
|
||||
ensureAlwaysMsgf(
|
||||
bDrawDebugWristTrackerGizmo,
|
||||
TEXT("Getting DebugWristTrackerGizmoZAxisColor is only permitted when HardwareOffset is set to Custom!"));
|
||||
GetDrawDebugWristTrackerGizmo(),
|
||||
TEXT("Getting DebugWristTrackerGizmoZAxisColor is only permitted when bDrawDebugWristTrackerGizmo is"
|
||||
" enabled!"));
|
||||
return DebugWristTrackerGizmoZAxisColor;
|
||||
}
|
||||
|
||||
void USGSettings::SetDebugWristTrackerGizmoZAxisColor(const FLinearColor& InDebugWristTrackerGizmoZAxisColor)
|
||||
{
|
||||
ensureAlwaysMsgf(
|
||||
bDrawDebugWristTrackerGizmo,
|
||||
TEXT("Setting DebugWristTrackerGizmoZAxisColor is only permitted when HardwareOffset is set to Custom!"));
|
||||
GetDrawDebugWristTrackerGizmo(),
|
||||
TEXT("Setting DebugWristTrackerGizmoZAxisColor is only permitted when bDrawDebugWristTrackerGizmo is"
|
||||
" enabled!"));
|
||||
DebugWristTrackerGizmoZAxisColor = InDebugWristTrackerGizmoZAxisColor;
|
||||
}
|
||||
|
||||
bool USGSettings::GetDebugWristTrackerGizmoPersistentLines() const
|
||||
{
|
||||
ensureAlwaysMsgf(
|
||||
bDrawDebugWristTrackerGizmo,
|
||||
TEXT("Getting bDebugWristTrackerGizmoPersistentLines is only permitted when HardwareOffset is set to Custom!"));
|
||||
GetDrawDebugWristTrackerGizmo(),
|
||||
TEXT("Getting bDebugWristTrackerGizmoPersistentLines is only permitted when bDrawDebugWristTrackerGizmo is"
|
||||
" enabled!"));
|
||||
return !!bDebugWristTrackerGizmoPersistentLines;
|
||||
}
|
||||
|
||||
void USGSettings::SetDebugWristTrackerGizmoPersistentLines(const bool bInDebugWristTrackerGizmoPersistentLines)
|
||||
{
|
||||
ensureAlwaysMsgf(
|
||||
bDrawDebugWristTrackerGizmo,
|
||||
TEXT("Setting bDebugWristTrackerGizmoPersistentLines is only permitted when HardwareOffset is set to Custom!"));
|
||||
GetDrawDebugWristTrackerGizmo(),
|
||||
TEXT("Setting bDebugWristTrackerGizmoPersistentLines is only permitted when bDrawDebugWristTrackerGizmo is"
|
||||
" enabled!"));
|
||||
bDebugWristTrackerGizmoPersistentLines = bInDebugWristTrackerGizmoPersistentLines;
|
||||
}
|
||||
|
||||
float USGSettings::GetDebugWristTrackerGizmoLifeTimeModifier() const
|
||||
{
|
||||
ensureAlwaysMsgf(
|
||||
bDrawDebugWristTrackerGizmo,
|
||||
TEXT("Getting DebugWristTrackerGizmoLifeTimeModifier is only permitted when HardwareOffset is set to Custom!"));
|
||||
GetDrawDebugWristTrackerGizmo(),
|
||||
TEXT("Getting DebugWristTrackerGizmoLifeTimeModifier is only permitted when bDrawDebugWristTrackerGizmo is"
|
||||
" enabled!"));
|
||||
return DebugWristTrackerGizmoLifeTimeModifier;
|
||||
}
|
||||
|
||||
void USGSettings::SetDebugWristTrackerGizmoLifeTimeModifier(const float InDebugWristTrackerGizmoLifeTimeModifier)
|
||||
{
|
||||
ensureAlwaysMsgf(
|
||||
bDrawDebugWristTrackerGizmo,
|
||||
TEXT("Setting DebugWristTrackerGizmoLifeTimeModifier is only permitted when HardwareOffset is set to Custom!"));
|
||||
GetDrawDebugWristTrackerGizmo(),
|
||||
TEXT("Setting DebugWristTrackerGizmoLifeTimeModifier is only permitted when bDrawDebugWristTrackerGizmo is"
|
||||
" enabled!"));
|
||||
DebugWristTrackerGizmoLifeTimeModifier = InDebugWristTrackerGizmoLifeTimeModifier;
|
||||
}
|
||||
|
||||
uint8 USGSettings::GetDebugWristTrackerGizmoDepthPriority() const
|
||||
{
|
||||
ensureAlwaysMsgf(
|
||||
bDrawDebugWristTrackerGizmo,
|
||||
TEXT("Getting DebugWristTrackerGizmoDepthPriority is only permitted when HardwareOffset is set to Custom!"));
|
||||
GetDrawDebugWristTrackerGizmo(),
|
||||
TEXT("Getting DebugWristTrackerGizmoDepthPriority is only permitted when bDrawDebugWristTrackerGizmo is"
|
||||
" enabled!"));
|
||||
return DebugWristTrackerGizmoDepthPriority;
|
||||
}
|
||||
|
||||
void USGSettings::SetDebugWristTrackerGizmoDepthPriority(const uint8 InDebugWristTrackerGizmoDepthPriority)
|
||||
{
|
||||
ensureAlwaysMsgf(
|
||||
bDrawDebugWristTrackerGizmo,
|
||||
TEXT("Setting is only permitted when HardwareOffset is set to Custom!"));
|
||||
GetDrawDebugWristTrackerGizmo(),
|
||||
TEXT("Setting is only permitted when bDrawDebugWristTrackerGizmo is enabled!"));
|
||||
DebugWristTrackerGizmoDepthPriority = InDebugWristTrackerGizmoDepthPriority;
|
||||
}
|
||||
|
||||
float USGSettings::GetDebugWristTrackerGizmoThickness() const
|
||||
{
|
||||
ensureAlwaysMsgf(
|
||||
bDrawDebugWristTrackerGizmo,
|
||||
TEXT("Getting DebugWristTrackerGizmoThickness is only permitted when HardwareOffset is set to Custom!"));
|
||||
GetDrawDebugWristTrackerGizmo(),
|
||||
TEXT("Getting DebugWristTrackerGizmoThickness is only permitted when bDrawDebugWristTrackerGizmo is"
|
||||
" enabled!"));
|
||||
return DebugWristTrackerGizmoThickness;
|
||||
}
|
||||
|
||||
void USGSettings::SetDebugWristTrackerGizmoThickness(const float InDebugWristTrackerGizmoThickness)
|
||||
{
|
||||
ensureAlwaysMsgf(
|
||||
bDrawDebugWristTrackerGizmo,
|
||||
TEXT("Setting DebugWristTrackerGizmoThickness is only permitted when HardwareOffset is set to Custom!"));
|
||||
GetDrawDebugWristTrackerGizmo(),
|
||||
TEXT("Setting DebugWristTrackerGizmoThickness is only permitted when bDrawDebugWristTrackerGizmo is"
|
||||
" enabled!"));
|
||||
DebugWristTrackerGizmoThickness = InDebugWristTrackerGizmoThickness;
|
||||
}
|
||||
|
||||
|
||||
@@ -97,7 +97,7 @@ private:
|
||||
* Valid only if HardwareOffset is set to Custom.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category = "Wrist Tracking",
|
||||
meta=(editcondition="hardwareoffset == esgpositionaltrackinghardware::custom", editconditionhides))
|
||||
meta=(EditCondition="hardwareoffset == esgpositionaltrackinghardware::custom", EditConditionHides))
|
||||
FRotator HardwareRotationOffsetRightHand;
|
||||
|
||||
/**
|
||||
@@ -110,56 +110,56 @@ private:
|
||||
* Valid only if bDrawDebugWristTrackerGizmo is enabled.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category = "Wrist Tracking Debug",
|
||||
meta=(editcondition="bDrawDebugWristTrackerGizmo", editconditionhides))
|
||||
meta=(EditCondition="bDrawDebugWristTrackerGizmo", EditConditionHides))
|
||||
float DebugWristTrackerGizmoLength;
|
||||
|
||||
/**
|
||||
* Valid only if bDrawDebugWristTrackerGizmo is enabled.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category = "Wrist Tracking Debug",
|
||||
meta=(editcondition="bDrawDebugWristTrackerGizmo", editconditionhides))
|
||||
meta=(EditCondition="bDrawDebugWristTrackerGizmo", EditConditionHides))
|
||||
FLinearColor DebugWristTrackerGizmoXAxisColor;
|
||||
|
||||
/**
|
||||
* Valid only if bDrawDebugWristTrackerGizmo is enabled.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category = "Wrist Tracking Debug",
|
||||
meta=(editcondition="bDrawDebugWristTrackerGizmo", editconditionhides))
|
||||
meta=(EditCondition="bDrawDebugWristTrackerGizmo", EditConditionHides))
|
||||
FLinearColor DebugWristTrackerGizmoYAxisColor;
|
||||
|
||||
/**
|
||||
* Valid only if bDrawDebugWristTrackerGizmo is enabled.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category = "Wrist Tracking Debug",
|
||||
meta=(editcondition="bDrawDebugWristTrackerGizmo", editconditionhides))
|
||||
meta=(EditCondition="bDrawDebugWristTrackerGizmo", EditConditionHides))
|
||||
FLinearColor DebugWristTrackerGizmoZAxisColor;
|
||||
|
||||
/**
|
||||
* Valid only if bDrawDebugWristTrackerGizmo is enabled.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category = "Wrist Tracking Debug",
|
||||
meta=(editcondition="bDrawDebugWristTrackerGizmo", editconditionhides))
|
||||
meta=(EditCondition="bDrawDebugWristTrackerGizmo", EditConditionHides))
|
||||
uint8 bDebugWristTrackerGizmoPersistentLines : 1;
|
||||
|
||||
/**
|
||||
* Valid only if bDrawDebugWristTrackerGizmo is enabled.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category = "Wrist Tracking Debug",
|
||||
meta=(editcondition="bDrawDebugWristTrackerGizmo", editconditionhides))
|
||||
meta=(EditCondition="bDrawDebugWristTrackerGizmo", EditConditionHides))
|
||||
float DebugWristTrackerGizmoLifeTimeModifier;
|
||||
|
||||
/**
|
||||
* Valid only if bDrawDebugWristTrackerGizmo is enabled.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category = "Wrist Tracking Debug",
|
||||
meta=(editcondition="bDrawDebugWristTrackerGizmo", editconditionhides))
|
||||
meta=(EditCondition="bDrawDebugWristTrackerGizmo", EditConditionHides))
|
||||
uint8 DebugWristTrackerGizmoDepthPriority;
|
||||
|
||||
/**
|
||||
* Valid only if bDrawDebugWristTrackerGizmo is enabled.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category = "Wrist Tracking Debug",
|
||||
meta=(editcondition="bDrawDebugWristTrackerGizmo", editconditionhides))
|
||||
meta=(EditCondition="bDrawDebugWristTrackerGizmo", EditConditionHides))
|
||||
float DebugWristTrackerGizmoThickness;
|
||||
|
||||
public:
|
||||
|
||||
Reference in New Issue
Block a user